Autor
|
Thema: Schnitt (Section) per Makro in eigenem Fenster öffnen (2379 mal gelesen)
|
PinKing Mitglied
Beiträge: 15 Registriert: 11.03.2010 XP, DMU Navigator V5 R19
|
erstellt am: 11. Mrz. 2010 11:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich beschäfftige mich erst seit kurzem mit der Makroprogrammierung. Ich benutze hauptsächlich den DMU-Navigator und habe folgendes Problem: Ich erstelle mir per Makro verschiedene Schnitte und möchte jetzt, dass diese nach der Erstellung in einem eigenen Fenster geöffnet werden. Also praktisch das per Makro ausführen, was ein Doppelklick auf einen Schnitt unter "Sections" auch macht. Den Makrorecoder habe ich ausprobiert, aber der zeichnet mir das Öffnen leider nicht auf. Gibt es da einen Trick? Wäre für jeden Tipp dankbar. Mit freundlichen Grüssen, PinKing. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 11. Mrz. 2010 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für PinKing
|
PinKing Mitglied
Beiträge: 15 Registriert: 11.03.2010 XP, DMU Navigator V5 R19
|
erstellt am: 11. Mrz. 2010 16:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für die Antwort. Wenn man einen Rechtsklick auf einen Schnitt macht, öffnet sich ein Kontextmenü. Dort findet man den Menü-Eintrag "Schnittname object" und dort wiederum eine Ebene tiefer den Befehl "open the associated viewer(s)". Ich werde mal versuchen den Befehl dafür rauszubekommen, weiss allerdings noch nicht wie man das anstellt. Trotzdem schon mal Danke für den Denkanstoß. Nachtrag: Mit CATIA.StartCommand ("Open the associated viewer(s)") scheint es zu gehen, nur habe ich jetzt noch das Problem, dass mein Makro komplett durchläuft, den Schnitt auch erstellt, aber er öffnet sich erst, wenn ich nach Beendigung des Makros mit der Maus auf den Schnitt klicke. Unten in der Statusleiste vom DMU-Navigator steht dann "initialState". Wenn ich das richtig sehe, müsste ich meinen gerade per Makro erzeugten Schnitt vor Aufruf von StartCommand per Makro selektieren. Und da beisse ich mir nun die Zähne dran aus. Wie selektiere ich den vor StartCommand? Gruss, PinKing. [Diese Nachricht wurde von PinKing am 11. Mrz. 2010 editiert.] 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: 11. Mrz. 2010 19:08 <-- editieren / zitieren --> Unities abgeben: Nur für PinKing
|
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: 11. Mrz. 2010 23:44 <-- editieren / zitieren --> Unities abgeben: Nur für PinKing
|
PinKing Mitglied
Beiträge: 15 Registriert: 11.03.2010 XP, DMU Navigator V5 R19
|
erstellt am: 12. Mrz. 2010 12:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, erstmal Danke für die Anregungen. Ich hab jetzt folgendes Beispiel programmiert, und es funktioniert soweit. Allerdings würde ich gerne noch die Fenster automatisch vertikal anordnen, aber der Befehl den ich dazu eingtragen habe, funktioniert nicht, wenn ich das Makro durchlaufen lasse. Setze ich einen Breakpoint bei "CATIA.Windows.Arrange catArrangeTiledVertica" und führe den Schritt per F8 durch, funktioniert es. Hat da noch jemand eine Idee, warum das nicht geht? Habe das Gefühl, das das Schnittfenster beim normalen Durchlauf noch nicht so schnell aufgebaut ist, aber eine Wartezeit dazwischen hat auch nichts gebracht. Muss ich irgendwas refreshen, oder so? Vielen Dank an alle. Gruss, PinKing.
Code: Private Sub cbt_Schnitt_anlegen_neu_Click() Dim cSections As Sections On Error Resume Next Set cSections = CATIA.ActiveDocument.Product.GetTechnologicalObject("Sections") If Err.Number <> 0 Then MsgBox ("Kein Dokument aktiv!") Exit Sub End If Dim oMasterSection As Object Dim MatrixPos(11) Set oMasterSection = cSections.Add oMasterSection.Name = "Schnitt_Nullpunkt" oMasterSection.Width = 200 oMasterSection.Height = 200 oMasterSection.Thickness = 50 oMasterSection.Type = 0 '0=Plane/1=Slice/2=Box oMasterSection.CutMode = 0 '0=No Cut/1=Volume Cut
MatrixPos(0) = 1 'X component of the X-axis MatrixPos(1) = 0 'Y component of the X-axis MatrixPos(2) = 0 'Z component of the X-axis MatrixPos(3) = 0 'X component of the Y-axis MatrixPos(4) = 1 'Y component of the Y-axis MatrixPos(5) = 0 'Z component of the Y-axis MatrixPos(6) = 0 'X component of the Z-axis MatrixPos(7) = 0 'Y component of the Z-axis MatrixPos(8) = 1 'Z component of the Z-axis MatrixPos(9) = 0 'X component of the origin (Ursprung) MatrixPos(10) = 0 'Y component of the origin (Ursprung) MatrixPos(11) = 0 'Z component of the origin (Ursprung) oMasterSection.SetPosition MatrixPos CATIA.ActiveDocument.Selection.Clear Dim Selection1 As Object Dim Suchstring As String Suchstring = Replace(oMasterSection.Name, ":", "':'") ' : im Namen ersetzen durch ':', sonst findet Search den Namen nicht Suchstring = Replace(Suchstring, "-", "'-'") ' - im Namen ersetzen durch '-', sonst findet Search den Namen nicht Set Selection1 = CATIA.ActiveDocument.Selection Selection1.Search "Name=" & Suchstring & ",all" CATIA.StartCommand ("Open the associated viewer(s)") CATIA.RefreshDisplay = True CATIA.Windows.Arrange catArrangeTiledVertical End Sub
Nachtrag: Mit CATIA.RefreshDisplay = True vor dem Arrange funktioniert die vertikale Anordnung. Hab es jetzt in den Code mit eingefügt. Noch zum Verständnis der Replace: Meine Schnitte bekommen einen Namen, in dem die Punkte für X,Y und Z drin sind. Z.B.: "X_Schnitt:_X_-414,89_Y_735,33_Z_556" und das Search hatte Probleme mit ":" und "-", deshalb muss man die in einfache Anführungszeichen setzen. Gruss, PinKing. [Diese Nachricht wurde von PinKing am 12. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|