Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schleife für den Befehl

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:  Schleife für den Befehl (408 mal gelesen)
aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 24. Mrz. 2009 15:37    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 Leute,
Habe ein kleines Problem (Anfänger in Lisp)ich will doch nur die Objektwahl und die folgenden Befehle wiederholen bis der Benutzer abbricht.
Das geht sichlich ganz einfach und ich bin zu blind um das zu erkennen.
Bitte kann mir wer helfen.

Anbei mein selbstgebasteltest Lisp.
(defun c:TEXTDREHEN ()
  (setq ausw (entsel "Linenelement auswählen: "))
  (setq obj (car ausw))
  (setq pkt (cadr ausw))
  (setq orig '(0.0 0.0 0.0))
  (vl-load-com)
  (setq vlaobj (vlax-ename->vla-object obj))
  (setq opkt (vlax-curve-getClosestPointTo vlaobj pkt))
  (setq para (vlax-curve-getParamAtPoint vlaobj opkt))
  (setq vlawink (vlax-curve-getFirstDeriv vlaobj para))
  (setq winkrad (angle orig vlawink))
  (setq wink (angtos (angle orig vlawink)))
;;**************************************************************
  (setq drehobj (entsel "Objekt zum ausrichten wählen: "))
  (setq bl (entget(car drehobj)))
  (setq baspkt (cdr (assoc 10 bl)))
  (setq bl (subst (cons 50 winkrad) (assoc 50 bl) bl))
  (entmod bl)
  (command "_move" drehobj "" baspkt)
)

mfg Markus

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: 24. Mrz. 2009 15:40    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 aufi 10 Unities + Antwort hilfreich

ungetestet :

(defun c:TEXTDREHEN ()
  (while(setq ausw (entsel "Linenelement auswählen: "))
    (setq obj (car ausw))
    (setq pkt (cadr ausw))
    (setq orig '(0.0 0.0 0.0))
    (vl-load-com)
    (setq vlaobj (vlax-ename->vla-object obj))
    (setq opkt (vlax-curve-getClosestPointTo vlaobj pkt))
    (setq para (vlax-curve-getParamAtPoint vlaobj opkt))
    (setq vlawink (vlax-curve-getFirstDeriv vlaobj para))
    (setq winkrad (angle orig vlawink))
    (setq wink (angtos (angle orig vlawink)))
  ;;********************************************************  ******
    (setq drehobj (entsel "Objekt zum ausrichten wählen: "))
    (setq bl (entget(car drehobj)))
    (setq baspkt (cdr (assoc 10 bl)))
    (setq bl (subst (cons 50 winkrad) (assoc 50 bl) bl))
    (entmod bl)
    (command "_move" drehobj "" baspkt)
  )
)

------------------
  - 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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 24. Mrz. 2009 16: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

Danke für die schnelle Antwort, aber es funktioniert nicht.
mfg Markus

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 24. Mrz. 2009 16:12    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

Danke für die schnelle Antwort, aber es funktioniert nicht.
mfg Markus

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: 24. Mrz. 2009 16:21    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 aufi 10 Unities + Antwort hilfreich

mach mal nach dem
(command "_move" drehobj "" baspkt)
noch
(while (/=(getvar "CMDACTIVE")0)(command pause))

oder sowas

------------------
  - 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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 24. Mrz. 2009 16: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 aufi 10 Unities + Antwort hilfreich

Hallo Markus,
so wie CADmium es gepostet hat, aber in der Command-Zeile zum Schluß habe ich noch ein pause eingefügt, damit der Benutzer die Position des gedrehten Textes angeben kann.
Code:

(defun c:TEXTDREHEN ()
  (while (setq ausw (entsel "Linenelement auswählen: "))
  (setq obj (car ausw))
  (setq pkt (cadr ausw))
  (setq orig '(0.0 0.0 0.0))
  (vl-load-com)
  (setq vlaobj (vlax-ename->vla-object obj))
  (setq opkt (vlax-curve-getClosestPointTo vlaobj pkt))
  (setq para (vlax-curve-getParamAtPoint vlaobj opkt))
  (setq vlawink (vlax-curve-getFirstDeriv vlaobj para))
  (setq winkrad (angle orig vlawink))
  (setq wink (angtos (angle orig vlawink)))
;;**************************************************************
  (setq drehobj (entsel "Objekt zum ausrichten wählen: "))
  (setq bl (entget(car drehobj)))
  (setq baspkt (cdr (assoc 10 bl)))
  (setq bl (subst (cons 50 winkrad) (assoc 50 bl) bl))
  (entmod bl)
  (command "_move" drehobj "" baspkt pause)
    )
)

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 25. Mrz. 2009 07:20    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

Danke an alle,
mit Pause und while hat es dann funktionier.
Ging alles super. Werde auch viele Units verleihen.
mfg Markus

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