| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Aus ObjectID (VBA/VL) den ObjectNamen eines Elementes ermitteln (1411 mal gelesen)
|
steinemann09 Mitglied Dipl. Ing.
Beiträge: 47 Registriert: 27.08.2008 AutoCAD 2005, AutoCAD 2009, Windows XP
|
erstellt am: 30. Mrz. 2009 15:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, obwohl ich aus der Lisp-Ecke komme, habe ich in VB ein Formular programmiert und muß aber auf ein Lisp-Programm von dort aus zugreifen. Ich übergebe dabei die ObjectID des Elementes an LISP. Um in gewohnter Weise mit den ssget/entget - Befehlen arbeiten zu können, benötige ich aber den Object-Namen des Elementes. Umgekehrt von Objektnamen zur ObjektId habe ich einen Weg. Bsp. (setq hElement (car (entsel "Wählen Sie bitte eine Polyline aus"))) (setq hObjektID (vla-get-objectid (vlax-ename->vla-object hElement) ) Kann mir jemand bitte ein Besipiel geben, wie man aus der ObjectID den Objektnamen eines Elementes bestimmt oder wie sich eine ObjectId in eine entget -Funktion einbinden lässt. Vielleicht ist es sehr simpel, leider bin ich mit der try and error Methode nicht weiter gekommen. Gruß Volker
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Mrz. 2009 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für steinemann09
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Mrz. 2009 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für steinemann09
Was willste denn mit der ObjektID und ner entget-Funktion ? (setq OBJ (car (entsel "Wählen Sie bitte eine Polyline aus"))) (entget OBJ) ist doch ausreichend ? ansonsten (setq OBJ (car (entsel "Wählen Sie bitte eine Polyline aus"))) (setq VLAOBJ(vlax-ename->vla-object OBJ)) (setq ObjektID (vla-get-objectid VLAOBJ)) (setq DOC(vla-get-document VLAOBJ)) (setq OBJ2(vla-ObjectIDToObject DOC OBJEKTID)) (setq OBJ3(vlax-vla-object->ename OBJ2)) (entget OBJ3) ------------------ - 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 |
steinemann09 Mitglied Dipl. Ing.
Beiträge: 47 Registriert: 27.08.2008 AutoCAD 2005, AutoCAD 2009, Windows XP
|
erstellt am: 31. Mrz. 2009 06:57 <-- editieren / zitieren --> Unities abgeben:
|
steinemann09 Mitglied Dipl. Ing.
Beiträge: 47 Registriert: 27.08.2008 AutoCAD 2005, AutoCAD 2009, Windows XP
|
erstellt am: 31. Mrz. 2009 07:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, vielen Dank für die Beipiele der Active-X -Programmierung. Konnte alles nachvollziehen und funktioniert. Der Hintergrund, warum ich diese Funktionen benötige ist der, dass es mir in VBA nicht gelingt bzw. nicht möglich sein soll, aus dem Schriftfeld eines Attributwertes, dass assoziativ mit einer Polylinie verknüpft ist, die entprechende Polylinie zu ermitteln. Im VBA - Forum habe ich das Problem mit Bsp. genauer beschrieben: (Über das Schriftfeld eines Attributwertes die damit verknüpfte Polylinie ermitteln) Gruß Volker
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
steinemann09 Mitglied Dipl. Ing.
Beiträge: 47 Registriert: 27.08.2008 AutoCAD 2005, AutoCAD 2009, Windows XP
|
erstellt am: 02. Apr. 2009 17:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, entschuldige bitte, möcht aber nochmal zu dem Problem nachhaken. Ist es denn auch möglich, nur von der ObjectID ohne das Objekt den Objektnamen zu ermitteln. Ich kann das Objekt wahrscheinlich nicht ohne weiters von VBA nach Lisp übergeben, sondern nur die Object-Id. In Deinem Bsp. erhlalte ich die Variable DOC ja nur über die entsel-Abfrage in Lisp. Das Objekt wird aber bei mir ja in VBA ausgewählt und nicht in Lisp. Danke für Deinen Mühe, Gruß Volker Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Apr. 2009 18:06 <-- editieren / zitieren --> Unities abgeben: Nur für steinemann09
(setq DOC(vla-get-activedocument(vlax-get-acad-object))) (setq OBJ2(vla-ObjectIDToObject DOC OBJEKTID)) (setq OBJ3(vlax-vla-object->ename OBJ2)) (entget OBJ3) geht natürlich auch ------------------ - 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 |