|
CATIA V5 Programmierung : CATIA selection
MrAnnonymos4 am 07.12.2015 um 11:14 Uhr (1)
Hallo liebes Forum,ich habe vor kurzem begonnen die Wirtschaftsinformatik Dual ( 3 Monate Uni, 3 Monate Unternehmen) zu studieren. Meine erste richtige Aufgabe ist es nun, ein CATIA Macro zu programmieren, wobei ich seit 3 Tagen immer mit dem gleichen Problemen zu kämpfen habe - deswegen dieser Beitrag.Das Macro soll aus einer relativ grossen Baugruppe alle Parts kopieren, die aus einem bestimmten Material "ABC" besteht. Wenn ich "von Hand" eine Suche mit dem Parameter: Code:Name in Graph="*ABC*,all"starte ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : CATIA selection
Randle am 07.12.2015 um 12:16 Uhr (1)
Hallo,also von Hand durchgeführt und mit dem Makrorekorder aufgenommen, kommt folgendes bei raus:Language="VBSCRIPT"Sub CATMain()Dim partDocument1 As DocumentSet partDocument1 = CATIA.ActiveDocumentDim selection1 As SelectionSet selection1 = partDocument1.Selectionselection1.Search "CATProductSearch.MatMaterialType.Name=*16Mn*,all"End SubDaran denken das die Suche Sprachabhängig ist.GrußRandle[Diese Nachricht wurde von Randle am 07. Dez. 2015 editiert.]
|
In das Form CATIA V5 Programmierung wechseln |
 |
CATIA V5 Programmierung : CATIA selection
MrAnnonymos4 am 07.12.2015 um 13:07 Uhr (1)
Danke für die Antwort.Mit dem Recorder habe ich auch schon rumprobiert, allerdings hat er mir nicht helfen können, weil er zum kopieren einfach direkt die Namen der gefundenen Parts verwendet hat, und sie sich nicht irgendwie aus der Selection nachvollziehbar rausgesuchte.Wenn ich deinen Code benutze, dann habe ich ein ähnliches Ergebnis wie zuvor. Mit Copy/Paste wird aus 39 entsprechenden Parts das kopiert, was ich hier als Foto angehängt habe.Was mache ich noch falsch ? Grüsse,MrAnnonymos4
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : CATIA selection
joehz am 07.12.2015 um 13:46 Uhr (1)
mehr hast ja auch nicht ausgewählt.Du müsstest nach der Auswahl von jedem selektierten Item(Material) das dazugehörige Part/Product kopieren.Mit osel.Item2(n).LeafProduct.Name o.ä. kommst an die Instanz ran. Hierbei steht osel für die Selektion und n für den Index innerhalb der Selektion. Kleine Gemeinheit dabei: Du musst die erste Selektion zwischenbunkern, etwa in einem Array.Danach über die Array-Elemente einzeln die Parts rausfinden und zu einer neuen Selektion addieren.Dann kopieren u pasten.Tschau,Jo ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : CATIA selection
Randle am 07.12.2015 um 13:49 Uhr (1)
Hallo,Also die vom Makrorekorder genutzten Namen müsstest du dann natürlich noch "neutralisieren", es ging mir hier eher erst mal um das generelle Vorgehen.Zum Kopieren der Parts müsstest du das Suchergebnis (enthält ja nur Materialeinträge) innerhalb des Makros noch mal einzeln durchgehen und das jeweilige Elternobjekt (das Part) des Materialparameters zwischenspeichern (z.B. in einer Collection).Abschließend dann das Suchergebnis leeren (selection.clear) und die Objekte aus der Zwischenspeicherung der Se ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : CATIA selection
MrAnnonymos4 am 08.12.2015 um 15:05 Uhr (14)
Vielen Dank, Ihr habt mir weitergeholfen.Ich habe jetzt alle Parts in einer Liste abgelegt und versuche sie erneut zur Selection hinzuzufügen.Viele Grüsse,MrAnnonymos4
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parts eines Products schnell auslesen!
cscp am 08.12.2015 um 17:20 Uhr (1)
Hi,per VB lese ich alle Parts eines Products aus (inkl. zugehöriger Daten wie Name, Masse, Schwerpunkt, ...).For i = 1 To CATIA.ActiveDocument.Product.Products.Count...Dim InstanzenName = CATIA.ActiveDocument.Product.Products.Item(i).Name...NextDas dauert allerdings so relativ lange... Gibt es eine schnellere Lösung dafür?Danke im Voraus
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro 32/64 bit
joehz am 10.12.2015 um 13:21 Uhr (1)
Hi Chef,Zitat: "CAT_VBAIsOutProc=1" in deiner Env ergänzenhab ich noch nie verwendet 8-oZitat:Wo sehe ich denn meine VBA Version?Wie immer: Im VBA-Editor -Help/AboutZitat:Kompilierungsfehler: Der Code in diesem Projekt muss für die Verwendung auf 64-Bit-Systemen aktualisiert werden. Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren Sie sie mit dem PrtSafe-Attribut.Ist aber offensichtlich VBA7.Da müssen die Api-Deklarationen überarbeitet werden.Info dazu hier:http://catia2.cad.de/index.p ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro 32/64 bit
leChefe am 10.12.2015 um 08:47 Uhr (1)
Guten Morgen zusammen,ich habe gerade ein Projekt bei einem bayrischem OEM und nutze die dort üblichen Makros zur Stücklistenerstellung. Diese sind jedoch alle für 32bit Systeme. Wenn ich Catia in den 32bit modus setze, stürzt dieses jedoch mit unserem allseits beliebten Click ok bei der Datenmenge ab.Im 64bit modus bekomme ich Kompilierungsfehler und das Makro geht gar nicht. Jetzt habe ich die Auskunft, der OEM habe keine 64bit Variante , ich habe keine Ahnung davon und unsere IT mag sich scheinbar auch ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parts eines Products schnell auslesen!
Randle am 09.12.2015 um 11:15 Uhr (1)
Hallo,man könnte auch alle geladenen Dokumente durchgehen.For each oDoc in CATIA.Documents Select Case TypeName(odoc) case "PartDocument": mach irgendwas mit dem Part case "ProductDocument": mach irgendwas mit dem Product case else: mach was anderes End SelectNextAllerdings sollte man dann bevor man das Makro auf eine Baugruppe loslässt die CATIA Sitzung neu starten, damit nicht noch andere (nicht zu der Baugruppe gehörenden) Teile mit ausgelesen werden.Bei deiner Vorgehensweise führst du unter Umstä ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parts eines Products schnell auslesen!
cscp am 15.12.2015 um 13:40 Uhr (1)
Ich lese für jedes Part diese Infos aus:NameInstanznameFilenameMasseüber Analyze.Mass()Schwerpunktslageüber ReferenceProduct.Analyze.GetGravityCenter(...)Trägheitsmatrixüber ReferenceProduct.Analyze.GetInertia(...)Ursprungüber Position.GetComponents(...)Orientierungüber Position.GetComponents(...)FarbeÜber Code: Dim oSel = CATIA.ActiveDocument.Selection oSel.Search("Name=" & obj.Name & ",all") Dim visProp As VisPropertySet visProp = oSel.VisProperties visProp.GetVisibleCo ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parts eines Products schnell auslesen!
joehz am 15.12.2015 um 14:21 Uhr (1)
Hallo,ich hab Dich vor knapp 2 Wochen aufgefordert, uns Deinen Code zu zeigen.Gemeint war, die Routine mit der Du das alles ermittelst.Wenn wir Dir sagen sollen wo Du die Zeit verlierst, musst Du uns zeigen wie Du bisher vorgehst.Tschau,Joe------------------Inoffizielle Catia Hilfeseite
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parts eines Products schnell auslesen!
joehz am 15.12.2015 um 16:34 Uhr (1)
Hallo,.. und jetzt wär noch interesant zu wissen, womit Du programmierst.VB6/VBA versteht das nicht.Tschau,Joe------------------Inoffizielle Catia Hilfeseite
|
In das Form CATIA V5 Programmierung wechseln |