| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: (vla-put-HyperlinkDisplay... (430 mal gelesen)
|
WolfgangGutke Mitglied Konstrukteur
Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 04. Okt. 2005 09:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, wie kann man mit ActiveX den "Text" an einem Objekt bekommen, wie man es sonst mit STRG+K macht? Die Versuche (vla-put-HyperlinkDisplayCursor (setq Obj (vlax-ename->vla-object (car (entsel)))) "Test1") bzw. (vla-put-HyperlinkDisplayTooltip obj "Test2") scheitern leider. Bin für jeden Tipp dankbar! VG Wolfgang ------------------ LISP = Lots of Insane Stupid Parantheses Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 04. Okt. 2005 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangGutke
Hi Wolfgang, klar scheitert das. Du versuchst bei einem Entity eine Eigenschaft anzuwenden, die dieses gar nicht hat... Versuch mal folgendes mit einem gezeichneten Objekt:
Code:
(vlax-dump-Object (vlax-ename->vla-object (car (entsel))) 'T)
-> Code:
; IAcadBlockReference: AutoCAD Block Reference-Schnittstelle (Blockreferenz) ; Eigenschaftswerte: ; Application (RO) = #<VLA-OBJECT IAcadApplication 00b9d604> ; Document (RO) = #<VLA-OBJECT IAcadDocument 1354e8a0> ; Handle (RO) = "8DA6" ; HasAttributes (RO) = -1 ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 18a479e4> ; InsertionPoint = (104.703 1.0 0.0) ; Layer = "$PLOT$LAYOUT" ; Linetype = "ByLayer" ; LinetypeScale = 1.0 ; Lineweight = -1 ; Name = "G_AUSKFELD" ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = 2058346608 ; ObjectName (RO) = "AcDbBlockReference" ; OwnerID (RO) = 2026594056 ; PlotStyleName = "ByLayer" ; Rotation = 0.0 ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 18a42d10> ; Visible = -1 ; XScaleFactor = 1.0 ; YScaleFactor = 1.0 ; ZScaleFactor = 1.0 ; Unterstützte Methoden: ; ArrayPolar (3) ; ArrayRectangular (6) ; Copy () ; Delete () ; Explode () ; GetAttributes () ; GetBoundingBox (2) ; GetConstantAttributes () ; GetExtensionDictionary () ; GetXData (3) ; Highlight (1) ; IntersectWith (2) ; Mirror (2) ; Mirror3D (3) ; Move (2) ; Rotate (2) ; Rotate3D (3) ; ScaleEntity (2) ; SetXData (2) ; TransformBy (1) ; Update ()
Und dann guck Dir mal im Textfenster die Eigenschaften und Methoden zu dem gepickten Objekt an... Keine Spur von "HyperlinkDisplayCursor". Diese Eigenschaft findet sich ausschließlich am Objekt "PreferencesUser" und das heißt es manipuliert die Voreinstellungen auf dem Register "Benutzereinstellungen" im Dialog "Optionen"... Was vlax-dump-object aber anzeigt ist z.B.:
Code:
; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 18a479e4>
Wenn man dann in die AutoCAD Entwicklerdefinition guckt und sich ein wenig umsieht stößt man auf das "Hyperlinks Example". Hier ist exakt beschrieben wie Du Hyperlinks an Entities pappst...
------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangGutke Mitglied Konstrukteur
Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 04. Okt. 2005 14:01 <-- editieren / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 04. Okt. 2005 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangGutke
Stichwort "NIcht-Lisp-Hilfe", wenn Du irgendwas mit AX machen willst, empfiehlt sich zuerst immer der Blick unter: AutoCAD Entwicklerdokumentation > ActiveX and VBA Reference > Object Model Da kriegst Du eine bildhafte Darstellung des AX Object Models präsentiert in der Du Dir das zu manipulierende Objekt raussuchen und direkt dort anklicken kannst um herauszufinden welche Methoden und Eigenschaften anwendbar sind. Darüberhinaus empfiehlt sich der ausgiebige Einsatz der Funktion vlax-dump-object und der "Prüfen" Funktion der VLisp-Entwicklungsumgebung... Schreib' mal ein:
Code:
(vlax-ename->vla-object (car (entsel)))
in ein neues Fenster der VL-IDE, markiere das mit dem Cursor (doppelklick vor die erste Klammer oder hinter die letzte!) und benutze das "Mikroskop" (Prüfen) in der Toolbar... In dem erscheinenden Fenster werden alle Properties mit den aktuellen Werten des gepickten Objekts angezeigt. Darüberhinaus kann man via Doppelklick auf die Properties im Object Model "rumbrowsen"... Ist 'ne nette Funktion!------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangGutke Mitglied Konstrukteur
Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 04. Okt. 2005 14:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Marc, vielen Dank. Den VL-IDE und die Prüffunktionen verwende ich gerne und oft. Was ich mir wohl nur noch genauer anschauen sollte ist: AutoCAD Entwicklerdokumentation > ActiveX and VBA Reference > Object Model -- kann bestimmt einiges klären. Kennst du eventuell eine andere Maus-auf-ein-Objekt-schieben-und-Info-bekommen Funktion? Der Hyperlink ist zwar sehr schön, doch sehr einzeilig! VG Wolfgang ------------------ LISP = Lots of Insane Stupid Parantheses [Diese Nachricht wurde von WolfgangGutke am 04. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 04. Okt. 2005 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangGutke
|