Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  MDT2007 & ActiveX .. vlax ..

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:  MDT2007 & ActiveX .. vlax .. (1546 mal gelesen)
argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 10:03    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

Hallo Ihr Forum-Mitglieder!
Ich habe folgendes Problem:
Vorweg: Ich habe keine(!) Erfahrung mit LISP in AutoCAD, daher kann ich mein Problem nicht sehr gut erklären .. ich versuche es einmal.
Es geht um partrefs in MDT2007. Ich benutze eine LISP-Anwendung, die Objekte in AutoCAD erstellt und gleichzeitig partrefs erstellt. Im normalen AutoCAD funktioniert alles perfekt. Sobald ich versuche mittels der LISP-Anwendung in MDT2007 zu konstruieren erscheint nach jeder Konstruktion eines Objektes: AutoCAD-Meldung "Fehler ActiveX-Server hat einen Fehler zurückgegeben: Bibliothek nicht registriert. Breche ab." Ich habe versucht diesen Fehler mit der Fehlerverfolgung in VisualLISP zu verfolgen. Die letzte Funktion vor der Fehlermeldung ist "vlax-put-property". Soweit ich es verstanden habe müssen folgende Funktionen/Methoden vorher ausgeführt werden, damit die ActiveX-Angelegenheit funktioniert: vl-load-com, vlax-get-acad-object, vla-get-activedocument, vla-get-modelspace, [dann wird ein bischen definiert], vla-addcustomobject ... jetzt kommt vlax-put-property, die meiner Meinung nach den Fehler auslöst. Noch zu erwähnen ist, dass die Variable acadver (AutoCAD-Version) mit dem Wert 16 arbeitet, was ja eigentlich 17 sein müsste. Dennoch funktioniert alles in AutoCAD-pur vernünftig. acadver wird innerhalb des partref-codes nicht benutzt! Jeder Tipp ist hilfreich! Danke!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Dez. 2006 10:10    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 argh 10 Unities + Antwort hilfreich

ohne genauen Quelltext ist das alles ein bißchen wirr.Wende dich am besten an den Programmersteller. Der sollte wissen, was er geproggt  hat. Sieht aber so aus, als ob eine für AddCustomObject benötigte arx nicht geladen wurde...

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

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 10:27    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

(setq mpartref (vla-addcustomobject mSpace "AcmPartRef"))
  (vlax-put-property
    mpartref
    "Origin"

... also vla-addcustomobject wird direkt vor vlax-put-property aufgerufen. meinst du eine autocad-arx oder eine arx von meiner applikation? es existiert eine, die daten an die lisp-applikation sendet und daten von ihr empfängt ..

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Dez. 2006 10:36    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 argh 10 Unities + Antwort hilfreich

(vla-addcustomobject mSpace "AcmPartRef")) sollte ok sein .. das ist Standard-Mechanical ( sollte aber in ACAD-pur nicht funktionieren)

(vlax-put-property
    mpartref
    "Origin"
verlangt einen 3dPunkt als Variant als anschließenden Parameter? was übergibst du ?

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

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 10:56    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

      (if (not part-id)
(progn ;neues part erzeugen
  (setq mpartref (vla-addcustomobject mSpace "AcmPartRef"))
  (vlax-put-property
    mpartref
    "Origin"
    (vlax-3d-point (list 0 0 0))
  ) ;(trans partref-pos 0 1)));position leider mit z=0
;deshald das move der partref am ende !!!
  (setq symbb (vla-getinterfaceobject
acadapp
"SymBBAuto.McadSymbolBBMgr"
      ) ;_ end of vla-getinterfaceobject
  ) ;_ end of setq
;hole den kompletten datensatz zum bauteil !!!


;aus der datenbank füllen wenn vorhanden
  (if (read zusatzinfo) ;datensatz-katalog
    (progn
      (foreach ds (read zusatzinfo) ;(car datensatz-katalog)
(if (not pdata)
  (setq pdata (vlax-make-safearray
vlax-vbString
'(0 . 1)
'(0 . 1)
      ) ;_ end of vlax-make-safearray
  ) ;_ end of setq
) ;_ end of if


----------------------------------------------------------------
OK hier ein bischen mehr code ...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 11:00    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

.. also ich habe den code nicht geschrieben muss ich noch mal sagen. in AutoCAD 2007 funktioniert es vielleicht nicht und wird ignoriert, aber wie gesagt in MDT2007 bekomme ich die Meldung ..

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Dez. 2006 11:10    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 argh 10 Unities + Antwort hilfreich

die ( vom mir entsprechend ergänzten) Bruchstücke laufen bei mir im 2007-Mech ohne Probleme...

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

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 11:24    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

was meinst du jetzt genau .. ?
der code ist also OK?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Dez. 2006 11:38    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 argh 10 Unities + Antwort hilfreich

na ich hab MSPACE durch
(vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object)))

acadapp durch (vlax-get-acad-object)
und so ersetzt .. und da läuft der Code ...
erzeugt ein Partreff an '(0 0 0) und initialisiert den SymBBAuto.McadSymbolBBMgr

mehr Infos hab ich nicht von dir ... sorry .. und damit erschöpft sich an der Stelle die Hilfe.

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

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 11:51    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

naja ich sehe nur oben im code keine änderungen .. desshalb frag ich. ich probiere es mal aus mit den änderungen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 14:21    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

es klappt einfach nicht. bin step-by-step durchgegangen und nach
(vlax-put-property
    mpartref
    "Origin"
    (vlax-3d-point (list 0 0 0))
)
wird der fehler ausgegeben.
komischerweise schafft er es alle vorherigen activex-funktionen  auszuführen und dennoch kommt bibliothek nicht registriert!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 13. Dez. 2006 15:25    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

habs mir mal einfach gemacht:

folgende lisp-kommandos habe ich nacheinander in der MDT2007 Konsole
eingegeben:

(vl-load-com)
(setq mpartref (vla-addcustomobject (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object))) "AcmPartRef"))
(vlax-put-property mpartref "Origin" (vlax-3d-point (list 0 0 0)))

.. und ... es passiert genau das selbe .. irgendwie seltsam oder?!?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 14. Dez. 2006 09:36    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

... also das Problem besteht nur auf meinem Rechner .. mgl. Grund ist eine fehlerhafte Registrierung. Leider gibt es auf dem anderen Rechner, der zum Testen benutzt wird ein neues Problem!! Dort ist es möglich

(vlax-put-property mpartref "Origin" (vlax-3d-point (list 0 0 0)))

auszuführen ohne dass der ActiveX-Server sich meldet und meint, dass die "Bibliothek nicht registriert" ist! Das neue Problem: "Automatisierungsfehler" beim Schreiben von Daten an den neu hinzugefügten Partref! Meine Frage an euch an dieser Stelle ist: Was unterscheidet die Partref-Generierung und -Definition von MDT2006 und MDT2007! Warum gibt das Programm einen Automatisierungsfehler zurück, wobei doch in MDT2006 alles gut funktioniert? MfG argh..

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 15. Dez. 2006 15:39    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

okay die sache hat sich vorerst erledigt!
jetzt wird das ganze von einem vb-makro übernommen!
und wie es doch immer so ist habe ich neue schwierigkeiten:

habe einen kleinen lisp-code geschrieben, der einfach nur
die vb-datei aufruft und gleichzeitig drei parameter übergeben soll!!
die parameter sind alle strings!

ich hab mir das so gedacht:

(setq pr1 "-vbaausf ")
(setq pr2 (getenv "MYAPP")) ;der pfad meiner Applikation
(setq pr3 "\\Add-On\\") ;der Ordner mit der dvb
(setq pr4 "PartRef.dvb") ;die DVB

(setq partref_makro (strcat pr1 pr2 pr3 pr4))
 
(command partref_makro) ; ausführen

das problem ist, dass -vbaausf nach der eingabe eine eigabe für den makronamen haben möchte, ich aber das ganze sofort ausführen will!! außerdem habe ich bis jetzt noch nicht herausgefunden, wie ich die parameter übergebe. geht es mit PartRef.dvb /parameter1 /parameter2 /parameter3 ???

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 15. Dez. 2006 15:48    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

also die konsole sagt mir, dass sie den befehl nicht kennt, aber halt nur wegen dem pfad,datei-parameter

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

argh
Mitglied



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

Beiträge: 41
Registriert: 02.11.2006

erstellt am: 15. Dez. 2006 15: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

okay (vl-vbaload partref_makro) & (vl-vbarun)
lösen das problem.
wie übergebe ich jetzt die parameter, ist das überhaupt mgl.??

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