DeHu Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Hi Zusammen Ich habe mir eine Marionette erstellt, die mir den Höhenunterschied zwischen zwei Punkten berechnet und diesen dann in eine Datenbank schreibt, sodass ich diesen Wert mit einem Datenstempel anzeigen lassen kann. So weit so gut. Eigentlich funktioniert die Marionette perfekt. Allerdings ist sie sehr anfällig auf Fehler. Denn: Das ganze funktioniert so. Ich habe ein Geländemodell. Darauf habe ich Vermessungspunkte (VP) platziert - immer zwei an ein und der selben Stelle (gleiche Koordinaten). Der ein VP liesst mir den z-Wert vom Ist-Modell ab, der Andere vom Soll-Modell. Die Marionette schnappt sich nun den Vermessungspunkt der den Z-Wert vom Ist-Modell ausliesst und den der den Z-Wert vom Soll-Modell ausliesst via Obj by Criteria - simpel. Dann Schnapp ich mir alle Punktinfo's "Get 3d info", und dann muss die Marionette alle Punkte vergleichen. Denn es dürfen ja nur die Punkte miteinander verrechnet werden, die ein und die selbe x und y Koordinate haben, ansonsten ist das ganze falsch. Dies wollt ich mit einem "if" Boolean > pCenter = True lösen. Allerdings scheint dies nicht wirklich zu funktionieren. Wenn ich die Reihenfolge der Punkt Ergebnisse dann vergleiche, stimmen diese nicht. > zu Beginn, haben diese gestimmt, da ich durch das fortlaufende einfügen von Vermessungspunkte eine fortlaufende Rheinfolge generiert habe. Diese habe ich nun mit dem Befehl cmd+f für einige Punkte durcheinander gebracht und nun stimmt die Reihenfolge nicht mehr, und die Ergebnisse sind Random. Warum funktioniert der if boolean nicht? Danke für eure Hilfe Ohne Titel 1.vwx Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Wie wärs, wenn du die zwei Punktelisten nach x und y-Koordinaten sortierst. Dann sollten beim Abarbeiten der Listen automatisch die übereinander liegenden Punkte verarbeitet werden. Auf die Prüfung könntest du dann auch ganz verzichten, wenn du sicherstellst, dass immer jeder ist- auch ein soll-Punkt hat. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Ein anderer Ansatz wärs, alle Soll-Punkte einfach zu löschen und durch die Marionette jeweils neu anzulegen. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
DeHu Geschrieben 8. September 2020 Autor Teilen Geschrieben 8. September 2020 Hi Herbieherb, mir gefallen beide Ansätze. Was mir noch nicht klar ist: Variante 1: Meinst du die Listen mittels Marionette anzulegen und da die Sortierung auf x und y zu stellen? Oder effektiv mit den Tabellen zu arbeiten? Variante 2: Wie erstellt man einen Vermessungspunkt mit Marionette, der dann auch gleich den z-Wert vom soll abliesst? Danke für deine hilfe Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Sorry, beide Ansätze sind nicht wirklich zu Ende gedacht. Ein Sortiernode nach bestimmten Kriterien fehlt der Marionette und Vermessungspunkte liessen sich nur aus einem bestehenden Punkt kopieren. Irgendwie beides zu aufwendig. Anderer Ansatz: Du hast ja das Ist- und das Soll-Geländemodell und kannst die Höhen auch von da holen, statt von den Vermessungspunkten. Also kannst du die Marionette so bauen, dass du zuerst die Ist-Punkte mit xyz-Koordinaten einliest. Dann kannst du mit dem 'Get Z at XY'-Node die Höhe vom Soll-Geländemodell an der jeweiligen Koordinate holen, Differenz berechnen und in die Datenbank schreiben. Die Soll-Vermessungspunkte brauchst du dann gar nicht anfassen. Somit arbeitest du nur mit einer Liste von Objekten und umgehst die Sortierprobleme. Wie das Auslesen mit dem 'Get Z at XY'-Node beim Geländemodell funktioniert, hab ich ja im letzten Thread schon ein Beispiel gemacht. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
DeHu Geschrieben 8. September 2020 Autor Teilen Geschrieben 8. September 2020 Okey das klingt besser, bin nämlich jetzt wirklich an der Sortierung hängen geblieben. Hast du mir noch eine Tipp wie ich an die 3D Punkte des Geländemodells komme? Die sind ja im Geländemodell (drin)? Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Du holst nicht die Punkte im Modell drin, sondern wandelst eine Kopie des Modells in einen Punktkörper (Mesh) um. Punktkörper sind quasi eine Gruppe aus 3D-Polygonen. Daraus kann der 'Get Z at XY'-Node dann die Höhe an einem beliebigen Punkt auf all diesen 3D-Polygonen auslesen. Am Schluss löschst du das Mesh dann einfach wieder. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
DeHu Geschrieben 8. September 2020 Autor Teilen Geschrieben 8. September 2020 Ach darum funktioniert das. Das muss man auch wissen Danke dir. Link zu diesem Kommentar
DeHu Geschrieben 8. September 2020 Autor Teilen Geschrieben 8. September 2020 @Herbiherb noch eine letzte Frage. In deinem Beispiel machst du 2 Geländemodelle, eines nennst du "Ist", das andere "Soll". Nun ich kann natürlich nicht 2 Geländemodelle machen? Da mein Geländemodell extrem gross ist. Ich habe einfach ein Geländemodell, welches ich mit Modifikatoren bearbeitet habe. Wie bekomme ich dann die Sollkoten ausgelesen? Ich bräuchte ja einen andere Input, statt einfach nur den Namen des Objekts, oder zumindest eine Unterklassifizierug für den Zugriff dann aufs Sollmodell? Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Das Geländemodell kann im 3D ja nur entweder den Ist- oder den Soll-Zustand anzeigen. Von dem her stellst du einfach das GM auf den Sollzustand. Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
DeHu Geschrieben 8. September 2020 Autor Teilen Geschrieben 8. September 2020 Das funktioniert irgendwie auch nicht, denn es muss zuerst ja das Mesh generieren für das IST-Modell, dann muss ich die Punkte auslesen und erst dann kann ich das Modell umstellen, doch Marionette kann ich ja nicht stoppen, um das Modell dann zu switchen? Datei im Anhang. GM Differenz (1).vwx Link zu diesem Kommentar
herbieherb Geschrieben 8. September 2020 Teilen Geschrieben 8. September 2020 Achso, ich dachte die Punkte seien schon vorhanden. Im Grunde verändert sich doch das Ist-Modell ja nie. Da könntest du also gut ein zum Mesh aufgelöstes Ist-Modell auf einer separaten Ebene haben. Ist sowieso ganz praktisch, um das gewachsene Terrain in Schnitten anzuzeigen. 1 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
DeHu Geschrieben 9. September 2020 Autor Teilen Geschrieben 9. September 2020 Hi Herbieherb Danke für deine Hilfe! Ich hab's jetzt hinbekommen. Allerdings gibt es jetzt noch eine art Bug, aber ich glaube dieser kommt von Vectorworks selber? Ich lass mir jetzt von der Marionette einen Kreis auf der gemeinsamen xy-Koordinate generieren - damit ich den errechneten Punkt auch visuell darstellen kann. Diesem weise ich noch die Datenbank zu und lass den Wert für das Delta von Ist-Kote und Soll-Kote "delta Z" in das Datenfeld schreiben. Jetzt zum Problem: Wenn ich die Kreise dann mittels Datenstempel beschriften will. In dem ich die Kreise bestemple - mit der Methode "mehrere Objekte", dann krieg ich ein Pop up wo ich den Delta Z Wert bestätigen muss - für jeden Punkt einzeln. Das mag in der Beispieldatei mit ein paar Punkten noch funktionieren. Doch im eigentlichen Geländemodell habe ich 132000 Punkte. So oft kann ich nicht klicken. Eine Idee? Ich habe dir das File nochmals beigelegt. GM Differenz (1).vwx Link zu diesem Kommentar
herbieherb Geschrieben 9. September 2020 Teilen Geschrieben 9. September 2020 1 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden