Support Forum

[Frage] Zylinder aus CSV erstellen


Hallo Zusammen,
ich versuche mich gerade mit VS an einem PYthonPart mit dem Zylinder anhand einer CSV-Datei erstellt werden sollen. Dabei sollen die Koordinaten (X,Y,Z), die Zylinderhöhe und eine individuelle Farbe (alternativ ein Attributwert) aus der CSV-Ausgelesen werden.
Ich habe dabei im Moment folgende Probleme:

  • Zum einlesen der CSV-Datei wird 2-mal der Befehl ReadPoints benötigt, da mit diesem jeweils nur 3 Werte eingelesen werden können. Dies führt dazu, dass bei der Erstellung der Zylinder 0-Werte vorhanden sind.
  • Beim Zuweisen der Farbe habe ich den Befehl Format verwendet. Der Wert aus der CSV-Datei wird allerdings nicht als integer erkannt und kann somit nicht mit dem Befehl verknüpft werden.
  • Bei der alternative statt der Farbe ein Attribut zu vergeben scheitere ich daran, dass die Zylinder keine Objekt-Liste sind

Für Tipps und Hinweise wäre ich sehr dankbar.
Ich verwende Allplan 2023.

Gruß
Jan

Brücken und Ingenieurbau
VIC Planen und Beraten GmbH

https://www.vic-gmbh.de/

Anhänge (2)

Typ: application/x-sqlite3
460-mal heruntergeladen
Größe: 132,00 KiB
Typ: image/jpeg
53-mal heruntergeladen
Größe: 52,24 KiB

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

In dem Fall würde ich die einzelnen Spalten der CSV-Datei "manuell" lesen (s. read_cylind_vs.png):
Tabelle lesen
Werte von String in double wandeln -> dabei wird die Tabelle zur eindimensionalen Liste
Indices für die Spaltenwerte berechnen
Werte aus Liste holen und in neue Listen tun
Mit 3 Koordinaten-Listen die Mittelpunkte erzeugen
Mit Mittelpunkt-Liste, Radius- und Höhen-Listen die Zylinder erzeugen
Mit Farb-Liste die Zylinder "einfärben"

Anhänge (3)

Typ: image/png
110-mal heruntergeladen
Größe: 255,32 KiB
Typ: image/png
80-mal heruntergeladen
Größe: 163,14 KiB
Typ: text/plain
475-mal heruntergeladen
Größe: 130,00 B
11 - 11 (11)

wie kann ich zum einen nach der entsprechende Bauteilnummer filtern?

Welche Bauteilnummer? Ist diese in der csv-Datei in einer Spalte angegeben?
Dann sollte man das "Filtern" vielleicht in der csv-Datei machen:
-csv-Datei in Excel öffnen
-nach gewünschtem Wert filtern
-als csv-Datei speichern

Und dann aus dem Punkten den jeweiligen maximalen und minimalen xyz, also die zu einander am weitest entfernten Punkte selektieren?

Die zueinander am weitesten entfernten Punkte kann man leicht ermitteln.
Man berechnet einfach die Entfernung jedes Punktes zu jedem anderen, und merkt sich das Punkte-Paar mit dem größten Abstand.

Was bedeutet dann "selektieren"?

11 - 11 (11)