Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Late Binding Catia V5

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
Autor Thema:  Late Binding Catia V5 (1965 mal gelesen)
Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 16. Feb. 2010 15:44    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,

ich möchte mit Late Binding folgendes umsetzen :

Dim myObject As Object
myObject = myDelmia.GetItem("DNBFastenerItemServices")
Dim FastenerLot As DNBFastener.FastenerSet = Nothing
myObject.GetFastenersFromProcess(MySubActivitie, FastenerLot)

Das könnte so aussehen

  myDelmia = lb.Application("DELMIA.Application")
  objParam(0) = "DNBFastenerItemServices"
  myObject = lb.Methode(myDelmia, "GetItem", objParam)

  ReDim objParam(1)
  objParam(0) = MySubActivitie
  objParam(1) = ?? was muß hier statt FastenerLot stehen ??

  objResult = lb.Methode(myObject , "GetFastenersFromProcess", objParam)

Hat jemand eine Idee ??
Danke

Macropa


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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 16. Feb. 2010 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 Nur für Macropa 10 Unities + Antwort hilfreich

Hallo und Willkommen im Forum,

ich werde aus deinem Beitrag nicht schlau.

Was willst du umsetzen und was ist das Problem?

Grüsse Dominik

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 16. Feb. 2010 16:01    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 Macropa 10 Unities + Antwort hilfreich

Hallo,
soweit ich deinen Quellcode richtig verstehe, ist das Objekt "FastenerLot" noch nicht definiert worden. Dies wird aber zuvor in EarlyBinding mit:
Dim FastenerLot As DNBFastener.FastenerSet = Nothing

Ich denke, das du vorher das Objekt "FastenerLot" noch erzeugen musst und erst dann es als Parameter übergeben kannst.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 16. Feb. 2010 16:35    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 Herr Hansen,

das ist genau der Punkt!!!
Aber wie erzeuge ich in und für Late Binding das Objekt "FastenerLot" ?

Gruß Macropa

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 16. Feb. 2010 16:46    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 Macropa 10 Unities + Antwort hilfreich

Da "Dim FastenerLot As DNBFastener.FastenerSet = Nothing" eh leer gesetzt wird würde ich bei LateBinding mal folgendes probieren:
ReDim objParam(1)
objParam(0) = MySubActivitie
objParam(1) = null bzw. nothing

Wenn das nicht funktioniert dann einfach ein leeres Obejtk erzeugen:
emptyobj = null
ReDim objParam(1)
objParam(0) = MySubActivitie
objParam(1) = emptyobj

Ob es funktioniert muss man einfach mal testen.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 16. Feb. 2010 17:46    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 Herr Hansen,

danke für die schnellen Antworten. Das Problem ist aber leider so noch nicht gelöst.
Im Object 'FastenerLot' gibt DELMIA die Fastener, die der Activitie zugeordnet sind, zurück.
An diese komme ich dann so : fItem = FastenerLot.GetFastener(jj)

Das heißt im late Binding müßte im objParam(1) wirklich ein Object stehen. Es steht aber immer
nur Nothing drin und nicht : objParam(1) --> Object = Nothing.

( Ich programmiere übrigens mit VB Express 2008 )

Alle anderen Sachen wie Document, Count, Item, SelectElemt2 und 3 etc. gehen mit late Binding.

Danke Macropa


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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 16. Feb. 2010 18:09    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 Macropa 10 Unities + Antwort hilfreich

Hallo,
da ich leider kein DELMIA habe, kann ich jetzt ad hoc leider nicht mehr weiter helfen 

Vielleicht findet sich ja hier jemand, der sich mit DELMIA da besser auskennt.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 17. Feb. 2010 07: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

Hallo Herr Hansen,

trotzdem Danke. Ich glaube alledings nicht, dass dies ein CATIA/DELMIA Problem ist.
Hier geht es sicher um die Late Binding Konstruktion zum Aufruf dieser Methode.

Gruß Macropa

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 17. Feb. 2010 09:28    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 Macropa 10 Unities + Antwort hilfreich

Hallo,
ich habe leider keine Doku über Delmia und kenne auch die Strukturen nicht. Wie sieht es denn mit dem Objekt "FastenerSet" aus? Ist das überhaupt ein Objekt oder ist das eine Eigenschaft? Mir fehlt leider ein bisschen die Strukur von Delmia.
Generell ist es ja so, dass bei LateBinding jedes Objekt bzw. jede Eigenschaft explizit programmiert werden muss. Man kann nicht "2 Schritte auf einmal machen"; will sagen so etwas wie
CATIA.Documentes[2].Name = "Willi"
geht nicht!
Ich kann mir denken, dass der Haken dort zu suchen ist.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 17. Feb. 2010 11:33    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 Herr Hansen,

