| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Umkehrstatus für dynamische Blöcke filtern (3855 mal gelesen)
|
Fanny CAD Mitglied
Beiträge: 338 Registriert: 22.01.2010 AutoCAD 2015 AutoCAD Mechanical 2013 WIN 7, MS Office 2010
|
erstellt am: 14. Feb. 2011 15:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe dynamische Blöcke definiert, die einen Umkehrparameter mit Umkehraktion aufweisen. Wenn ich die Eigenschaftenpalette aufrufe, wird mir unter der Rubrik "Benutzerdefiniert" der aktuelle Umkehrstatus für einen ausgewählten Block angezeigt (Status "umgekehrt" oder "nicht umgekehrt"). Ich suche nun nach einer Möglichkeit, die Blöcke in Abhängigkeit vom Umkehrstatus herauszufiltern, d.h. ich will z.B. alle Blöcke mit dem Status "umgekehrt" herausfiltern aus der Zeichnung. Aber weder in der Schnellauswahl noch im Filter wird eine entsprechende Funktion angeboten. Gibt es überhaupt diese Möglichkeit im AutoCAD bzw. Architecture oder fällt das unter "Weihnachtswunsch an AutoDesk"? Vielen Dank im voraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Autodesk Building Design Suite Premium 2021 Windows 10 Pro 64bit HP Workstation Z620, 24GB GeForce GTX 970
|
erstellt am: 14. Feb. 2011 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
Ich kenne da nichts. Also würde ich sagen, dass es zur Rubrick "Weihnachtswusch" zählt. ------------------ Roland Feletic PCD ZT-GmbH Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StokeX Mitglied Schreiner
Beiträge: 267 Registriert: 07.07.2009 AutoCAD 2011 DELL Precision M4500 Windows 7 64bit www.nacer.de
|
erstellt am: 14. Feb. 2011 19:22 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1451 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 15. Feb. 2011 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
|
Fanny CAD Mitglied
Beiträge: 338 Registriert: 22.01.2010 AutoCAD 2015 AutoCAD Mechanical 2013 WIN 7, MS Office 2010
|
erstellt am: 15. Feb. 2011 13:51 <-- editieren / zitieren --> Unities abgeben:
|
domda0 Mitglied
Beiträge: 149 Registriert: 21.04.2004
|
erstellt am: 18. Mai. 2012 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
Hallo zusammen, o.g. Lisp funktioniert bei mir unter 2012 bzw 2013 nicht mehr. Hab als Alternative folgendes gefunden: http://forums.augi.com/showthread.php?96601-Select-all-occurences-of-a-Dynamic-Block-in-Modelspace Allerdings kann ich hier zwar Umkehrstatus "leer" "0" od. "1" auswählen, aber nur bei "leer" gibt er mir alle Blöcke retour 0 bzw. 1 gibt keine Auswahl retour. Kann mir da ev. jemand helfen? Denn bei den anderen scheints zu funktionieren. Eigentlich würde ich ja etwas suchen dass alle dyn. Blöcke mit Umkehrstatus "Umgekehrt" auswählt...(habe aber nichts passendes gefunden) Danke Dominik! Code: ;;; SSD R2.3 (gile) 14/07/2008 ;;; Select dynamic blocks according to dynamic properties values ;;; Using: ;;; To make a selection, enter ssd at command prompt or, ;;; within a modification command, type (ssd) at "Select objects: " prompt ;;; Select a source dynamic block ;;; Choose properties values to filter in the dialog box (an empty tile means "all values")(defun ssd (/ DynBlkPropValue ss blk name pop ret fuzz sel res) (vl-load-com) ;; DynBlkPropValue ;; Dialog box to choose dynamic properties values ;; ;; Argument : the dynamic properties list (vla-object list) (defun DynBlkPropValue (lst / tmp file pn av dcl_id val) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line (strcat "DynBlkProps:Dialog{label=\"Dynamic block filter\";" ":text{label=\"Block name: \"" (vl-prin1-to-string name) ";}spacer;:boxed_column{label=\"Dynamic properties\";" ) file ) (foreach p lst (setq pn (vla-get-PropertyName p)) (cond ((setq av (vlax-get p 'AllowedValues)) (setq pop (cons (cons pn (cons "" (mapcar 'vl-princ-to-string av))) pop ) ) (write-line (strcat " opup_list{label=" (vl-prin1-to-string pn) ";key=" (vl-prin1-to-string pn) ";edit_width=25;allow_accept=true;}" ) file ) ) ((/= pn "Origin") (setq fuzz (cons pn fuzz)) (write-line (strcat ":row{:edit_box{label=" (vl-prin1-to-string pn) ";key=" (vl-prin1-to-string pn) ";edit_width=12;allow_accept=true;}" ":edit_box{label=\"Fuzz\";key=" (vl-prin1-to-string (strcat pn "_fuzz")) ";value=\"0.0\";edit_width=6;allow_accept=true;}}" ) file ) ) ) ) (write-line (strcat "}spacer;:radio_row{key=\"selset\";" ":radio_button{label=\"All drawing\";key=\"all\";value=\"1\";}" ":radio_button{label=\"Selection\";key=\"sel\";}}" "spacer;ok_cancel;}" ) file ) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "DynBlkProps" dcl_id)) (exit) ) (foreach p pop (start_list (car p)) (mapcar 'add_list (cdr p)) (end_list) ) (action_tile "accept" "(foreach p (mapcar 'vla-get-PropertyName lst) (if (assoc p pop) (setq val (nth (atoi (get_tile p)) (cdr (assoc p pop)))) (setq val (get_tile p))) (if (and val (/= val \"\")) (setq ret (cons (cons p val) ret)))) (setq fuzz (mapcar (function (lambda (x) (cons x (get_tile (strcat x \"_fuzz\"))))) fuzz)) (and (not ret) (setq ret T)) (setq sel (get_tile \"selset\")) (done_dialog)" ) (action_tile "cancel" "(setq ret nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ret ) ;;----------------------------------------------------;; (and (or (and (setq ss (cadr (ssgetfirst))) (= 1 (sslength ss)) (setq blk (vlax-ename->vla-object (ssname ss 0))) (sssetfirst nil nil) ) (and (sssetfirst nil nil) (setq blk (car (entsel))) (setq blk (vlax-ename->vla-object blk)) ) ) (= (vla-get-ObjectName blk) "AcDbBlockReference") (= (vla-get-IsDynamicBlock blk) :vlax-true) (setq name (vla-get-EffectiveName blk)) (DynBlkPropValue (vlax-invoke blk 'getDynamicBlockProperties) ) (if (= sel "all") (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) (ssget (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) ) (setq res (ssadd)) (vlax-for b (setq ss (vla-get-ActiveSelectionSet (vla-get-activeDocument (vlax-get-acad-object) ) ) ) (if (and (= (vla-get-EffectiveName b) name) (or (= ret T) ((lambda (lst) (apply '= (cons T (mapcar (function (lambda (p / n v l u f) (setq n (car p) l (assoc n lst) u (vla-get-UnitsType (caddr l)) ) (equal (cond ((= 0 u) (cdr p)) ((= 1 u) (angtof (cdr p))) (T (distof (cdr p))) ) (cadr l) (if (and (setq f (cdr (assoc n fuzz))) (numberp (read f)) ) (atof f) 0.0 ) ) ) ) ret ) ) ) ) (mapcar (function (lambda (p / n v) (list (setq n (vla-get-PropertyName p)) (vlax-get p 'Value) p ) ) ) (vlax-invoke b 'getDynamicBlockProperties) ) ) ) ) (ssadd (vlax-vla-object->ename b) res) ) ) (vla-delete ss) ) res ) ;;; Calling function (defun c:ssd () (sssetfirst nil (ssd)) (princ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
domda0 Mitglied
Beiträge: 149 Registriert: 21.04.2004 ACAD 2014
|
erstellt am: 22. Mai. 2012 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9795 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 04. Jun. 2012 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
|
domda0 Mitglied
Beiträge: 149 Registriert: 21.04.2004
|
erstellt am: 05. Jun. 2012 00:57 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
Hallo Udo, habs nun noch mal mit dem von "deiner" Seite versucht. Sehr schräges Resultat... (Testobjekte wie folgt 1) Block mit dyn.Eigenschaft Umkehrstatus: Umkehrstatus "leer" --> gibt alle Blöcke retour "1" --> kein Objekt in Auswahl "0" --> kein Objekt in Auswahl 2) Block mit Drehungssatz (mit Werteliste: 0,15,30,45,60,75,90) "0.0" --> Richtige Auswahl retour Weitere Auswahl im Pulldownfenster: 0,261799 0,523599 0,785398....bis 3,14159 Jedoch ist egal was ich ausser "leer" und "0.0" auswähle, es kommt keine Auswahl retour.. Danke trotzdem schon mal für die Hilfe!! LG Dominik
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OlgaG Mitglied IT-Ingenieurin
Beiträge: 8 Registriert: 26.06.2021
|
erstellt am: 26. Aug. 2021 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für Fanny CAD
Hallo, koennten Sie mir bitte sagen, was ich im Code aendern muss, wenn das Fenster "DCL" nicht auf den Bildschirm passt und der Befehl "ssd" nicht funktioniert? Es erscheint eine Meldung: "Das Dialogfenster passt nicht auf den Bildschirm. Die erforderliche Groesse.. uebersteigt die zulaessige Groesse..". [Diese Nachricht wurde von OlgaG am 26. Aug. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |