| |
| KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
|
Autor
|
Thema: AddNewProduct erzeugt Component (3211 mal gelesen)
|
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 26. Apr. 2010 16:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, bin ich der einzige bei dem die Funktion "AddNewProduct" anstelle eines neuen Productes eine neue Componente anlegt? Code: Dim Doc As Document Set Doc = CATIA.ActiveDocument Dim RootProd As Product Set RootProd = Doc.Product Dim RootProds As Products Set RootProds = RootProd.Products 'Add a new product to the collection. This adds both a product reference and a product component. Dim NewProd As Product Set NewProd = RootProds.AddNewComponent("TEST") 'Declare the part number and name for this product. NewProd.PartNumber = "TEST" NewProd.Name = "TEST"
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 26. Apr. 2010 17:21 <-- editieren / zitieren --> Unities abgeben:
Ich habe festgestellt, dass dies anscheinend normal ist.... Um ein Product hinzuzufügen muss die Funktion "AddNewComponent" verwendet werden .... Code: [...] Dim NewProd As Product Set NewProd = RootProds.AddNewComponent("CATProduct", "123") [...]
[Diese Nachricht wurde von Bernod am 26. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proofin Mitglied Dpl.Ing
Beiträge: 208 Registriert: 24.11.2004
|
erstellt am: 26. Apr. 2010 17:27 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Moin Bernod, es gibt 2 Möglichkeiten: entweder du verwendest AddNewProduct -> Set NewProd = RootProds.AddNewProduct ("TEST") dann gibst du nur den Namen an oder du verwendest AddNewComponent -> Set NewProd = RootProds.AddNewComponent("Product", "TEST") dann mußt du den Type für dein Dokument angeben. Gruß Proofin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 26. Apr. 2010 17:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Proofin, ich sehe gerade ich hatte in meinem ersten Post den falschen Code angegeben. Ich habe soo viel rumprobiert, dass ich versehentlich das falsche gepostet habe. das sollte oben eigentlich ---- Set NewProd = RootProds.AddNewProduct ("TEST") ---- bedeuten. Sonst würde mein Beitrag ja auch keinen sinn ergeben. Aber auch das habe ich proibiert, dabei wird bei mir nur eine Componente erzeugt. Wo wir gerade dabei sind .. Ich wollte mein Makro noch ein wenig erweitern und mit folgenden Zeilen eine existierende Datei laden:
Code: [...] Dim NewProd As Product Set NewProd = RootProds.AddNewComponent("CATProduct", "123") Dim NewProds As Products Set NewProds = NewProd.Products Dim Liste(0) As Variant Liste(0) = "C:\TEMP_MAKRO\HAS_TEST005.CATPart" NewProd.AddComponentFromFile Liste, "CATPart" ' <-- Hier der Fehler ?
Wenn ich dies so anwende, dann erhalte ich in der letzten Zeile eine Fehlermeldung: ---- Runtime error '438': Object doesn't support this porperty or method ----Kann ich die Funktion "AddComponentFromFile" unter vba nicht nutzen? Gruß, Bernod Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Apr. 2010 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
|
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 27. Apr. 2010 12:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, und wieder ein mal habe ich mich bei euch zu bedanken. Vielen Dank! Hier ist mein vollständiger funktionierender code zum Einfügen eines neuen Products und zum anschließenden Einfügen eines existierenden Parts in dieses Product:
Code: Dim Doc As Document Set Doc = CATIA.ActiveDocument Dim RootProd As Product Set RootProd = Doc.Product Dim RootProds As Products Set RootProds = RootProd.Products 'Add a new product to the collection. This adds both a product reference and a product component. Dim Newprod As Product Set Newprod = RootProds.AddNewComponent("CATProduct", "123") 'Declare the part number and name for this product. Newprod.PartNumber = "001_Prod_1" Newprod.Name = "001_Prod_1" 'Einfügen einer existierenden Datei in das neu angelegte Product '***DEKLARATIONEN Dim intRootProdDocObj As Object 'ProductDocument Dim intIGESList(0) '***DATEINAMEN ÜBERGEBEN intIGESList(0) = "C:\TEMP_MAKRO\TEST001.CATPart" '***INSTANZIERUNHG Set intRootProdDocObj = Newprod intRootProdDocObj.Products.AddComponentsFromFiles intIGESList, "CATPart"
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 28. Mai. 2020 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Hallo. Ist es möglich gleich mehrere im Explorer ausgewählte CatParts in in Product zu laden zb. 1.Macro Starten 2.CATIA.FileSelectionBox öffnen und zb. 4 Stp Datein auswählen 3.ins Product einfügen mfg
------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Mai. 2020 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Servus BLD Sollte so gehen: Dateien auswählen (ggf per FileSystemObject?) und per AddComponentsFromFiles in die Baugruppe einfügen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 28. Mai. 2020 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Hallo. Hast du ein Bsp wie ich dieses FileSystemObject anwenden kann. Mit CATIA.FileSelectionBox lässt mich Catia nur eine Datei auswählen.? mfg ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HP-Variant Mitglied Konstrukteur
Beiträge: 7 Registriert: 15.06.2020
|
erstellt am: 15. Jun. 2020 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Hallo Zusammen, der Beitrag war bisher sehr hilfreich für mich. Jedoch habe ich das Problem, dass untenstehender Code immer zum Fehler führt: Compile error: Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic Das lustige daran ist, wenn ich den Befehl aus meinem Buch "CATIA V5 Makroprogrammierung mit Visual Basic Script" (.pdf) kopiere funktioniert er... danach füge ich einen Absatz ein und er funktioniert nicht mehr...
Kann sich darauf jemand einen Reim machen? Besten Dank schon mal :-) Code: Option Explicit Sub CATMain() Dim P As Product Set P = CATIA.ActiveDocument.Product Dim PP As Products Set PP = P.Products Dim Liste(0) As Variant Liste(0) = "C:\Test" PP.AddComponentsFromFiles Liste(0), "CATPart" End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 15. Jun. 2020 09:30 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Hallo. versuchs mal mit: Liste(0) = "C:\Test.CATPart" ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. [Diese Nachricht wurde von BLD1983 am 15. Jun. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HP-Variant Mitglied Konstrukteur
Beiträge: 7 Registriert: 15.06.2020
|
erstellt am: 15. Jun. 2020 10:10 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
Besten Dank für deine schnelle Antwort "BLD1983"! :-) Bin dem Problem auf die Schliche gekommen. Der Befehl "AddComponentsFromFiles" hat scheinbar ein Problem mit deklaration. Unten stehender Code funktioniert. Kann das sein das Befehle Probleme mit Deklaration haben oder liegt der Fehler eher bei mir? -----------------------Code-------------------------------- Option Explicit Sub Test() Dim Liste(0) Liste(0) = "N:\01_Startmodell\2000_STARTMODELL\0X0_800_077____G01_TMG_000_000_BAUTEILBEZEICHNUNG_AUXXX_X_XX_EV-00-000.CATPart" CATIA.ActiveDocument.Product.Products.AddComponentsFromFiles Liste, "CATPart"
End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |