| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Objektfang beim Bemassen (376 mal gelesen)
|
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 31. Jan. 2007 16:50 <-- editieren / zitieren --> Unities abgeben:
Ich habe als Standardobjektfänge Endpunkt, Mittelpunkt und Schnittpunkt eingestellt und möchte den Mittelpunkt beim Bemassen automatisch ausschalten und beim Beenden der Vermassung wieder einschalten. Hat jemand schon eine gute Lösung dafür gefunden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 31. Jan. 2007 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für cad4fun
"Ordentlich" geht das nur über´ne Reactor Programmierung denke ich, also keine "einfachen" Möglichkeiten . (Makro geht nicht da du ja verschieden-viele klick´s machst bei der Bemaßung) Das einzige was "einfach" zu machen ist, wäre ein Button "toggle Mit/Ohne Mittel-Fangpunkt" - die Sysvar der permanenten OfangEinstellung ist OSMODE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 31. Jan. 2007 17:13 <-- editieren / zitieren --> Unities abgeben:
Die Buttons zum Einschränken der Ofangs habe ich schon, aber es ist nervig, bei jeder Bemassungsaktion umzustellen. Dass es NUR über Reactor-Lösung geht, habe ich befürchtet. Hier wäre eine Sysvar erfreulich, welche die Ofänge im Falle einer Bemassungsaktion festlegt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 31. Jan. 2007 17:20 <-- editieren / zitieren --> Unities abgeben: Nur für cad4fun
Hi, in Anlehnung an diesen Thread und natürlich an den unvergleichlichen mapcar (R.I.P.): (Die Funktion in 'ne Datei z.B. "MyDimreactor.lsp" im Acad-Suchpfad speichern und aus der acaddoc.lsp automatisch laden lassen, dann wird automatisch der Ofang deaktiviert wenn ein Bemassungsbefehl aufgerufen wird.) Code:
;; Funktion guckt nach, ob ein Bit in dem Bitcode vorkommt ;; z.B.: (checkflag (getvar "osmode") 2) -> T oder nil (defun CHECKFLAG (NUM FLAG) (= (logand NUM FLAG) FLAG) );; Fügt dem Bitcode das entsprechde Bit hinzu, ;; wenn noch nicht gesetzt (defun SETFLAG (NUM FLAG) (logior NUM FLAG) ) ;; entfernt das Bit, wenn es existiert (defun REMOVEFLAG (NUM FLAG) (if (CHECKFLAG NUM FLAG) (- NUM FLAG) NUM ) ) (defun PRE_DIM (REATYP BEFNAME /) (cond ((wcmatch (car BEFNAME) "DIM*") (setvar "osmode" (SETFLAG (getvar "osmode") 16384)) ) ) ) (defun AFTER_DIM (REATYP BEFNAME /) ;Wenn Bem beendet wird (cond ((wcmatch (car BEFNAME) "DIM*") (setvar "osmode" (REMOVEFLAG (getvar "osmode") 16384)) ) ) ) (defun DIMREACTOR-LOAD () ;Initialisierung des Reactors (if (not *DEFUN_DIMOSNAP*) (progn (setq *DEFUN_DIMOSNAP* (vlr-command-reactor "*DEFUN_DIMOSNAP*" '((:vlr-commandended . AFTER_DIM) (:vlr-commandcancelled . AFTER_DIM) (:vlr-commandwillstart . PRE_DIM) ) ) ) (princ "\nBemassungsreaktor aktiviert") ) ) )
(DIMREACTOR-LOAD)
Viel Spaß dabei ;-) ...------------------ Ciao, Marc Mein AG sucht u.a. Architekten und Bauzeichner! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 01. Feb. 2007 09:13 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von marc.scherer: dann wird automatisch der Ofang deaktiviert wenn ein Bemassungsbefehl aufgerufen wird.) Viel Spaß dabei ;-) ...
Hallo Marc, ich will nur den Flag für den Ofang Mittelpunkt beim Bemaßen nicht gesetzt haben. Die Lösung Bemaßen ohne Ofang ist nicht spaßig Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 01. Feb. 2007 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für cad4fun
|
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 01. Feb. 2007 09:34 <-- editieren / zitieren --> Unities abgeben:
Wenn ich Dich richtig verstehe, sollen die folgenden zeilen so ausschauen, um das von mir gewünschte Ergebnis zu erzielen: (setvar "osmode" (SETFLAG (getvar "osmode") 2)) (setvar "osmode" (REMOVEFLAG (getvar "osmode") 2)) Das habe ich bereits getestet, beim Starten eines Bemassungsbefehls bleibt mein Osmodewert von 2083 unverändert und beim Beenden wird er auf 2081 gesetzt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 01. Feb. 2007 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für cad4fun
Hi, mal ein anderer Ansatz für Dich, ich war vorher wohl auf dem falschen Dampfer (In Deinem Fall mit dem aktivieren / deaktivieren des OSMODE Bitcodes 2 müßten die Funktionen removeflag / setflag vertauscht werden.) Also noch mal was anderes, was besser auf Dich paßt: (Bitte den Kommentar; alles was mit ; beginnt; am Anfang lesen und gewünschten osmode in der ersten Programmzeile eintragen) Code:
;;; Hier globale Variable für OSMODE während Bemassung eintragen: ;; z.B. (+ 1 32) für Schnittpunkt und Mittelpunkt. ;; Es sind beliebig viele Argumente für die Funktion + zulässig, ;; denkbar wäre auch: (+ 1 4 32 2048)(vl-bb-set "*DEFUN_SETDIMOSMODE*" (+ 1 32)) ;;; Gültige Werte: ;;; 0 KEIner ;;; 1 ENDPunkt ;;; 2 MITtelpunkt ;;; 4 ZENtrum ;;; 8 PUNkt ;;; 16 QUADrant ;;; 32 SCHnittpunkt ;;; 64 BASispunkt ;;; 128 LOT ;;; 256 TANgente ;;; 512 NÄChster Punkt ;;; 1024 Löscht alle Objektfänge ;;; 2048 Angenomm. Schnittpunkt (ANP) ;;; 4096 HILfslinie ;;; 8192 PARallel ;;; 16384 Deaktiviert permanenten OFANG (defun PRE_DIM (REATYP BEFNAME /) (cond ((wcmatch (car BEFNAME) "DIM*") ;; Sichern des alten OSMODE im Blackboard (if (not (vl-bb-ref "*DEFUN_SAVEOSMODE*")) (vl-bb-set "*DEFUN_SAVEOSMODE*" (getvar "osmode")) ) (setvar "osmode" (vl-bb-ref "*DEFUN_SETDIMOSMODE*")) ) ) ) (defun AFTER_DIM (REATYP BEFNAME /) ;Wenn Bem beendet wird (cond ((wcmatch (car BEFNAME) "DIM*") (setvar "osmode" (vl-bb-ref "*DEFUN_SAVEOSMODE*")) ) ) ) (defun DIMREACTOR-LOAD () ;Initialisierung des Reactors (if (not *DEFUN_DIMOSNAP*) (progn (setq *DEFUN_DIMOSNAP* (vlr-command-reactor "*DEFUN_DIMOSNAP*" '((:vlr-commandended . AFTER_DIM) (:vlr-commandcancelled . AFTER_DIM) (:vlr-commandwillstart . PRE_DIM) ) ) ) (princ "\nBemassungsreaktor aktiviert") ) ) )
(DIMREACTOR-LOAD)
Das sollte es für Dich tun...------------------ Ciao, Marc Mein AG sucht u.a. Architekten und Bauzeichner!
[Diese Nachricht wurde von marc.scherer am 01. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 01. Feb. 2007 09:59 <-- editieren / zitieren --> Unities abgeben:
Verwende jetzt die Holzhammermethode: beim Starten eines DIM-Befehls (setvar "osmode" 2093)-->Mittelpunkt weg, Zentrum und Punkt dazu beim Beenden oder Abbruch Rücksetzen auf meinen Standardwert (setvar "osmode" 2083) Funktioniert hervorragend mit der Reaktorprogrammierung. Danke an marc Ein wenig zu spät kommend sehe ich: Du hast die Holzhammermethode elegant programmiert! [Diese Nachricht wurde von cad4fun am 01. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |