Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  ActiveX results by ref?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  ActiveX results by ref? (777 mal gelesen)
slowCad
Mitglied


Sehen Sie sich das Profil von slowCad an!   Senden Sie eine Private Message an slowCad  Schreiben Sie einen Gästebucheintrag für slowCad

Beiträge: 2
Registriert: 16.06.2007

erstellt am: 16. Jun. 2007 14:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

arbeite mich gerade in Vlax ein auf MDTMechanical Desktop 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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 17. Jun. 2007 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für slowCad 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von slowCad an!   Senden Sie eine Private Message an slowCad  Schreiben Sie einen Gästebucheintrag für slowCad

Beiträge: 2
Registriert: 16.06.2007

erstellt am: 17. Jun. 2007 10:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 MDTMechanical Desktop 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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz