| |
| 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: Existenz von Attributen (1109 mal gelesen)
|
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 05. Apr. 2013 15:54 <-- editieren / zitieren --> Unities abgeben:
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 05. Apr. 2013 17:59 <-- editieren / zitieren --> Unities abgeben: Nur für Musicus
Hallo Musicus, als Ansatz Code: (defun c:attributes? (/ return) (vl-load-com) (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-for item block (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item))) (setq return t) ) ) ) (if return (alert "Attribut(e) gefunden.") ) (prin1) )
Grüße, Henning------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 08. Apr. 2013 17:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Henning, vielen Dank für den Ansatz. Jetzt übersteigt ActiveX meine Lisp-Kenntnisse doch etwas, aber ich denke ich weiß, was das Progrämmchen im Inneren tut. Es funktioniert auch wunderbar. Ich brauche jetzt aber keine Meldung als Ausgabe, sondern es soll natürlich ein Befehl ausgeführt werden. Wenn keine Attribute drin sind, darf der Befehl nicht ausgeführt werden. Ich dachte mir, packst du statt (alert ...) einfach das Stück Code rein, was du schon hast, und fertig. Gedacht wahrscheinlich nicht schlecht, aber es tut nicht Hier mein Versuch: Code: (defun c:attributes? (/ return AWS) (vl-load-com) (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-for item block (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item))) (setq return t) ) ) ) (if return (command "_BURST" "alle" "")(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "") (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>")))) (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "") ) )
Vielen Dank nochmal für deine Hilfe und die Geduld mit meinen rudimentären Lisp-Kenntnissen.
[Diese Nachricht wurde von Musicus am 08. Apr. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 08. Apr. 2013 17:45 <-- editieren / zitieren --> Unities abgeben: Nur für Musicus
|
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 08. Apr. 2013 18:17 <-- editieren / zitieren --> Unities abgeben:
Danke Marco, da hätte ich auch selbst drauf kommen können. Der Syntaxfehler ist jetzt weg. Nächstes Problem: Anscheinend lässt sich BURST nicht verlispeln. Als Skript läuft das hier wunderbar, nur eben ohne Abfrage der Attribute.
Code: burst alle(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "") (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))(command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")
Das hier geht nicht: Code: (defun c:attributes? (/ return AWS) (vl-load-com) (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-for item block (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item))) (setq return t) ) ) ) (if return (progn (command "_BURST" "alle" "")(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "") (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>")))) (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "") ) ) )
BURST ist hier ein unbekannter Befehl. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 08. Apr. 2013 18:28 <-- editieren / zitieren --> Unities abgeben: Nur für Musicus
|
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 09. Apr. 2013 11:32 <-- editieren / zitieren --> Unities abgeben:
|
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 09. Apr. 2013 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für Musicus
|
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 09. Apr. 2013 17:44 <-- editieren / zitieren --> Unities abgeben:
Danke für den Tipp mit iburst, der wird hier gleich zum Einsatz kommen. iburst läuft jetzt auch ohne Probleme durch, danach geht's allerdings nicht weiter. Im Skript läuft der letzte Teil bisher problemlos. Code: (defun c:attributes? (/ return AWS) (vl-load-com) (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-for item block (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item))) (setq return t) ) ) ) (if return (progn (sssetfirst nil (ssget "_X" (list (cons 0 "insert")(cons 66 1)))) (command (c:iBURST)) (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>")))) (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "") ) ) )
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: 09. Apr. 2013 17:50 <-- editieren / zitieren --> Unities abgeben: Nur für Musicus
|
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2018 Linear, CATS Windows 10
|
erstellt am: 09. Apr. 2013 17:56 <-- editieren / zitieren --> Unities abgeben:
|