Autor
|
Thema: Herausfinden ob eine Sketch aktiv ist (1470 mal gelesen)
|
RAA Mitglied CAD/PDM-Supporter
Beiträge: 57 Registriert: 05.08.2009 HP Z420 Intel Xeon 3,6GHz 32GB Windows 7 Enterprise V5R19+R22+R24+R26 VB.net 2010
|
erstellt am: 02. Mai. 2012 15:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte in einer Sketch Geometrie per Makro erzeugen. Da mir die Erzeugung der Sketch selbst zu variantenreich ist (das kann der Benutzer schneller) soll das Makro überprüfen, ob der Benutzer in einer Sketch ist. Wenn sich die Sketch im PartBody befindet funktioniert es, aber nicht in allen beliebigen Möglichkeiten im PART. Weiß jemand einen universellen Ansatz zu überprüfen, ob in dem aktiven Part eine aktive Sketch ist? mfg Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 02. Mai. 2012 16:10 <-- editieren / zitieren --> Unities abgeben: Nur für RAA
Ich hab's nicht wirklich verstanden, was Du da schreibst, aber prüfen ob der Sketcher offen ist kannst Du über die Workbench. Sub Catmain() Abfrage = CATIA.GetWorkbenchId MsgBox (Abfrage) End Sub bzw. hier gibt's noch Informationen http://ww3.cad.de/foren/ubb/Forum137/HTML/001485.shtml#000001 Ob das aber zu Deiner Frage passt weiß ich nicht, da nicht verstanden, wie gesagt. :-( Wenn's nicht passt, dann nochmals mit anderen Worten probieren. InWorkObject wäre z.B. eine Methode das aktive Objekt herauszufinden. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAA Mitglied CAD/PDM-Supporter
Beiträge: 57 Registriert: 05.08.2009 HP Z420 Intel Xeon 3,6GHz 32GB Windows 7 Enterprise V5R19+R22+R24+R26 VB.net 2010
|
erstellt am: 02. Mai. 2012 16:40 <-- editieren / zitieren --> Unities abgeben:
Hallo HoBLila, vielen Dank für die schnelle Reaktion. Der Hinweis auf die Workbench ist sehr hilfreich um eine aktive Sketch zu prüfen. Mein Kernproblem ist aber, daß sich Sketches ja im PartBody, in einem Body oder in einem GeometricalSet befinden können. Ich habe im Moment folgende Objektzuweisung: Set partdocument1 = CATIA.ActiveDocument Set part1 = partdocument1.Part Set sketch1 = part1.InWorkObject Es tritt immer ein Fehler in der 3. Zeile auf, wenn sich die Sketch nicht im PartBody befindet und dort komme ich im Moment nicht weiter. Gruß Rainer
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: 02. Mai. 2012 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für RAA
Servus Wenn du die Sketch als Objekt hast kannst du dich über .Parent.Parent (siehe auch Doku und Watch.-Fester) nach oben hangeln. (zB zu GeoSet) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAA Mitglied CAD/PDM-Supporter
Beiträge: 57 Registriert: 05.08.2009 HP Z420 Intel Xeon 3,6GHz 32GB Windows 7 Enterprise V5R19+R22+R24+R26 VB.net 2010
|
erstellt am: 02. Mai. 2012 16:55 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Mai. 2012 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für RAA
Servus AFAIK geht das In WorkObject nur bei PartFeatures. Ein Sketch gehört zur Sketch-Collection dieses wiederum gehört zu einem Körper/GeoSet. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 17. Sep. 2013 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für RAA
Hallo Zusammen, Ich bin gerade in "Sketcher". Dort möchte ich mein Makro laufen lassen, aber fehlt eine Reihe: Set sketch1 = < wo ich gerade drin bin > Könnt Ihr mir helfen? Vielen Dank im Voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAA Mitglied CAD/PDM-Supporter
Beiträge: 57 Registriert: 05.08.2009 HP Z420 Intel Xeon 3,6GHz 32GB Windows 7 Enterprise V5R19+R22+R24+R26 VB.net 2010
|
erstellt am: 20. Sep. 2013 08:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, in einer Sketch erzeuge ich so Geometrie: Dim CATIA As Application Dim CurSketch As Sketch Dim factory2D1 As Factory2D Dim sel1 As Selection Set CATIA = GetObject(, "CATIA.Application") ... If CATIA.GetWorkbenchId = "CS0WKS" Then ' ist eine Sketch geöffnet sel1.Search ("Sketcher.AbsoluteAxis;in") Set CurSketch = PartDok1.Selection.FindObject("CATIASketch") CurSketch.OpenEdition Set factory2D1 = CurSketch.Factory2D ... Geometrie erzeugen CurSketch.CloseEdition End If Ich hoffe das hilft Gruß Rainer
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 20. Sep. 2013 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für RAA
Hallo RAA, vielen Dank für Deine Antwort. Deine Lösung sel1.Search ("Sketcher.AbsoluteAxis;in") Set CurSketch = PartDok1.Selection.FindObject("CATIASketch") ist nicht zu schön, aber funktioniert. Danke nochmal! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |