| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: objektauswahl (1754 mal gelesen)
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 16. Mrz. 2011 13:33 <-- editieren / zitieren --> Unities abgeben:
Servus verwende Code zur Auswahl von Blöcken mit gleichen Namen den u.a Code, leider funktioniert der Code bei dynamischen Blöcken nicht mehr. Ich hab aber gesehen das bei EffectiveName der richtige Name drin steht, kann man diesen für den Filter verwenden und wenn ja wie.
Code:
;;-Auswahl Blocknahme-------------------------------------------------------- (defun c:sel_blk (/ OBJ AWS) (if(setq OBJ(car(entsel))) (progn (setq AWS(ssget "_x" (vl-remove-if-not '(lambda(x)(member (car X) '( 2 ))) (entget OBJ)))) (sssetfirst AWS AWS) ) ) )
danke bernd ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1356 Registriert: 11.01.2006 WIN 10 ACAD 2022
|
erstellt am: 16. Mrz. 2011 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hallo Bernd, mit: (vla-get-effectivename (vlax-ename->vla-object OBJ)) müßtest du was anfangen können. Aber prüf vorher ob es ein Block ist sonst gibts ne Fehlermeldung. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 16. Mrz. 2011 15:07 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
z.B. Code:
(defun C:BLOCKSELECTSIMILAR(/ OBJ NAME BLOCKDEF ITEM LISTE AWS) (if(and(setq OBJ(car(entsel"\nBlockreferenz wählen: "))) (wcmatch(strcase(cdr(assoc 0(entget OBJ))))"*INSERT") (setq OBJ(vlax-ename->vla-object OBJ)) (or(and(vlax-property-available-p OBJ "EffectiveName") (setq NAME(strcase(vla-get-EffectiveName OBJ))) ) (setq NAME (strcase(vla-get-name OBJ))) ) ) (progn (vlax-for BLOCKDEF (vla-get-blocks(vla-get-ActiveDocument(vlax-get-acad-object))) (if (=(vla-get-isxref BLOCKDEF):vlax-false) (vlax-for ITEM BLOCKDEF (if(and(member (strcase(vla-get-objectname ITEM)) '("ACDBBLOCKREFERENCE" "ACDBMINSERTBLOCK") ) (or(=(strcase(vla-get-name ITEM))(strcase NAME)) (and(vlax-property-available-p ITEM "EffectiveName") (=(strcase(vla-get-EffectiveName ITEM))(strcase NAME)) ) ) ) (setq LISTE(cons ITEM LISTE)) ) ) ) ) (if(>(length LISTE)0) (progn (setq AWS(ssadd)) (mapcar '(lambda(X) (ssadd (vlax-vla-object->ename X) AWS)) LISTE) (sssetfirst AWS AWS) ) ) ) ) )
------------------ - 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 |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 16. Mrz. 2011 15:35 <-- editieren / zitieren --> Unities abgeben:
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 08. Apr. 2011 11:37 <-- editieren / zitieren --> Unities abgeben:
Servus Kann man das ganze so drehen das der dynamische Block mit dem Namen "PLT M010 Textfeld" gewählt wird? ( kriegs alleine net hin) ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Apr. 2011 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Code:
(defun C:BLOCKSELECTSIMILAR_SP(/ OBJ NAME BLOCKDEF ITEM LISTE AWS) (if(and(setq NAME "PLT M010 Textfeld") (tblobjname "BLOCK" NAME) ) (progn (vlax-for BLOCKDEF (vla-get-blocks(vla-get-ActiveDocument(vlax-get-acad-object))) (if (=(vla-get-isxref BLOCKDEF):vlax-false) (vlax-for ITEM BLOCKDEF (if(and(member (strcase(vla-get-objectname ITEM)) '("ACDBBLOCKREFERENCE" "ACDBMINSERTBLOCK") ) (or(=(strcase(vla-get-name ITEM))(strcase NAME)) (and(vlax-property-available-p ITEM "EffectiveName") (=(strcase(vla-get-EffectiveName ITEM))(strcase NAME)) ) ) ) (setq LISTE(cons ITEM LISTE)) ) ) ) ) (if(>(length LISTE)0) (progn (setq AWS(ssadd)) (mapcar '(lambda(X) (ssadd (vlax-vla-object->ename X) AWS)) LISTE) (sssetfirst AWS AWS) ) ) ) ) )
..alles klar ? ------------------ - 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 |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 11. Apr. 2011 14:00 <-- editieren / zitieren --> Unities abgeben:
|