--------------------------------------------------------

DNBFastenerItemServices (Object)
IUnknown
  |
  +---IDispatch
    |
    +---CATBaseUnknown
      |
      +---CATBaseDispatch
        |
        +---AnyObject
          |
          +---DNBFastenerItemServices

dahin komme ich so :

    Dim myDelmia As Object = lb.Application("DELMIA.Application")
    Dim objParam(0) As Object
    objParam(0) = "DNBFastenerItemServices"
    Dim objDNBFastenerItemServices As Object = lb.Methode(myDelmia, "GetItem", objParam)

eine Methode ist dann :

    Sub GetFastenersFromProcess( CATIAActivity  iOperation, DELMIAFasteners  iFasteners)

    Gets all the DELMIAFasteners assigned to the Activity. *
   
    Example:
   
    Set myObject = CATIA.GetItem("DNBFastenerItemServices") <---- das haben wir
   
    Dim FastenerLot As FatenerSet
    myObject.GetFastenersFromProcess( MyActivity,FastenerLot)  <--- die MyActivity habe ich auch als System.__ComObject
                                                                  ( ist auch das richtige drin, habe ich geprüft )

    Im Object FastenerLot steht dann eine Collection aller Fastener, die der Activity zugeordnet sind.
    Diese Fastner wollen wir eigentlich haben.

--------------------------------------------------------------------

FastenerSet (Collection)
IUnknown
  |
  +---IDispatch
    |
    +---CATBaseUnknown
      |
      +---CATBaseDispatch
        |
        +---Collection
          |
          +---FastenerSet


hierzu gibt es dann eine Methode

    Func GetFastener( short  index) As DELMIAFastener 


Ich hoffe es ist verständlich genug.
Die komplette Hilfe ist ca 15 MB groß.


Gruß Macropa

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 17. Feb. 2010 12:13    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 Macropa 10 Unities + Antwort hilfreich

Kann es sein, dass FastenerLot ein Objekt ist, in dem das Ergebnis von GetFastenersFromProcess gespeichert wird? Versuche mal folgendes:
Dim FastenerLot
ReDim objParam(1)
objParam(0) = MySubActivitie
objParam(1) = FastenerLot
objResult = lb.Methode(myObject , "GetFastenersFromProcess", objParam)

Bei der Rückgabe bei solchen Funktionen macht zumindest CATIA V5 schon mal erhebliche Schwierigkeiten - aber einen Versuch ist es wert.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 17. Feb. 2010 16: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

Hallo Hansen,

leider besteht das Programmieren bei CATIA/DELMIA nur aus Try und Error.
Ja, FastenerLot muß ein Object sein [ FastenerLot As DNBFastener.FastenerSet ].
Setzen wir objParam(1) = FastenerLot, wie vorgeschlagen. Steht in objParam(1) = Nothing,
also kein Object. Die Frage ist, wie bekomme ich da ein leeres Object rein, was
vielleicht auch noch vom richtigen Typ ist oder vielleicht ein System.__ComObject ??

Eigentlich finde ich das late Binding nicht schlecht, denn ich könnte meine Macros
dann besser weitergeben.

Gruß Macropa

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 17. Feb. 2010 17:22    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 Macropa 10 Unities + Antwort hilfreich

Welch eine Schwergeburt :o

Die letzte Idee die ich hätte, direkt im Array ein neues Objekt zu erzeugen; also:
ReDim objParam(1)
objParam(0) = MySubActivitie
objParam(1) = new object FasterLot (bzw. der VB-Code für ein neues Objekt)
Sorry, habe zu lange kein VB mehr gemacht :lol:

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 18. Feb. 2010 09:26    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

Danke Herr Hansen !!

aber ich gebe erstmal auf.
Mit einem einfachen Object geht es auch nicht.

Gruß Macropa

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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 18. Feb. 2010 11:12    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 Macropa 10 Unities + Antwort hilfreich

Hallo,

mal eine Zwischenfrage.

Hat der Code wenigstens in einem CATvbs/CATScript-Makro funktioniert?

Grüsse Dominik

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 19. Feb. 2010 15:35    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 Macropa 10 Unities + Antwort hilfreich

Öhhhmmm, wie ich vermute habe ich es nicht ganz überissen, aber müsste es nicht

Dim FastenerLot As new DNBFastener.FastenerSet

heißen?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Macropa
Mitglied


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

Beiträge: 8
Registriert: 16.02.2010

erstellt am: 25. Feb. 2010 21:06    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

Danke der Nachfrage, aber es geht im vba und im vb ohne late Binding
sehr gut.

Gruß Macropa

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