Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  dynamische blöcke ssget

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  dynamische blöcke ssget (1081 mal gelesen)
Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

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: 06. Jul. 2010 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Servus

Verwende den ua Code zur Auswahl von Blöcken mit gleichen Namen, mit den dynamischen Blöcken funktioniert das ja nicht mehr.
Hat wer einen Tip?

ps.: unter http://forums.augi.com/showpost.php?p=946610&postcount=4  hab ich was gefunden, aber das ist wieder zu umfangreich.


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)
    )
  )
)

------------------
<----- 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

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 06. Jul. 2010 10:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Bernd P:
... hab ich was gefunden, aber das ist wieder zu umfangreich.
...

Hallo Bernd,

du musst ja auch nicht alles übernehmen. Schau dir den Code doch mal genau an! Da wird ein Auswahlsatz über die INSERTs gebildet, die *U* heißen (hier fehlt noch die zusätzliche Eingrenzung auf den Original-Namen, denn auch der kann vorkommen, wenn nach dem Einfügen keine Änderung einer dyn. Eigenschaft erfolgt ist). Danach wird jedes Element dieser Auswahl geprüft, ob der (vla-get-EffectiveName b)dem des dynamischen Blocks entspricht. Wenn ja -> ok ansonsten raus aus der Auswahl.

Einen anderen Weg gibt es nicht.

Bei Fragen ...

Grüße!

Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 06. Jul. 2010 10:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

Anbei mal ne Code zum Anpassen

(defun BLOCKSELECT(/ AWS AWSL INDEX OBJ NANE BLOCKLIST AWS2)
  (if(and(setq OBJ(car(entsel "\nBlockreferenz wählen: ")))
        (setq OBJ(setq OBJ(vlax-ename->vla-object OBJ)))
        (member (strcase(vla-get-objectname  OBJ))
                '("ACDBBLOCKREFERENCE" "ACDBMINSERTBLOCK")
        )
        (or(and(vlax-property-available-p OBJ "IsDynamicBlock")
          (=(vla-get-IsDynamicBlock OBJ):vlax-true)
        (setq NAME (vla-get-effectivename OBJ))
            )   
            (setq NAME (vla-get-Name OBJ))
        )     
        (setq AWS(ssget "_x" '((0 . "INSERT"))))
        (> (setq AWSL(sslength AWS))0)
    )
    (progn
      (setq INDEX -1)     
      (repeat AWSL
        (if(and(setq OBJ(ssname AWS(setq INDEX(1+ INDEX))))
              (setq OBJ(vlax-ename->vla-object OBJ))
              (or(and(vlax-property-available-p OBJ "IsDynamicBlock")
      (=(vla-get-IsDynamicBlock OBJ):vlax-true)
      (setq N (vla-get-effectivename OBJ))
                  )
                  (setq N (vla-get-Name OBJ))
              )             
              (=(strcase NAME)(strcase N))
          )
          (setq BLOCKLIST(cons OBJ BLOCKLIST))       
        )
      )
      (if BLOCKLIST
        (progn
          (setq AWS2(ssadd))
          (mapcar
            '(lambda(X)
              (ssadd (vlax-vla-object->ename X) AWS2)
            )
            BLOCKLIST
          ) 
        ) 
      )     
    )   
  )
  AWS2 
)

------------------
  - 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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz