Autor
|
Thema: KWA: Texte nach Synchronize ändern (2099 mal gelesen)
|
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 09:29 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, folgende Sachlage: Es geht um eine Zeichnung (Drafting). Ich habe mehrere Externe Parameter auf das abzubildene Part. Das Problem, dass sich externe Parameter nicht automatisch synchronisieren, habe ich mit einem "Synchronize"-Command innerhalb einer Reaction auf ein UpdateView gelöst. Soweit alles gut. Wenn also alle Parameter sauber (synchronisiert) sind, möchte ich diverse Texte auf der Zeichnung anpassen. Ein VB-Script krieg ich nicht ans Laufen. Hab auf Anhieb nicht raus gekriegt, wie der Befehl dazu lautet... Und die Änderungen nach dem Sync direkt in die Reaction schreiben klappt auch nicht. Anscheinend läuft der Sync parallel, so dass die Texte geändert werden, bevor die Parameter synchronisert wurden. Jetzt würde ich gerne verhindern, für jeden Parameter eine Reaction zu schreiben. Das sind bisher über 20 Parameter. ------------------ mfG Oli 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: 07. Jan. 2015 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für owinter
|
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 11:36 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Reaction ("SynchronizeParameters") auf das ViewUpdate: Code: Set objDrawing = CATIA.ActiveDocument Set objSel = objDrawing.Selection Set objParams = objDrawing.ParametersobjSel.Clear objSel.Search "CATKnowledgeSearch.InternalParameter,all" CATIA.StartCommand "Synchronize" objParams.Item("Sync").Value = Now End sub
und eine Reaction ("SetText") auf den "Sync"-Parameter aus der obigen Reaction: Code: Set DrwDoc = CATIA.ActiveDocument Set Params = DrwDoc.Parameters Set ViewMain = DrwDoc.Sheets.Item("Main").Views.Item("Main") Set Txts = ViewMain.TextsTxts.getItem("Text_De").Text = "De = " & Params.Item("De0").Value
Aber wie gesagt, er stößt den Synchronize an und macht direkt weiter, ohne auf das Ende der Synchronisation zu warten. Und das sorgt dafür, dass die "SetText"-Reaction den "De0"-Parameter ausliest, bevor er synchron ist... ------------------ mfG Oli 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: 07. Jan. 2015 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für owinter
Hallo Oli, ... und wenn Du eine Sleep-Anweisung zwischen schaltest? etwa: in den (globalen) Deklarationen: Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) im Code: Sleep 500 '0,5 sec warten Nicht unbedingt elegant, aber oft wirksam. Eine andere Möglichkeit wäre, in einer Schleife auf die vorgegebene Änderung einer Dummy-Variablen zu warten. Nachteil: Eine (vermutlich) unnütze Variable im Modell; ausserdem weisst nicht in welcher Reihefolge der Sync erfolgt. Hope it helps, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 12:43 <-- editieren / zitieren --> Unities abgeben:
|
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: 07. Jan. 2015 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für owinter
|
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 13:28 <-- editieren / zitieren --> Unities abgeben:
An der Stelle in gar keiner. Also CATIA selber. Eigentlich programmiere ich in Visual Studio und .NET. Ich will mich "von außen" nur nicht zwischen das Part und seine Zeichnung drängen. Vor allem damit die beiden auch eigenständig funktionieren. Daher bin ich im Moment etwas überfordert und genervt. Ich finds total unübersichtlich und verwirrend hier. Vor allem, weil unsere IT nicht in der Lage ist VBA richtig zu installieren. Wenn ich versuche ein VBA-Projekt zu öffnen/erstellen, bekomme ich immer eine Fehlermeldung. ------------------ mfG Oli 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: 07. Jan. 2015 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für owinter
Das war auch ein freundlicher Hinweis Dein Profil zu ergänzen ;-) Also ... ZB unter VBA in einem Modul:
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub CATMain() Debug.Print Time Sleep 1000 Debug.Print Time End Sub
- unter VB6 zB in einer Form: Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Load() Debug.Print Time Sleep 1000 Debug.Print Time End Sub
Innerhalb des Catia-eigenen Makro-Editors scheint's nicht machbar. Da musst Dir mit Time o.ä. selbst eine Warteschleife bauen (aber bitte keine Zählschleife!). Wenn die Deklaration sich im Modul und der Aufruf sich in einer Form befinden, muss die Deklaration 'Public' definiert werden. Zitat:
Wenn ich versuche ein VBA-Projekt zu öffnen/erstellen, bekomme ich immer eine Fehlermeldung.
Wie lautet die? Tschau, Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 14:02 <-- editieren / zitieren --> Unities abgeben:
Na dann wundert's mich nicht, dass ich das nicht hinkriege... Die Fehlermeldung lautet: "ScriptingERR_1153 [...] The project creation has failed. VBA is not correctly installed. Make sure your VBA Installation is complete and correct." ------------------ mfG Oli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 14:03 <-- editieren / zitieren --> Unities abgeben:
|
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: 07. Jan. 2015 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für owinter
|
owinter Mitglied Dipl.-Inf.-Ing.
Beiträge: 25 Registriert: 21.04.2008 CV5R19/24/26, VS2015, Win7Ent 64, Xeon 3.6, 16GB, Quadro 4000
|
erstellt am: 07. Jan. 2015 16:43 <-- editieren / zitieren --> Unities abgeben:
|