Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  _Copy & Koordinaten - LISP

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  _Copy & Koordinaten - LISP (1393 / mal gelesen)
silcono
Mitglied
Planer


Sehen Sie sich das Profil von silcono an!   Senden Sie eine Private Message an silcono  Schreiben Sie einen Gästebucheintrag für silcono

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Jul. 2016 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für silcono 10 Unities + Antwort hilfreich

(setq BP1 (list BPx BPy1))
oder
(setq BP1 (list BPx BPy1 0.0))

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

silcono
Mitglied
Planer


Sehen Sie sich das Profil von silcono an!   Senden Sie eine Private Message an silcono  Schreiben Sie einen Gästebucheintrag für silcono

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank CADmium!!!
Funktioniert!

Gruß Silcono

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 02. Nov. 2016 18:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für silcono 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von silcono an!   Senden Sie eine Private Message an silcono  Schreiben Sie einen Gästebucheintrag für silcono

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 03. Nov. 2016 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für silcono 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von silcono an!   Senden Sie eine Private Message an silcono  Schreiben Sie einen Gästebucheintrag für silcono

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz