Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Geometricalset einfügen (.net)

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:  Geometricalset einfügen (.net) (1697 mal gelesen)
Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 01. Aug. 2006 12:11    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 in ein eingefügtes Part Geometrical Sets einfügen.Nur weiss ich nicht wie ich das oAdapterpart deklarieren muss damit ich mein Set einfügen kann.Kann mir da jemand weiterhelfen??

Dim oRoot As Products = CATIA.ActiveDocument.Product.Products
        Dim oDesign As Product = oRoot.Item(2)
        Dim oSpanngruppe As Product = oDesign.Products.AddNewComponent("Product", TextBox3.Text)
        Dim oAdapterpart As Product = oSpanngruppe.Products.AddNewComponent("Part","Adapterpart"&Mid(TextBox3.Text,12,3))

Gruß Andi

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 01. Aug. 2006 13: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

Egal eas ich mache ich komm einfach nicht an das eingefügte Part.
Bekomm meistens die Fehlermeldung

Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "MECMOD.Part" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der II...................

Ich möchte einfach in das eingefügte Part Geosets einfügen.

Gruß Andi

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 01. Aug. 2006 14:11    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 Augustiner 10 Unities + Antwort hilfreich

Dieser Code erzeugt ein neues Part, fügt es in die aktive Baugruppe ein und erzeugt ein GeometricalSet im Part.

Suchst Du etwas in dieser Art?

Code:

Sub CATMain()

Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument

Dim myPartDoc As PartDocument
Set myPartDoc = CATIA.Documents.Add("Part")


Dim product1 As Product
Set product1 = productDocument1.Product

Dim products1 As Products
Set products1 = product1.Products

Dim myProd As Product
Set myProd = myPartDoc.Product

products1.AddComponent myProd.ReferenceProduct


Dim myPart As Part
Set myPart = myPartDoc.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = myPart.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()

myPart.Update

myPartDoc.Close

End Sub



------------------
--
Danny Reinhold
Reinhold Software Services

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 01. Aug. 2006 15:02    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 habe bereits eine Vorhandene Struktur die so aussieht

Product
+Product
+Product(oDesign) => hier soll ein ein neues Product eingefügt     
I+Product            werden und darin dann ein neues Part mit Geosets.
I+Product

Das funktioniert mit meinem code einwandfrei.Nur weiss ich nicht wie ich das eingefügte Part deklarieren muss um meine Geosets einfügen zu können?

        Dim oRoot As Products = CATIA.ActiveDocument.Product.Products
        Dim oDesign As Product = oRoot.Item(2)
        Dim oSpanngruppe As Product = oDesign.Products.AddNewComponent("Product", TextBox3.Text)
        Dim oAdapterpart As Product = oSpanngruppe.Products.AddNewComponent("Part","Adapterpart"&Mid(TextBox3.Text,12,3))

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 01. Aug. 2006 15:17    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 Augustiner 10 Unities + Antwort hilfreich

Um ein GeometricalSet einzufügen brauchst Du ein Objekt vom Type "Part".
Product.AddNewComponent(...) liefert ein "Product" Objekt (egal, ob Du ein Product oder ein Part erzeugst).

Der einfachste Weg, den ich gefunden habe, war halt, das Part explizit zu erzeugen (dann bekomme ich über das PartDocument leicht das Part Objekt und kann darin ein GeometricalSet erzeugen) und dann in das Product einzufügen.

Aber vermutlich gibt es einen einfacheren Weg, wenn man direkt vom "Product" zum "Part" kommt - habe allerdings keinen gefunden (abgesehen vom abklappern der CATIA.Documents List, was aber recht langsam sein kann)...

Darum der etwas andere Weg in meinem Code...

------------------
--
Danny Reinhold
Reinhold Software Services

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 01. Aug. 2006 21: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 Nur für Augustiner 10 Unities + Antwort hilfreich

Hallo Augustiner,

aus dem Stehgreif sage ich mal, es sollte so heißen:

Code:
Dim oAdapterProduct As Product = oSpanngruppe.Products.AddNewComponent("Part","Adapterpart"&Mid(TextBox3.Text,12,3))
Dim oAdapterPart As Part = oAdapterProduct.ReferenceProduct.Parent.Part
Kann es leider im Moment nicht prüfen, aber das ".ReferenceProduct.Parent" sollte das PartDocument sein und das enthält ja den Knoten Part. Eventuell kannst Du aber auch schon mit dem ".ReferenceProduct" weiterarbeiten, mußt es dann aber wahrscheinlich als "Product" deklarieren.


mfg,
Lusilnie

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

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 02. Aug. 2006 07:40    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

Guten morgen

mit

Dim oAdapterPart As Part = oAdapterProduct.ReferenceProduct.Parent.Part

Dim oSet As HybridBody = oAdapterPart.HybridBodies.Add

funktioniert es nicht,dann kommt folgende Meldung

Die Methode oder der Vorgang sind nicht implementiert.
-------------------------------------------------------------
Wenn ich es mit...

Dim oAdapterPart As Product = oAdapterProduct.ReferenceProduct

Dim oSet As HybridBody = oAdapterPart.HybridBodies.Add

..versuche kommt die Meldung:

Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "MECMOD.Part" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der II...................

So langsam weiss ich nicht mehr weiter   

[Diese Nachricht wurde von Augustiner am 02. Aug. 2006 editiert.]

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 02. Aug. 2006 07:58    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

In Catscript funktionierts mit folgendem Code.Der ja in etwa dem .net Code entspricht

Zitat:
Sub CATMain()

Dim Schrift as String
Schrift = Inputbox("Test1","Test2","Spanngruppe 11_12")

Dim oRoot As Products
Set oRoot =  CATIA.ActiveDocument.Product.Products

Dim oDesign As Product
Set oDesign = oRoot.Item(2)

Dim oSpanngruppe As Product
Set oSpanngruppe = oDesign.Products.AddNewComponent ("Product", Schrift)

Dim oAdapterProduct as Product
Set oAdapterProduct = oSpanngruppe.Products.AddNewComponent ("Part", "Adapterpart" & Mid(Schrift, 12, 3))

Dim oAdapterpart as Part
Set oAdapterpart = oAdapterproduct.ReferenceProduct.Parent.Part

Dim oSet as Hybridbody
Set oSet = oAdapterpart.Hybridbodies.add


End Sub


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

CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 02. Aug. 2006 09: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 Nur für Augustiner 10 Unities + Antwort hilfreich

Hallo Augustiner,

mit VB2005 funktioniert das nicht auf "einen Streich".

Du mußt die Zuweisung zum Part aufteilen:
Dim oAdapterPartDoc As PartDocument = oAdapterProduct.ReferenceProduct.Parent
Dim oAdapterPart As Part = oAdapterPartDoc.Part

Gruß
CAMiCADse

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 02. Aug. 2006 10: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

Super jetzt hatts funktioniert, Vielen Dank CamiCadse!!!!! 

Kannst Du mir vielleicht noch erklären warum das so ist??

Gruß Andi

[Diese Nachricht wurde von Augustiner am 02. Aug. 2006 editiert.]

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

CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 02. Aug. 2006 10: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 Nur für Augustiner 10 Unities + Antwort hilfreich

Nee, kann ich nicht

Ich kann nur vermuten:
Grundsätzlich läuft ohne richtig deklarierte Typen sowieso nichts. Da laufen teilweise die Sachen genau anders herum als in VBA. z.B. bei der Selection: In VBA darf sie nicht als Selection deklariert sein, in VB2005 muß sie als Selection deklariert sein. Nur dann erkennt VB auch die Methoden (sonst Error: "Die Methode oder der Vorgang sind nicht implementiert")
Nach parent ist der Object-Typ nicht mehr eindeutig. Folgendes geht auch nicht:

Code:
MsgBox (MyPart.Parent.Parent.Name)

Würde dass auch gerne anders haben

Kleiner Trost: Intellisense scheint richtig zu funktionieren. Wenn nach einer Methode nichts mehr angezeigt wird, geht auch nichts

Gruß
CAMiCADse

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 02. Aug. 2006 11: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 Augustiner 10 Unities + Antwort hilfreich

Das liegt vermutlich daran, dass "Parent" ein "AnyObject" zurückliefert.

Damit das System weiss, dass Du dieses Object als "PartDocument" behandeln möchtest, musst Du es ihm mitteilen.
Und das macht man in VB.NET eben, indem man das Objekt einer
Variable des entsprechenden Typs zuweist (entspricht grob einem
Type-Cast in anderen Programmiersprachen).

Aber gesehen habe ich den Weg auch nicht.
Besten Dank für den Hinweis!

------------------
--
Danny Reinhold
Reinhold Software Services

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