Forum:AutoCAD VBA
Thema:Gruppencode & Handle
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
woppi

Beiträge: 61 / 0

Acad Architecture 2020

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

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

"Gruppencodes" gibt es in DXF und AutoLisp, mir ist gerade nicht ganz
klar warum du darüber im VBA-Forum sprichst?

Der Gruppencode 60 entspricht der Eigenschaft VISIBLE

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

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?

woppi

Beiträge: 61 / 0

Acad Architecture 2020

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.

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

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.


cadffm

Beiträge: 19669 / 1052

System: F1
und Google

>"_.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.]

woppi

Beiträge: 61 / 0

Acad Architecture 2020

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?

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

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

woppi

Beiträge: 61 / 0

Acad Architecture 2020

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

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

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 

cadffm

Beiträge: 19669 / 1052

System: F1
und Google

Vielleicht stolpere ich ja über eine VBA-Geschichte die im DXF/Lisp einfach anders ist,
mir fällt nur nicht ein was&warum das so wäre. Kein VBA ler halt 
Brischke

Beiträge: 4137 / 36

ACAD20XX, defun-tools

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!