| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | PNY auf der ISC, Hamburg | 22.-26. Juni 2026, eine Veranstaltung am 22.06.2026
|
|
Autor
|
Thema: Elemente eines Blockes (1514 mal gelesen)
|
vlide Mitglied

 Beiträge: 29 Registriert: 10.07.2006 AutoCAD 200x ObjectDCL 3.0
|
erstellt am: 18. Jul. 2006 09:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo, wie kommt man via ActiveX an die Elemente eines Blockes? Den Block mit (setq vlaObj (vlax-ename->vla-object (car (entsel)))) habe ich schon - und dann? Mit vlax-for ...? Schon mal vielen Dank für eure Hilfe!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
 
 Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 18. Jul. 2006 11:47 <-- editieren / zitieren --> Unities abgeben:          Nur für vlide
Zitat: Hallo,wie kommt man via ActiveX an die Elemente eines Blockes? Den Block mit (setq vlaObj (vlax-ename->vla-object (car (entsel)))) habe ich schon - und dann? Mit vlax-for ...?
Nee, so wird das nix  Sich nicht an der Block -Referenz versuchen, sondern an deren DefinitionMittels (car(entsel)) dir den Blocknamen ausgeben lassen und dann mit vlax-for durch die Definition iterieren.. Funktion gibt die Objekte eines Blockes als Liste zurück Aufruf: (GetBlockEntity "MeinBlock")
Code: (defun GetBlockEntity (#blockname / retlst) (if (tblsearch "BLOCK" #blockname) (vlax-for each (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) #blockname ) (setq retlst (cons each retlst)) ) ) )
Einfaches Beispiel: Ändern der Farben in einem Block Aufruf: (ChangeColor (GetBlockEntity "MeinBlock") 1) Code: (defun ChangeColor (#vlaObjectList #col) (foreach each #vlaObjectList (vla-put-color each #col)) )
Nach einem regenerieren sieht man das Ergebnis...Greets Rolf ------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
vlide Mitglied

 Beiträge: 29 Registriert: 10.07.2006 AutoCAD 200x ObjectDCL 3.0
|
erstellt am: 18. Jul. 2006 11:53 <-- editieren / zitieren --> Unities abgeben:         
|
astlex Mitglied cad-admin

 Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 18. Jul. 2006 15:08 <-- editieren / zitieren --> Unities abgeben:          Nur für vlide
hola freunde der klammern, oder als handleliste ; *********************************************************************** ;Gruppe: BLOCK ; ;Autor: ast ; ;Datum: 09.09.05 ; ;Funktion: HandlesFromBlock ; ;Zweck: Gibt alle Handles eines Blocks zurück (Stringliste), ohne ihn zu ursprungen (diese können dann weiterbearbeitet werden) ; ;Argumente: VLA-Object des gewünschten Blockes ; ;Rückgabe: LIST ; ;Beispiel: (HandlesFromBlock (vlax-ename->vla-object (car (entsel)))) --> ("D16E" "D16D") od. nil ; ; *********************************************************************** (defun HandlesFromBlock (objVLABlock / objBlock strHandle lstHandles) (if (= (vlax-get-property objVLABlock 'ObjectName) "AcDbBlockReference");wenn Block ;ObjectName (RO) = "AcDbBlockReference" (progn (setq objBlock (vla-item (vla-get-Blocks (vla-get-ActiveDocument (vlax-Get-acad-object)));Block Collection (vlax-get objVLABlock 'Name);Name des gewünschten Blocks ) ) (vlax-for item objBlock (setq strHandle (vlax-get item 'Handle)) (if (not (member strHandle lstHandles)) (setq lstHandles (cons strHandle lstHandles))) ) ) ) lstHandles ) meine erste antwort (bin sehr aufgeregt ) lg alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
vlide Mitglied

 Beiträge: 29 Registriert: 10.07.2006 AutoCAD 200x ObjectDCL 3.0
|
erstellt am: 18. Jul. 2006 15:17 <-- editieren / zitieren --> Unities abgeben:         
|