Autor
|
Thema: RootProdukt aktivieren (2734 mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 23. Okt. 2017 12:01 <-- editieren / zitieren --> Unities abgeben:
Hallo ich möchte gerne das oberste Produkt in einer beliebigen Produktstruktur aktivieren. (blau hinterlegt) Mit
Code: Sub CATMain() Dim Root_Document As ProductDocumentSet Root_Document = CATIA.ActiveDocument Root_Document.Activate End Sub
funktioniert es leider nicht. Hat jemand einen Idee. Danke ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Okt. 2017 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 23. Okt. 2017 12:22 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, Zitat:
Dim oSel As Selection Set oSel = CATIA.ActiveDocument.Selection Dim oProd As Product Set oProd = CATIA.ActiveDocument.ProductoSel.Clear oSel.add oProd CATIA.StartCommand "FrmActivate"
"FrmActivate" highlightet mir das oberste Produkt jedoch wird es nicht aktiv (also Blau) gestetzt.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C.Samer Mitglied CAD Administrator
Beiträge: 72 Registriert: 03.05.2017
|
erstellt am: 24. Okt. 2017 09:08 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Funktioniert das vielleicht irgendwie mit InWorkObject? Code: Catia.ActiveDocument.part.InWorkObject = mainBodyNew
Liebe Grüße aus Wien, Christoph Edit: Hmm, wohl eher nicht :/
Zitat:
o Property InWorkObject( ) As AnyObject Returns or sets the in work object of the part. The in work object is the object after which a new object is added. Example: Code: Set partRoot = partDoc.Part Set partRoot.InWorkObject = cylindricPad If ( partRoot.InWorkObject <> cylindricPad ) Then MsgBox "There is a big problem" End If
Edit 2:
Zitat: Hi Bernd, Zitat: Code: Dim oSel As Selection Set oSel = CATIA.ActiveDocument.Selection Dim oProd As Product Set oProd = CATIA.ActiveDocument.Product oSel.Clear oSel.add oProd CATIA.StartCommand "FrmActivate"
"FrmActivate" highlightet mir das oberste Produkt jedoch wird es nicht aktiv (also Blau) gestetzt.
D.h. dein Programm funktioniert bis oSel.add oProd, denn hier findet die Selection statt. Hast du dein Catia auf Englisch? [Diese Nachricht wurde von C.Samer am 24. Okt. 2017 editiert.] [Diese Nachricht wurde von C.Samer am 24. Okt. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 30. Okt. 2017 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 01. Nov. 2017 08:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Christoph, hallo Joe, Danke für eure Rückmeldung. Offiziell wird CATIA.StartCommand "FrmActivate" wohl nicht Unterstützt. Hab ich im Netz gefunden. Zitat: To Submitter 12/29/2010 01:52:33PM THIS PROBLEM IS PERMANENT RESTRICTION IN CATIA UI-activation command mentioned by customer is not exposed in Catia documentation nor in Catia available command lists (Tools|Customize list and View|Command List) so customers should not use it. The command is accessible through Power input because it is not protected thereFor more information customer can refer the BR10000048423
Zitat: To Submitter 01/06/2011 05:59:32AM Hello,If you open the commands available in CATIA at Tools->Customize->Command tab, here you cannot find the “frmactivate ” command.Hence this command will not work with CATIA.StartCommand method. In addition , this command is not documented. Hence this command is not supported. This is PERMANENT RESTRICTION in CATIA. Best Regards, CAA Maintain Team
Einschließlich R18 hat es aber wohl mal funktioniert. @ Christoph
Zitat: D.h. dein Programm funktioniert bis oSel.add oProd, denn hier findet die Selection statt. Hast du dein Catia auf Englisch?
Ja Englische Umgebung. Die Selection findet statt, leider wird das aktivschalten nicht ausgeführt. @ Joe Hintergrund ist der, das ich über alle Parts und Produkte eine "selection1.Search" ausführen möchte. Wenn nun versehentlich ein Part aktiv ist werden alle andern Produkte/Parts ignoriert.
Eine Idee von mir das Problem zu umgehen wäre ein neues Produkt(neues Fenster) zu erstellen und das oberste Produkt in das "NeueProdukt" zu kopieren. Hier die "selection1.Search" auszuführen und dann das "NeueProdukt" dann wieder zu löschen.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Nov. 2017 09:29 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus Uwe Wie sprichst du denn die Selection an? In meinem Kurztest ist das ActiveDocument immer das Rootproduct (bzw dessen Document) egal was im Baum aktiv ist. Somit sollte auch dessen Selection (und darin die Suche) alles im Rootproduct beinhalten. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 02. Nov. 2017 12:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, ich muß dir teilweise recht geben. Die Selection beinhaltet alles im Rootprodukt. Soweit richtig. Leider wird die Selection bei mir dann nicht gelöscht wenn z.B. ein Part aktiv ist.
Und es wird noch kurioser. Nicht gelöscht werden: -Formula -Rule in Part und Produkt nicht. Hingegen -Reaction -DesignTable wird nur im Part gelöscht. Funktionieren tut es nur bei aktivem obersten Produkt. Code: Set ProdDoc = CATIA.ActiveDocument Set selection1 = ProdDoc.SELECTION selection1.Clear selection1.Search "(CATKnowledgeSearch.AdvisorReaction),all" If selection1.Count > 0 Then selection1.Delete selection1.Clear Else selection1.Clear End If selection1.Clear selection1.Search "CATKnowledgeSearch.AdvisorFormula.Visibility=visible,all" selection1.Clear selection1.Search "(CATKnowledgeSearch.AdvisorFormula - CATKnowledgeSearch.AdvisorFormula.Name=DINNormaFormula),all" 'selection1.Search "CATKnowledgeSearch.AdvisorFormula,all" If selection1.Count > 0 Then selection1.Delete selection1.Clear Else selection1.Clear End If selection1.Clear selection1.Search "CATKnowledgeSearch.AdvisorRule,all" If selection1.Count > 0 Then selection1.Delete selection1.Clear Else selection1.Clear End If selection1.Clear selection1.Search "CATKnowledgeSearch.DesignTableType,all" If selection1.Count > 0 Then selection1.Delete selection1.Clear Else selection1.Clear End If selection1.Clear selection1.Search "(Knowledgeware.'Visual Basic Script Macro'),all" If selection1.Count > 0 Then selection1.Delete selection1.Clear Else selection1.Clear End If
------------------ Gruß Uwe
Auch Catia ist nur ein Mensch! [Diese Nachricht wurde von moppesle am 02. Nov. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 15. Nov. 2017 07:40 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Moin, probiere mal folgenden Workaround: - dein Root.Product in ein neu erzeugtes .CATProduct zufügen - dort die Selection / das Search ausführen... - dann das neu erzeugte .CATProduct einfach schließen - fertig Damit ist es unrelevant, welcher Knoten in deiner Struktur aktiviert ist. Gruß TomTom1972 ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 15. Nov. 2017 07:50 <-- editieren / zitieren --> Unities abgeben:
Hi tomtom1972, danke für die Antwort. Das hatte ich mir auch schon überlegt. In meinen zweitletzten Eintrag.
Zitat: Eine Idee von mir das Problem zu umgehen wäre ein neues Produkt(neues Fenster) zu erstellen und das oberste Produkt in das "NeueProdukt" zu kopieren. Hier die "selection1.Search" auszuführen und dann das "NeueProdukt" dann wieder zu löschen.
Hast du hierzu ein Beispiel? ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 16. Nov. 2017 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo, und sorry, das habe ich nicht gesehen, das du die Idee selbst schon hattest. Einen Code habe ich jetzt direkt nicht parat, aber das ist ja schon eher trivial, zudem alles was du (hierfür) benötigst vom Rekorder aufgezeichnet wird, wenn du's händisch ausführst.... Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 16. Nov. 2017 13:03 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Also in etwa so: .... sRootWinFN= Catia.ActiveWindow.Parent.FullName Set oNewProd = CATIA.Documents.Add("Product") Set oProds = oNewProd.Product.Products Dim aPath(0) aPath(0) = sRootWinFN oProds.AddComponentsFromFiles aPath, "All" Set oSel = Catia.ActiveDocument.Selection oSel.Search("WasAuchImmer") .... Gruß End Sub ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |