| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Blöcke auf DGM projezieren (2847 mal gelesen)
|
StefanW Mitglied Techniker
Beiträge: 147 Registriert: 17.04.2003
|
erstellt am: 09. Feb. 2007 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo ! Nachdem die Suche im Forum keinen Erfolg brachte (ich will mich gerne berichtigen lassen !) hier nun mein Problem: Ich habe ein DGM (TIN) einer Straßenplanung und auf der anderen Seite eine Zeichnung eines Kollegen mit "dummen" Blöcken (Inserts). Diese Blöcke (keine CIVIL-Elemente !!) möchte ich nun "einfach" auf die jeweilige DGM-Höhe bringen (projezieren) und an den Kollegen zurückgeben. Hat jemand für mich einen Lösungsvorschlag ? Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 Map/Civil 3D 2005-2025, aktuelle SPs.
|
erstellt am: 11. Feb. 2007 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für StefanW
Das lässt sich via VBA oder auch über Lisp relativ einfach mit der Methode "FindElevationAtXY" lösen - ich hab da was Fertiges - das kann ich bei Gelegenheit mal einstellen. ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanW Mitglied Techniker
Beiträge: 147 Registriert: 17.04.2003
|
erstellt am: 12. Feb. 2007 08:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Udo ! Das wär prima, wenn Du da mal was posten könntest (wenn es geht, in LISP). Gruß Stefan [Diese Nachricht wurde von StefanW am 12. Feb. 2007 editiert.] [Diese Nachricht wurde von StefanW am 12. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 Map/Civil 3D 2005-2025, aktuelle SPs.
|
erstellt am: 13. Feb. 2007 00:52 <-- editieren / zitieren --> Unities abgeben: Nur für StefanW
In meinen DGM-Tools für Civil 3D gibts u.a. einen Befehl PRJBLOCK2DGM, der genau die von dir gewünschte Funktionalität aufweist. http://www.cad-huebner.de/lisp.htm#dgmtools1 Du kannst dir einfach die laufzeitbeschränkte Volllversion zum Test hier herunterladen und für deine Zwecke benutzen. Bei Interesse würde ich diese 30 Zeilen Code auch aus dem Kontext herauslösen und hier als Quelltext posten, das muss ich allerdings erst noch testen - im Moment komme ich nicht dazu. ------------------ Mit freundlichem Gruß
Udo Hübner [Diese Nachricht wurde von CAD-Huebner am 13. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanW Mitglied Techniker
Beiträge: 147 Registriert: 17.04.2003
|
erstellt am: 19. Feb. 2007 11:00 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 Map/Civil 3D 2005-2025, aktuelle SPs.
|
erstellt am: 04. Mrz. 2007 17:42 <-- editieren / zitieren --> Unities abgeben: Nur für StefanW
@Stefan So, das sollte nicht nur heisse Luft sein (mit dem Quellcode) - außerdem hattest du ja schon 10 Units bezahlt . Hier kann man sich den Lisp-Quellcode für meine Routine zum Projizieren von Blockreferenzen auf Civil DGMs herunterladen. http://www.CAD-Huebner.de Es ist nur ein Beispielcode, der keine Anspruch auf Fehlerfreiheit oder Vollständigkeit erhebt.
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanW Mitglied Techniker
Beiträge: 147 Registriert: 17.04.2003
|
erstellt am: 05. Mrz. 2007 09:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Udo ! Das funktioniert Super !!! Ich hab mir mal erlaubt, das Prog soweit abzuändern, das es jetzt die Inserts mit "_move" auf die DGM-Höhe schiebt (wegen der Attribute, wie Du ja schon erwähnt hast). Hier die Änderungen im Unterprogramm: ;; Unterfunktion (defun PRJBLOCK2DGM (vlax-dgmobj ssblref / cnt elevation inspnt) (setq cnt (sslength ssblref)) (while (>= (setq cnt (1- cnt)) 0) (setq inspnt (cdr (assoc 10 (entget (ssname ssblref cnt)))) elevation (vlax-invoke-method vlax-dgmobj "FindElevationAtXY" (car inspnt)(cadr inspnt)) ) ; Blockreferenzen sollten auf einem ungesperrten layer liegen (command "_move" (ssname ssblref cnt) "" inspnt (list (car inspnt) (cadr inspnt) elevation) ) ) ) Vielen Dank Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 Map/Civil 3D 2005-2025, aktuelle SPs.
|
erstellt am: 05. Mrz. 2007 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für StefanW
Hallo Stefan, nutzt man (Command "_Move" ... muss man richtigerweise noch den Start- und Zielpunkt mit (Trans ... vom WKS ins BKS umrechnen (oder vorher gernerell BKS Welt setzen), sonst ergibt das Verschieben unerwartete Positionen. ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanW Mitglied Techniker
Beiträge: 147 Registriert: 17.04.2003
|
erstellt am: 05. Mrz. 2007 15:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Udo ! Da hast Du natürlich vollkommen Recht ! Wir arbeiten zwar generell immer im WKS aber es schadet sicherlich auch nichts, im Programm auf das WKS umzuschalten oder die Punkte zu transformieren. Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |