| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Gruppencode & Handle (1116 mal gelesen)
|
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 14. Jan. 2020 13:27 <-- editieren / zitieren --> Unities abgeben:
Hallo, weiß jemand, ob es die Möglichkeit gibt, wenn man von einem Auocadblock die object.Handle hat die Gruppencodes von dem Objekt abzufragen? Ich habe in einem Programm ein Schleife, in der von anonyme Blöcken mit Hilfe der object.Handle Nummer Parameter abgefragt werde, und möchte dabei prüfen ob das Opjekt überhaupt aktuell sichtbar ist (Gruppencode 60 = 0) und nicht verborgen (Gruppencode 60 = 1). Alternativ würde es mir auch helfen, wenn man überprüfen kann ob die Objekte mit der object.Handle Nummer in einem Auswahlsatz vorhanden sind. Hat einer eine Idee, und kann mir Tipps geben wie ich dort weiter komme? Vielen Dank Gruß Ludger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 13:51 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
|
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 13:58 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Zitat: Original erstellt von woppi: Alternativ würde es mir auch helfen, wenn man überprüfen kann ob die Objekte mit der object.Handle Nummer in einem Auswahlsatz vorhanden sind
Dazu kann ich nichts schreiben, da ich noch nicht "das ganze Szenario" verstehe und hier nicht klar ist ob mit object.Handle nun ein Objekt in der Blockdefinition gemeint ist, oder die Blockreferenz. Die Blockreferenz muß auf einem getauten Layer und das Objekt auf einem EINgeschalteten getauten Layer leigen und 'sichtbar' sein damit es am Bildschirm erscheint. Ist das alles schon berücksichtigt in den Überlegungen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 14. Jan. 2020 14:27 <-- editieren / zitieren --> Unities abgeben:
Die Layer sind eingeschaltet und getaut, aber es kann sein, dass mit dem _.UNISOLATEOBJECTS Befehl Blöcke verborgen sind. Ich weiß nur nicht wie ich das in VBA überprüfen kann, und dachte das man über die Eigenschaften des Blocks den Gruppencode 60 nachgucken kann. Du hast ja geschrieben das ist dasselbe wie Eigenschaft VISIBLE, aber wenn ich damit ein Objekt verberge, kann ich es mit dem .UNISOLATEOBJECTS Befehl auch nicht wieder sichtbar machen, das ist scheinbar doch etwas anderes.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Zitat: Original erstellt von woppi: das ist scheinbar doch etwas anderes.
Nein, es ist das Gleiche. Du kannst ja mal bei zwei Objekten Obj1 abfragen dann dann isolateobjects nutzen und Obj2 wählen. Jetzt fragst du die Eigenschafte "visible" von Obj1 noch mal ab.. und siehst die Änderung.
Zitat: aber wenn ich damit ein Objekt verberge, kann ich es mit dem .UNISOLATEOBJECTS Befehl auch nicht wieder sichtbar machen
Na klar, weil die Funktion hinter "isolateobjects" überhaupt nichts mit deiner Manipulation zutun hat. Unisolateobjects schaltet natürlich nur die Objekte um welche zu vor über isplateobjects unsichtbar geschaltet wurden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
>"_.UNISOLATEOBJECTS / die Eigenschaften des Blocks"Beim Thema (un)isolateobjects sind wir bei BlockREFERENZEN, nur um das mal genauer formuliert zu haben. >"den Gruppencode 60 nachgucken kann" Richtig, Gruppencode60 ist halt DXF/AutoLisp, VISIBLE wäre es in der VBA/VisualLisp/ActiveX Welt.
Mit der Systemvariable OBJECTISOLATIONMODE stellst du ein ob beim speichern [edit] die ISOLATEOBJECTS Manipulationen in der DWG gespeichert werden bleiben sollen. Falls JA erhält jedes betroffene behalten die betroffenen Objekte die erweiterte Daten der Applikation AEC_ISOLATEDOBJECTS_XDATA. [/edit]
[Diese Nachricht wurde von cadffm am 14. Jan. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 14. Jan. 2020 15:21 <-- editieren / zitieren --> Unities abgeben:
Jetzt verstehe ich. (oder hoffe es zumindest) Der Gruppencode wird erst beim speichern (als DXF) erzeugt. Ich dachte der wäre schon vorher vorhanden (den Gruppencode 8 für Layer kann ich ja auch immer verwenden). Oder ist das jetzt wieder falsch? Kann ich denn dann über die object.Handle Nummer feststellen ob der Block verborgen (bzw. Visible = False) ist, wenn er vorher mit dem Befehl "AECHIDEOBJECTS" verborgen worden ist? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Zitat: Original erstellt von woppi: Der Gruppencode wird erst beim speichern (als DXF) erzeugt.
Nein, passiert sofort [Ich habe die Antwort oben editiert und besser formuliert] Die Einstellung über das behalten oder nicht behalten steuert nur wie die Daten gespeichert werden, also sichtbar, oder nicht sichtbar. Noch immer verstehe ich nicht warum du überhaupt mit dem Handler herum hantierst, woher hast du das Handle und warum? SORRY falls ich es überlesen habe.
Und wenn du das Handle hast, dann kannst du doch auch die erweiterten Daten abfragen? Wie oben bereits geschrieben, es geht um Daten der Applikation "AEC_ISOLATEDOBJECTS_XDATA" http://help.autodesk.com/view/ACD/2020/DEU/?guid=GUID-330FCA31-A2A9-47F0-972D-6915B6B98426
[Diese Nachricht wurde von cadffm am 14. Jan. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 14. Jan. 2020 16:48 <-- editieren / zitieren --> Unities abgeben:
Das hilft mir sicher weiter. Ich benutze das object.Handle weil es um anonyme Blöcke geht (*U...) Das Programm ist eigentlich fertig, ich will mit der Abfrage (Gruppencode 60 oder "AEC_ISOLATEDOBJECTS_XDATA") nur prüfen ob der Block auch gerade nicht verborgen ist. Es werden da sehr viele Blöcke in einer Schleife durchlaufen, und ich suche jetzt so etwas wie: Ist das Opjekt.Handle sichtbar? dann ........ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 16:53 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Aus der Erklärung heraus weiß ich zwar immernoch nicht warum du das handle hast und zudem sind es noch immer blockreferenzen und keine Blöcke und dazu ist es auch noch egal wie der Name des Blockes ist. Wie auch immer, wenn es dir geholfen hat ist es ja gut Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 14. Jan. 2020 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 15. Jan. 2020 07:24 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Zitat: Original erstellt von woppi: ... weiß jemand, ob es die Möglichkeit gibt, wenn man von einem Auocadblock die object.Handle hat die Gruppencodes von dem Objekt abzufragen? ...
Hallo Ludger, ich denke, du hast da einen Knoten in deinen Gedanken. Gruppencodes sind doch nur ein Vehikel für die Ausgabe in DXF bzw die nicht objektorientiert Programmierung (Lisp). Wenn du in VBA unterwegs bist, dann musst du die vom Objekt, dem Gruppencode entsprechenden, Eigenschaft abfragen. Visibility oder IsVisible (nur eine Vermutung) Die Handle lässt sich sicher auch in VBA von einem Entity ermitteln, bzw. die ObjectId Satz ermitteln. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |