Autor
|
Thema: Ansichten sperren/entsperren (6042 mal gelesen)
|
DocMurphy Mitglied Konstrukteur
Beiträge: 37 Registriert: 22.07.2009 Fujitsu Celsius W570Power (32GB RAM, Quadro P4000) WIN10 1909 CATIA V5 R28 CATIA V5 R29
|
erstellt am: 15. Dez. 2010 09:23 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, gibt es eine Makrolösung die alle Ansichten einer geöffneten Zeichnung lockt bzw. entlockt wenn diese gelockt sind? Die Suche hierzu hat mich nicht wirklich weiter gebracht. ------------------ Arbeit zieht immer Arbeit nach sich! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 15. Dez. 2010 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
Servus, Ansicht sperren:
Code: '***Ansichten ansprechen Set View = objSel.Item(intI).Value '***Ansichten sperren View.LockStatus = True
Ansicht entsperren:
Code: '***Ansichten ansprechen Set View = objSel.Item(intI).Value '***Ansichten entsperren View.LockStatus = False
zum Suchen der Ansichten:
Code: '***Performanceerhöhung der Suche CATIA.HSOSynchronized = False '***Ansichten suchen objSel.Search "Drafting.View.Name!=Background View" CATIA.HSOSynchronized = True
------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocMurphy Mitglied Konstrukteur
Beiträge: 37 Registriert: 22.07.2009 Fujitsu Celsius W570Power (32GB RAM, Quadro P4000) WIN10 1909 CATIA V5 R28 CATIA V5 R29
|
erstellt am: 15. Dez. 2010 10:23 <-- editieren / zitieren --> Unities abgeben:
|
DocMurphy Mitglied Konstrukteur
Beiträge: 37 Registriert: 22.07.2009
|
erstellt am: 15. Dez. 2010 14:04 <-- editieren / zitieren --> Unities abgeben:
Leider komm ich nicht weiter. Wie muss man vorgehen wenn man mehrere Blätter in der Drawing hat und er dies auch in allen Blättern tun soll? ------------------ Arbeit zieht immer Arbeit nach sich! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009 Catia V5-6 R24 Windows 7 64bit Intel Xeon (4x3,5GHz) 32B Ram Nvidia Quatro K4200
|
erstellt am: 15. Dez. 2010 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
Ich würde noch eine For-Schleife ähnlich dieser drum herum bauen: Code: Dim oDoc As DrawingDocument Set oDoc = CATIA.ActiveDocument Dim oSheets As DrawingSheets Set oSheets = oDoc.Sheets Dim oSheet As DrawingSheet Dim I as IntegerFor I = 1 To oSheets.Count Set oSheet = oSheets.Item(I) 'hier deine Anweisungen für oSheet Next
EDIT: Vorher natürlich noch abfragen ob das ActiveDocument auch wirklich eine Zeichnung ist [Diese Nachricht wurde von Starbirth am 15. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocMurphy Mitglied Konstrukteur
Beiträge: 37 Registriert: 22.07.2009
|
erstellt am: 22. Dez. 2010 10:04 <-- editieren / zitieren --> Unities abgeben:
Hier die Lösung die ich danke eurer Hilfe erarbeitet habe: Sub CATMain() Dim oDoc Set oDoc = CATIA.ActiveDocument Dim oSheets Set oSheets = oDoc.Sheets Dim objSel Set objSel = oDoc.Selection Dim intI '***Performanceerhöhung der Suche CATIA.HSOSynchronized = False '***Ansichten suchen objSel.Search "Drafting.View.Name!=Background View" CATIA.HSOSynchronized = True '***Ansichten ansprechen '***Für jede gefundene Ansicht tue folgendes: sperre Ansicht For intI = 1 To objSel.Count Set View = objSel.Item(intI).Value '***Ansichten sperren View.LockStatus = true Next End Sub Zum entsperren muss man nur in der drittletzten Zeile den Wert von true auf false setzen.
Danke an alle die geholfen haben, Frohes Fest und Guten Rutsch! ------------------ Arbeit zieht immer Arbeit nach sich! [Diese Nachricht wurde von DocMurphy am 22. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MICHLICK Mitglied CAD Methodik Entwickler (CATIA; NX)
Beiträge: 454 Registriert: 20.06.2001 Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.
|
erstellt am: 22. Dez. 2010 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
Hallo, ich habe da noch eine alternative Lösung: Code:
Option Explicit Sub CATMain() Dim i As Integer Dim j As Integer For i = 1 To CATIA.ActiveDocument.Sheets.Count If Not CATIA.ActiveDocument.Sheets.Item(i).IsDetail Then If CATIA.ActiveDocument.Sheets.Item(i).Views.Count > 2 Then For j = 3 To CATIA.ActiveDocument.Sheets.Item(i).Views.Count CATIA.ActiveDocument.Sheets.Item(i).Views.Item(j).LockStatus = Not CATIA.ActiveDocument.Sheets.Item(i).Views.Item(j).LockStatus Next End If End If Next End Sub
Zeilen 3 und 4: Definition von zwei Zählvariablen (für Blätter und Ansichten) Zeile 5: Start einer Schleife in der alle Blätter durchlaufen werden (Ende in Zeile 13) Zeile 6: Wenn es sich um ein Zeichnungsblatt handelt (kein Detailblatt), dann wird die Zeile ausgeführt. Sonst weiter zum nächsten Blatt Zeile 7: Wenn es auf dem Blatt Zeichnungsansichten gibt (View(1) = MainView; View(2) = BackgroundView), also mehr als 2 Ansichten vorhanden sind, dann wird die nächste Schleife ausgeführt. Zeile 8: Start einer Schleife, die durch alle Ansichten eines Blattes läuft (ohne Main- und Background View) (Ende in Zeile 10) Zeile 9: Wechsel des Lock-Status (alle gesperrten Ansichten werden entsperrt und alle entsperrten Ansichten werden gesperrt). Man könnte natürlich auch eine Abfrage über eine MsgBox einbauen. z.B. Sollen alle Ansichten geperrt werden? JA = sperren Nein = entsperren Abbruch = switch Lock Status (oder wirklich Abbruch) Schöne Weihnachten ------------------ Gruß Michael B. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocMurphy Mitglied Konstrukteur
Beiträge: 37 Registriert: 22.07.2009
|
erstellt am: 28. Dez. 2010 09:54 <-- editieren / zitieren --> Unities abgeben:
|
Maetes Mitglied Student
Beiträge: 118 Registriert: 05.05.2009 XP 64Bit CATIA V5R19SP4 MS Office 2003
|
erstellt am: 12. Jan. 2011 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
Hallo! Was sagt den IsDetail genau aus? Das Zitat aus der V5Automation Datei hilft mir auch nicht viel weiter.. Zitat: Checks whether the sheet is a detail sheet. TRUE if the sheet is a detail sheet.
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: 12. Jan. 2011 15:50 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
Servus Wenn es sich um ein "Detailblatt" also einem Blatt mit 2D-Komponenten handelt (Einfügen -> Zeichnung -> Blätter -> neues Detailblatt) wird TRUE zurückgeliefert. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BADU Mitglied Konstrukteur
Beiträge: 124 Registriert: 02.07.2003 Catia V5R19 x64 Win7 x64
|
erstellt am: 06. Apr. 2011 17:50 <-- editieren / zitieren --> Unities abgeben: Nur für DocMurphy
|