Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SAFEARRAY

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:  SAFEARRAY (959 mal gelesen)
Tellerwaescher
Mitglied


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

Beiträge: 3
Registriert: 07.07.2003

erstellt am: 07. Jul. 2003 18: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

Hallo zusammen !

Hat jemand von euch schon Erfahrung mit der Programmierung der COM-Schnittstelle zu CATIA über Visual C++ ?

Ich habe immer wieder Probleme mit dem Datentyp CATSAFEVARIANT.

Dank jetzt schon für alle Antworten.

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 08. Sep. 2006 14: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 Tellerwaescher 10 Unities + Antwort hilfreich

Hallo zusammen,

ich arbeite mit Visual Basic 2005 und habe auch damit Probleme. Ich finde nämlich keine *.tlb, wo die Type CatSafeVariant deklariert ist. Ich möchte damit Koordinaten aus einem Punkt lesen:

Dim a as CatSafeVariant
...
point.getcoordinates(a)
....

Der Editor meckert sofort, dass der Typ CatSafeVariant nicht bekannt ist, obwohl ich alle *.tlb's eingebunden habe.

Hat jemand eine Idee?
Klar, ich könnte zur Not über die Measurable gehen, ist aber umständlich und dauert bestimmt länger...

------------------
Bernd

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

okl
Mitglied
Wirtsch-Ing (Maschbau)


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

Beiträge: 157
Registriert: 21.04.2006

2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005
Adminrechte

erstellt am: 08. Sep. 2006 15: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 Nur für Tellerwaescher 10 Unities + Antwort hilfreich

Hallo Bernd,

meines Erachtens müsste es vollkommen ausreichen, wenn Du ein Array vom Typ Variant deklarierst und das an die Funktion GetPosition oder GetComponents übergibst. Bei mir ging es einmal um die Position von Produkten und ich habe es so gelöst (Obj ist der betreffende Produktknoten):

Code:
Dim posArr(11) as Variant
Obj.Position.GetComponents(posArr)

11 Einträge = 12er-Matrix für die Position bei Bauteilen. Für Punkte habe ich das auch schon einmal gemacht, finde das Makro auf die Schnelle nur nicht.
Grüße, okl

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 08. Sep. 2006 16: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 Tellerwaescher 10 Unities + Antwort hilfreich


variant.jpg

 
Hallo okl,
vielen Dank für die schnelle Reaktion, habe ich sofort probiert. Allerdings gibt es bei mir nur den Typ VariantType. Leider bekomme ich immer noch die angehängte Fehlermeldung, dass der Typ nicht stimmt. Hier ein Ausschnitt aus dem Listing.

....
Dim hybridShapeDirection1, hybridShapeDirection2 As HybridShapeDirection
Dim p1, p2, p3 As HybridShapePointOnSurface
Dim reference1, reference2 As Reference
Dim p1xyz(2), p2xyz(2) As VariantType
......

hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(1, 0, 0)
reference1 = MyPart.CreateReferenceFromObject(face)
p1 = hybridShapeFactory1.AddNewPointOnSurface(reference1, hybridShapeDirection1, 0)
hybridBody1.AppendHybridShape(p1)
p2 = hybridShapeFactory1.AddNewPointOnSurface(reference1, hybridShapeDirection1, 1)
hybridBody1.AppendHybridShape(p2)

p1.GetCoordinates(p1xyz)
p2.GetCoordinates(p2xyz)

.....

Er scheint unbedingt den Type CatVariant (so steht es in der Api Doku) oder CatSafeVariant (so sieht man es machmal in den Listings von anderen Beiträgen) haben.

Das muss doch irgendwie gehen. Haben andere den diesen Typ zur Verfügung? Wenn ja, in welchen TLB's?
Ich verwende V5R14SP9.

Grüße

------------------
Bernd

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

okl
Mitglied
Wirtsch-Ing (Maschbau)


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

Beiträge: 157
Registriert: 21.04.2006

2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005
Adminrechte

erstellt am: 08. Sep. 2006 16: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 Tellerwaescher 10 Unities + Antwort hilfreich

Hm, werde jetzt nicht mehr dazu kommen, schau am WE aber mal in meine alten archivierten Dateien. Vl. finde ich etwas. Trotzdem komisch. Du sagst zwar, dass Du alle Komponenten angezogen hast, ist Dir vl. doch eine durch die Lappen gegangen?
Hab gerade kein VS zur Hand und sehe, wie Du die Vars deklarierst. Zieh mal p1xyz in dein Überwachungsfenster und schau Dir mal den Dateitypen an. Vermute, dass da schon ein Problem vorliegt
okl

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 08. Sep. 2006 17:37    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 Tellerwaescher 10 Unities + Antwort hilfreich


variant2.JPG

 
Hallo okl,

klasse, dass Du mich nicht aufgibst. Ich habe Deinen Rat befolgt und die Überwachung mitlaufen lassen. Das Ergebnis siehst Du im Anhang. Sieht eigentlich normal aus, bis auf die Fehlermeldung. Bist Du sicher, dass man "CatVariant" durch "VariantType" ersetzen kann?

Das ist bestimmt etwas ganz einfaches, was ich falsch mache, aber ich komme nicht drauf.

Da muss es doch noch mehr Anwender geben, die diesen Typ verwenden, oder? Ist doch die einzige Methode um an Koordinaten ranzukommen. Ich bin für jeden Tipp dankbar....


Grüße

------------------
Bernd

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 08. Sep. 2006 22:05    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 Tellerwaescher 10 Unities + Antwort hilfreich

Hallo zusammen,

tja die Lösung ist denkbar einfach, wie ich mir das schon gedacht hatte. Der Typ "Variant" wurde durch den Typ "Object" ersetzt. Habe ich irgendwo in der Hilfe zu Visual Basic 2005 gefunden.
also:

Dim p1xyz(2), p2xyz(2) as Object

.... und alles läuft.

Vielen Dank für die Unterstützung.     

------------------
Bernd

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