| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Transparente Punkte in while Schleife (1482 mal gelesen)
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 05:54 <-- editieren / zitieren --> Unities abgeben:
(defun c:2PC (/ p1 p2 p3 wp1 wp2 wp3) (while (setq p1 (getpoint "Punkt1")) (setq p2 (getpoint "Punkt2")) (setq wp1 (trans p1 1 0)) (setq wp2 (trans p2 1 0)) (command "_ucs" "3p" p1 p2 "") (command "bemlinear" (trans wp1 0 1) (trans wp2 0 1) pause) (command "Bemweiter" Pause) (while (/= (getvar "CMDACTIVE") 0) (command pause)) (command "._ucs" "vo") ) ) Hallo,
Obiges Lisp funktioniert soweit. Nur wenn ich bei p2 einen transparenten Objektfang (lotrecht) oder einen Punkt mit der Objektfangspur geben will wird dieser Punkt irgendwo nur nicht wo er sein soll fixiert. Woran kann das liegen? Bitte um eure Hilfe. Danke! lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Nov. 2013 08:04 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Meinst du mit der Aussage a) Der Objektfang arbeitet nicht wie geünscht (Autosnap Markierung wird schon "falsch" angezeigt) oder b) der jeweilige Bemaßungspunkt wird nicht an den vorher durch die AutosnapMarkierung gezeigten Punkt erstellt. Ich denke ja du meinst Fall a) und da würde ich dich bitten doch mal ohne deine Zeilen zu testen, einfach per Hand mit _dimlinear und _dimcontinue in der Befehlszeile.. Weicht das Veralten wirklich voneinander ab ? Während des _dimcontinue verhält sich der OFang LOT nämlich immer etwas merkwürdig, die Funktion der Objektfangspur ist meines Wissen aber problemlos, das müßte man anhand von DWGbeispiel und Beschreibung + Screenshots mal näher beschreiben. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 08:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Cadffm, Entschuldige bitte wenn ich erst jetz antworte. Bin nicht immer am Schreibtisch. Es funktionieren diverse Bemaßungsbefehle in Kombi mit Transparenten Befehlen und Objektfangspur einwandfrei. Das Problem ist nur in dieser while Schleife. Wenn das Lisp den zweiten Punkt abfragt möchte ich wahlweise einen Punkt picken, einen Punkt mit Objektfangspur picken oder eben mit dem Objektfang Lot angeben. Wenn ich den zweiten Punkt "normal" picke funktioniert alles wunderbar.Mit den anderen Optionen aber leicher nicht. Da fängt es mir Punkte irgendwo. Es könnte aber auch mit dem umrechnen (trans) ins WKS sein. Woran kann das liegen? lg. Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Nov. 2013 08:37 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 08:39 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Nov. 2013 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 08:59 <-- editieren / zitieren --> Unities abgeben:
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 19. Nov. 2013 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Hallo, mit der Sytemvariable "OSMODE" kannst Du gezielt einstellen, wo der Fang hinspringen soll. Z.B. so: Am Anfang Deiner Datei: (Setq O_M (Getvar "OSMODE")) (setvar "OSMODE" 128) ; wenn Fang Lot gewünscht ist Am Ende Deiner Datei: (setvar "OSMODE" O_M) Ich bin mir nicht sicher, ob mein Tipp, das ist was Du benötigt. Du kannst ihn auch sonst verwenden. Gruß Theodor Schönwald Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 10:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Theodor, Danke für deine Hilfe. Es scheint soweit zu funktionieren. (defun c:2PC (/ p1 p2 p3 wp1 wp2 wp3 ) (while (setq p1 (getpoint "Punkt1")) (setvar "OSMODE" 128);;;;;;;;;;;;;;;Lot (setq p2 (getpoint "Punkt2")) (setq wp1 (trans p1 1 0)) (setq wp2 (trans p2 1 0)) (command "_ucs" "3p" p1 p2 "") (command "bemlinear" (trans wp1 0 1) (trans wp2 0 1) pause ) (command "Bemweiter" Pause) (while (/=(getvar "CMDACTIVE")0)(command pause)) (command "._ucs" "vo") ) ) Wenn ich aber nur ab und zu diesen Objektfang brauche geht das leider nicht. Deshalb hab ich auch den transparenten Befehl versucht. Leider ohne Erfolg. lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 19. Nov. 2013 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Hallo Martin, so sieht sieht Dein Code besser aus: :: --------------------------------------- (defun c:2PC (/ o_m p1 p2 p3 wp1 wp2 wp3 ) (setq o_m (getvar "OSMODE")); Voreinstellungen speichern (while (setq p1 (getpoint "Punkt1")) (setvar "OSMODE" 128);;;;;;;;;;;;;;;Lot (setq p2 (getpoint "Punkt2")) (setq wp1 (trans p1 1 0)) (setq wp2 (trans p2 1 0)) (command "_ucs" "3p" p1 p2 "") (command "bemlinear" (trans wp1 0 1) (trans wp2 0 1) pause ) (command "Bemweiter" Pause) (while (/=(getvar "CMDACTIVE")0)(command pause)) (command "._ucs" "vo") ) (setvar "OSMODE" o_m); Voreinstellungen zurück setzen ) ;;---------------------------- Welcher Wert für OSMODE? Ein Tipp: Stelle die Fangfunktion(en) ein, die für Deine Anwendung passt. Danach gibst Du den Befehl OSMODE in der Befehlszeile ein, der angezeigte Wert ist der Wert, den Du mit (setvar "OSMODE" Wert) setzen kannst. Gruß Theodor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 12:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Theodor. Danke für deine Hilfe. Das sichern der Einstellungen ist sehr gut. Habe eine Beispielzeichnung angehängt. Mein Ziel wäre mit diesem Lisp so zu bemaßen wie in der Zeichnung gezeigt. 1 Punkt normal mit Endpunkt etc. wählen. Bei der Abfrage von Punkt 2 möchte ich Strg+RM Kontextmenü Lot auswählen und dann die Polylinie wie im Beispiel gezeigt wählen. Dann wäre schön wenn mir der Punkt P2 gefangen würde. Und zwar genau auf der senkrechten Linie die ich gerade bemaßen will. Danach möchte ich mit der weiterführenden Bemaßung wieder normal die Eck- oder Schnittpunkte usw. fangen. Leider ist das nicht so. Warum weiß ich leider nicht. Warscheinlich funktioniert das Kontextmenü in der While Schleife nicht oder der Lotrechte Punkt wird falsch zurückgegeben. Jedenfalls liegt er nicht auf der senkrechten Linie. (Im Beispiel habe ich den Bemaßungspunkt P2 nachträglich mit den Griffen auf den passenden Punkt verschoben.) lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 19. Nov. 2013 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Hallo Martin, beim Bemaßen schalte ich alle Fangfunktionen ab außer "Schnittpunkt" je nach dem ob Kreise oder Bögen in der Zeichnung sind schalte ich noch "Zentrum" dazu. Wenn "Schnittpunkt" eingestellt ist, springt mir der Cursor nicht auf die Endpunkte der Bemaßungshilfslinien. Die Fangfunktionen benutze ich über die mittlere Maustaste (mit Mbuttonpan), da bin ich schneller als im Menü herum fahren. Die meisten denen ich über die Schulter schaue, haben immer sehr viele Fangfunktionen aktiv, ich arbeite so nicht. Bei Deiner Zeichnung hätte ich "OSMODE" 160 eingestellt, das ist Schnittpunkt und Lot. Gruß Theodor
[Diese Nachricht wurde von Theodor Schoenwald am 19. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 19. Nov. 2013 14:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Theodor, Danke für deine Unterstützung. Hab die Einstellung "Mbuttonpan" bis jetzt eigentlich nur zum schieben bzw. zoomen verwendet. Werde mich mal damit auseinandersetzten was man alles auf das Rad backen kann. Dann ist aber wohl das schieben und zoomen dahin oder? Ich verwende das Kontextmenü sehr viel. Hab es mir einfach angewöhnt weil es doch sehr viele Optionen zur aktuellen Auswahl bereithält. lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 19. Nov. 2013 18:06 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 19. Nov. 2013 18:49 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Hallo Martin, bei mir funktioniert zumindest Zoom einwandfrei. Zum Schieben verwende ich den Schieben-Befehl und gebe die Werte gezielt ein oder benutze dazu die Fang-Funktionen. Da ich CAD sehr viel für CNC-Arbeiten benutze, kann ich mir nicht leisten beim Schieben nach Augenmaß zu arbeiten. Wenn bei Dir mit "Mbuttonpan 0" schieben nicht mehr geht, kannst Du auch Shift + Rechte Maustaste für den Fang verwenden. Viel Erfolg. Theodor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |