| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: _Copy & Koordinaten - LISP (1483 / mal gelesen)
|
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014 AutoCAD 2010 LT AutoCAD 2014 AutoCAD 2018 AutoCAD MAP 3D 2017 Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz 16,00GB Ram Windows 7- Prof. 64-Bit ASUS EAH6450 Series
|
erstellt am: 07. Jul. 2016 09:11 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hab einen Längsschnitt vor mir und es soll von der Geländeoberkante eine parallele nach unten erzeugt werden(Abstand 1.1m). Folgendes habe ich mir nun gedacht um dies mit kleinen Schritten zu tun: Code:
(defun C:DeckLinie (/) (setq gelaende (SSGET)) ;Geländeoberkante wird ausgewählt (setq BP (getpoint "\nBasispunkt auswählen: ")) (setq BPx (car BP)) ;X-Koordinaten werden ausgelesen (setq BPy (cadr BP)) ;Y-Koordinaten werden ausgelesen (setq BPy1 (- BPy 1.1)) ;Y-Koordinaten -1.1m (setq BP1 '(BPx BPy1)) ;BP1 mit X- und Y-Koordinaten (command "_Copy" gelaende "" BP BP1) ;Geländeoberkante kopieren und 1.1m weiter unten einfügen ) ;end defun
Ich gehe davon aus, das ich irgendwo in den Auswahlsätzen einen Hänger habe. Nach dieser Funktion soll dann die eingefügte Linie auf einen seperaten Layer gelegt werden, aber das müsste ich dann wieder hinbekommen. Für Tipps, Tricks und Anregungen, würde ich mich sehr freuen Grüße Silcono Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2016 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für silcono
|
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014 AutoCAD 2010 LT AutoCAD 2014 AutoCAD 2018 AutoCAD MAP 3D 2017 Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz 16,00GB Ram Windows 7- Prof. 64-Bit ASUS EAH6450 Series
|
erstellt am: 07. Jul. 2016 09:43 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 02. Nov. 2016 18:26 <-- editieren / zitieren --> Unities abgeben: Nur für silcono
Es geht auch, ohne einen Basispunkt zu wählen. Außerdem hab ich noch eine zusätzliche Anfrage sowie eine Meldung falls nichts gewählt wird eingebaut. Code:
(defun C:DeckLinie (/ gelaende ) (Prompt "Bitte Geländeoberkante(n) wählen:") (if (setq gelaende (SSGET)) ;Geländeoberkante wird ausgewählt (command "_Copy" gelaende "" (list 0.0 -1.1) "") ;Geländeoberkante 1.1m nach unten kopieren ;else (prompt "nichts zu kopieren gewählt.") ) (prin1); nil am Ende unterdrücken ) ;end defun
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014 AutoCAD 2010 LT AutoCAD 2014 AutoCAD 2018 AutoCAD MAP 3D 2017 Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz 16,00GB Ram Windows 7- Prof. 64-Bit ASUS EAH6450 Series
|
erstellt am: 03. Nov. 2016 13:54 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD-Huebner, vielen Dank für deine elegante Lösung, gefällt mir sehr gut. Ein Frage hätte ich noch: Kann ich die die Geländeoberkante, in einen bestimmten Layer kopieren? Hätte hierfür ja den Befehl _Chprop um den Layer zu ändern. Aber mir fehlt der Ansatz, die kopierten Elemente in eine Variable zu stecken. Vielen Dank im Voraus und beste Grüße Silcono Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 03. Nov. 2016 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für silcono
kopieren? die Oberkante oder die neu erzeugte Linie? Layer von Objekten ändern: Das geht grundsätzlich mit ÄNDERN Für _chprop/eiganpass müßte man ja zuvor ein anderes Objekt wählen? Layer für die vorhandenen Oberkanten-Objekte Der Auswahlsatz der Elemente für die Oberkante hast du bereits in der Variable "gelaende", diese kannst du mit dem Befehl ÄNDERN anpassen (zuvor dafür Sorgen das der Layer auch wirklich existiert) Layer für die neuen Objekte: Die neu erzeugten Objekte kannst du nicht "so einfach" fassen, aber mit etwas nachdenken klappts auch mit einfachem Makro: Ändere den Layer der vorhandenen Objekte (Ziellayer der neuen Objekte), für den Kopiervorgang durch, ändere den Layer der alten "gelaende"Objekte wieder. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014 AutoCAD 2010 LT AutoCAD 2014 AutoCAD 2018 AutoCAD MAP 3D 2017 Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz 16,00GB Ram Windows 7- Prof. 64-Bit ASUS EAH6450 Series
|
erstellt am: 03. Nov. 2016 14:23 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm, danke für deine Hilfestellung, aber habe es noch kurzer Googlei von Funktionen, einfacher hinbekommen: Code:
(defun C:DeckLinie (/ gelaende ) (Prompt "Bitte Geländeoberkante(n) wählen:") (if (setq gelaende (SSGET)) ;Geländeoberkante wird ausgewählt (command "_copytolayer" gelaende "" "T-WB_110 cm Linie" (list 0.0 -11.0) "") ;Geländeoberkante 1.1m nach unten kopieren ;else (prompt "nichts zu kopieren gewählt.") ) (prin1); nil am Ende unterdrücken ) ;end defun
Also ich habe den Code jetzt von CAD-Huebner übernommen und den Befehl dementsprechend angepasst. Funktioniert einwandfrei. Nicht wundern bzgl. '-11.0', ich hab eine Überhöhung in meinem Schnitt Viele Grüße und Danke an euch alle! Silcono [Diese Nachricht wurde von silcono am 03. Nov. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |