Autor
|
Thema: Objekt in bearbeitung setzen (5477 mal gelesen)
|
RonnyS Mitglied
Beiträge: 97 Registriert: 04.09.2003
|
erstellt am: 07. Jan. 2004 11:14 <-- editieren / zitieren --> Unities abgeben:
|
listing_code Mitglied
Beiträge: 45 Registriert: 27.10.2003
|
erstellt am: 07. Jan. 2004 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|
RonnyS Mitglied
Beiträge: 97 Registriert: 04.09.2003
|
erstellt am: 07. Jan. 2004 13:14 <-- editieren / zitieren --> Unities abgeben:
|
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 08. Jan. 2004 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 14. Okt. 2008 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 15. Okt. 2008 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo, du kannst dir die Comand "Activate/Seactivate" in einen Neuen Toolbar legen mit Icon versehen und hast die Funktion genau so wie mit einem Macro auf Knopfdruck. Tools-Anpassen_Neu Toolbar erstellen(vorher WB wählen wo die erscheinen soll) -Ad Comands- ACtivate /Deactivate wählen. Auf Reiter Comands-Alle Comands die Comand wählen-Show Properties-Icon - Icon wählen. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 15. Okt. 2008 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 15. Okt. 2008 23:54 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo V5Playaz, die Frage ist doch schon so ausgiebig im Froum diskutiert wurden, dass ich annahm, dass Du dies wissen müsstest. Im Script ist es nicht notwendig, CATProducts oder CATParts explizit "in Bearbeitung" bzw. "aktiv" zu setzen. Man bearbeitetet sie einfach! Anders das Problem mit "in_work_objects" innerhalb des Part-Design. Dort funktioniert dann das von "listing_code" Geschriebene. Für Deinen, wenn auch spärlich beschriebenen, Ansatz würde aus meiner Sicht die Bearbeitung im entsprechenden Dokument genügen. Falls das nicht funktioniert, beschreibe doch Dein Anliegen und die Ausgangssituation noch einmal präziser... 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 |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 16. Okt. 2008 21:25 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 10. Aug. 2011 11:32 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo Lusilinie, ich gebe dir Recht das dieses Problem schon öfters diskutiert wurde aber meines Erachtens nach noch nicht gelöst wurde. Denn auch mit selektieren/workbench wechsel/Rootdokument aktivieren und Rootprodukt aktivieren ist es nicht möglich aus einem aktivierten Unterpart das Hauptprodukt zu updaten. Ich lasse mich gerne Belehren aber das Update wird nicht ausgeführt. Genauso habe ich es nicht geschafft nur das aktivierte Unterpart upzudaten. Da ich nicht weiß wie ich es finden kann, ohne vorher etwas zu selektieren . Ich habe mal in folgenden Testcode alles reingepackt was helfen soll. Ich habe es auch in anderen Reihenfolgen versucht. Das Product und demzufolge auch das Part werden nicht upgedatet. Code: Sub UpdateRoot() Dim MyDocument As Document Dim MyProduct As Product Dim MySelection As SelectionIf CATIA.GetWorkbenchId <> "Assembly" Then CATIA.StartWorkbench ("Assembly") End If Set MyDocument = CATIA.ActiveDocument Set MyProduct = MyDocument.Product Set MySelection = MyDocument.Selection MyDocument.Activate MyProduct.ActivateDefaultShape MySelection.Add MyProduct MyProduct.Update End Sub
Wenn doch noch jemand nen Befehl wissen sollte der den Knoten richtig im Bearbeitsmodus setzen kann oder wie man das sich in Bearbeitung befindliche Part finden kann, wäre ich euch ebenfalls Dankbar für einen Hinweis. Tausend Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meisterlumpi Mitglied
Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 10. Aug. 2011 17:23 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Zitat: Denn auch mit selektieren/workbench wechsel/Rootdokument aktivieren und Rootprodukt aktivieren ist es nicht möglich aus einem aktivierten Unterpart das Hauptprodukt zu updaten.
das funktioniert aber bei mir einwandfrei mit dem skript, was du da hast. hab ein produkt mit unterprodukten und parts darin, dann erstell ich im rootprodukt eine baugruppenbeziehung zwischen 2 parts. dann doppelklick auf ein part, sprich partdesign. dann lasse ich das makro laufen und das rootprodukt wird aktualisiert, sprich die baugruppenbedingung. Zitat: Genauso habe ich es nicht geschafft nur das aktivierte Unterpart upzudaten. Da ich nicht weiß wie ich es finden kann, ohne vorher etwas zu selektieren .
die parts, die du in deinem makro bearbeitest kennst du ja und kannst sie updaten bei bedarf. warum spielt es eine rolle welchen part der user grad in bearbeitung hat? ---------------- Folgendes skript prüft alle Parts in einem Product durch, ob sie up-to-date sind, oder ob sie ein update brauchen. falls ein part nicht up-to-date ist wird der user gefragt ob er es updaten will. Code:
Sub CATMain() Dim doc1 As Document Dim part1 As Part For Each doc1 In CATIA.Documents If VBA.Right(doc1.Name, 8) = ".CATPart" Then Set part1 = doc1.Part If part1.IsUpToDate(part1) Then MsgBox part1.Name & " -> ist up-to-date" Else If MsgBox(part1.Name & " -> nicht up-to-date" & Chr(10) & _ "Part updaten?", vbYesNo) = vbYes Then _ part1.Update End If End If Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 10. Aug. 2011 23:02 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo meisterlumpi, erstmal vielen Dank für deine Antwort. Das Makro soll eigentlich unter der Release 19 laufen aber dank deiner Antwort habe ich es unter R16 versucht da funktioniert es. Da ich aber jetzt nur eine kleine Dummy Baugruppe zum versuchen habe, kann es aber evtl. auch an der größe der Baugruppe liegen. Ich werde das Morgen nochmal auf Arbeit mit verschiedenen Releases versuchen. Fakt ist aber Trotzdem in der R19 in einer aufwändigeren Struktur funktioniert es nicht. Zitat: die parts, die du in deinem makro bearbeitest kennst du ja und kannst sie updaten bei bedarf. warum spielt es eine rolle welchen part der user grad in bearbeitung hat?
Das Makro hat aber noch nichts gemacht, die letzte Aktion in einen beliebigen Part ist in der Regel eine Verschiebung eines Achsensystems vom Benutzer. Danach soll das Makro starten mit dem Update des in Bearbeitung befindlichen Parts, ich brauche also das aktuell in Bearbeitung befindliche Part. Jetzt werden einige Sagen kann denn der Benutzer nicht noch Update drücken bevor er das Makro startet. ja, kann er aber das Makro soll mehrere Parts/Produkte in unterschiedlichen Fenstern updaten wieso kann es dann nicht auch das aktuelle Part Updaten? Und sollte der Benutzer das Update vergessen haben muß er alles nochmal updaten, das will ich vemeiden. Das Update über die gesamte Struktur kommt auch nicht in Frage. Der Grund hierfür liegt haupsächlich in der Performance. Wir konstruieren relative große Presswerkzeuge für die Automobilindustrie, die Auslagerungsdatei übersteigt teilweise 16GB und ein einfaches Update kann mehrere Minuten in anspruch nehmen. Ein bestimmter OEM arbeitet mit Reference Parts welche in der Hauptkonstruktion gesteuert werden (eben das aktive Part) also muß das zu erst geupdatet werden dann müßen die mit CCP verlinkten ReferenceParts geupdatet werden (die sich nicht in der Struktur befinden) und dann kann die gesamte Hauptkonstruktion geupdatet werden. Da das Update der Hauptkonstruktion sehr lang dauern kann will ich das erste update nur über das in Bearbeitung befindliche Part machen. Das Part über irgendeinen Namen zu finden ist ausgeschlossen, es sind mehrere hundert Parts verbaut und jedes Part kann Steuerelemente enthalten also das sich in Bearbeitung befindliche Part sein. Ich hoffe das war einigermaßen Verständlich. Dein Script zum scannen der nicht UptoDaten Parts ist nicht schlecht aber ich möchte ja wirklich nur das eine Part wissen/updaten was ich in Bearbeitung habe. Kann man eigendlich auch ein nicht geupdatetes Produkt finden? Für das Prüfen des Dokumententyps nehme ich immer
Code: Typename(doc1)="PartDocument"
Da muß man nicht so viel mit dem String rumher schnitzen Danke nochmal für deine Hilfe. mfG Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 11. Aug. 2011 01:56 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo roccat, da Du mich schon persönlich ansprichst, will ich auch so nett sein, Dir zu antworten. Das Problem mit dem aktiven, sprich blau hinterlegten, Element im Baum wird sich bei der Bearbeitung mittels Skript wahrscheinlich nicht mehr ändern: Es ist nicht wirklich fassbar! (Oder? ) Dein Problem mit dem Update des aktuell in Bearbeitung befindlichen Parts könnte man allerdings über den oft genutzten Umweg des "StartCommand" lösen. D.h., wenn der User sofort im Anschluss an die letzte Aktion im Part das Makro ausführt, dann sollte mit folgender Befehlszeile: Code: CATIA.StartCommand "Update"
das Part (und nur das Part) upgedatet werden. Voraussetzung ist natürlich, dass weder das aktive Part noch die Workbench gewechselt wurden.Ein weiteres Problem war Dein Update des Products. Das muss ich noch genauer eruieren, eventuell hat V5R19 hier einen Fehler. Die Strategie, in welcher Reihenfolge Du dann welche Parts und Products updaten willst, habe ich aufgrund der fortgeschrittenen Uhrzeit auch noch nicht verstanden. Aber vielleicht arbeiten wir uns hier einfach Schritt für Schritt vorwärts... 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 |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 11. Aug. 2011 07:05 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
Hallo Lusilnie, danke für deine Antwort zu so später Stunde. Ich habe grad mal paar Releases Versucht (mit einer einfachen Struktur), es liegt nicht an der Release. Das Problem scheint die Datenmenge zu sein, ich habe es an Verschiedenen Konstruktionen Versucht es hat bei keiner funktioniert. Den StartCommand Befehl mag ich nicht sonderlich (ich denke das geht dir auch so ). Ich habe damit schon einiges probiert aber das ist so eine instabile Geschichte das ich mich dazu entschlossen habe Ihn nur einzusetzen wenn es die letzte Codezeile im Script ist. Alles andere mit Sleep-funktionen zu warten bis der StartCommand fertig ist war nie wirklich sicher und hat meistens auch nicht geklappt. Hab mir schon gedacht, das ich mit meiner Erklärung der Update Reihenfolge mehr Verwirrung stifte als Klarheit. Ist aber auch nicht Wichtig, ich wollte auch nur damit sagen das es schon Wichtig sein kann zu Wissen welches Part in Bearbeitung ist. Ich Danke dir auf jedenfall für deine Antwort und Anregungen. mfG Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 15. Apr. 2016 15:06 <-- editieren / zitieren --> Unities abgeben: Nur für RonnyS
|