| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: ActiveX results by ref? (795 mal gelesen)
|
slowCad Mitglied
 Beiträge: 2 Registriert: 16.06.2007
|
erstellt am: 16. Jun. 2007 14:34 <-- editieren / zitieren --> Unities abgeben:         
Hi, arbeite mich gerade in Vlax ein auf MDT 2007. Vielleicht zuerst meinTest:
Code: (defun t1 (/) (vl-load-com) (setq aobj (vlax-get-acad-object)) (setq gobj (vla-getinterfaceobject aobj "ge.Application.2")) (setq mobj (vla-getinterfaceobject aobj "Mcad.Application.3")) (setq activeDoc (vla-get-activedocument mobj)) (setq util (vla-get-utility activedoc)) (setq pick (vlax-invoke-method util 'Pick "select first curve" 0 nil nil nil nil nil nil ) ) (setq curve1 (vlax-invoke-method util 'GetGeometryFromPick 0 -1 pick nil) ) (setq pick (vlax-invoke-method util 'Pick "select second curve" 0 nil nil nil nil nil nil ) ) (setq curve2 (vlax-invoke-method util 'GetGeometryFromPick 0 -1 pick nil) ) (setq gecrv1 (vlax-get-property curve1 'Geometry)) (setq gecrv2 (vlax-get-property curve2 'Geometry)) (setq intsec (vlax-invoke-method gecrv1 'IntersectWithCurve gecrv2 nil nil nil) ) ;;; (vlax-invoke-method ;;; intsec 'getallintersections intpts nil nil) (vlax-dump-object intsec T) )
1. intsec dump resultiert in: "Object does not support ITypeInfo" und jeder Versuch eine Methode oder Eigenschaft anzusprechen mißlingt: "ActiveX Server returned an error: Bibliothek nicht gefunden" 2. die Methode GetAllIntersectionPoints verlangt in VBA einen Parameter byRef ! Wie geht denn das in VL ? Vielen Dank für hilfreiche Hinweise Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer

 Beiträge: 9808 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 17. Jun. 2007 10:30 <-- editieren / zitieren --> Unities abgeben:          Nur für slowCad
1. Wenn es nicht unbedingt die Methode IntersecWithCurve (aus Mechanical) sein muss (ob die optionalen Toleranz-Parameter da evt. doch nicht so optional sind), sondern auch intersectWith (aus AutoCAD) sein kann, dann würde ich hier mal nachlesen, da ist die Funktion schon fertig implementiert. http://www.visuallisp-tutorial.mapcar.net/intersect.html 2. Um Variablen als Referenz an eine Funktion zu übergeben (Inhalt der Variablen wird in der Funktion geändert), muss man lediglich den Variablennamen als Symbol übergeben. ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slowCad Mitglied
 Beiträge: 2 Registriert: 16.06.2007
|
erstellt am: 17. Jun. 2007 10:57 <-- editieren / zitieren --> Unities abgeben:         
Hi, vielen Dank für die Antwort. zu 1. ja ich kenne die Lösung von mapcar , funktioniert prima nach Änderung des Funktionnnamens, denn intersect gibt es auch in MDT 2007 als command. zu 1. ich möchte gerne den vollen Umfang der "ge.application" über vlax benutzen zu 2. so einfach !! :-o werde weiter tüfteln! mfg slowCad Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |