Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro im Skizzier-Modus starten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Makro im Skizzier-Modus starten (866 mal gelesen)
MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


Sehen Sie sich das Profil von MICHLICK an!   Senden Sie eine Private Message an MICHLICK  Schreiben Sie einen Gästebucheintrag für MICHLICK

Beiträge: 454
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 29. Jan. 2007 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, ich habe ein Makro geschrieben, dass ich im Skizzier-Modus starte.
Es wird dann im Skizzierer Geometrie erzeugt. Das Ganze funktioniert prinzipell schon ganz gut. Leider bin ich noch von ein paar Randbedingungen abhängig. Es muss immer die 1. Skizze im "PartBody" sein, sonst funktioniert es nicht.

Ich schaffe es leider nicht die Aktive Skizze unabhängig zu definieren. Ich hab da noch nicht die richtige Idee gehabt, wie das funktionieren könnte.

Wie kann ich Sketch1 so definieren, dass es immer die Skizze ist, in der ich mich befinde?

So sieht das bei mir jetzt aus:

Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("PartBody")
Set Sketches1 = body1.Sketches
Set Sketch1 = Sketches1.Item(1)
Set geometricElements1 = Sketch1.GeometricElements

------------------
Gruß Michael B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAMiCADse
Mitglied



Sehen Sie sich das Profil von CAMiCADse an!   Senden Sie eine Private Message an CAMiCADse  Schreiben Sie einen Gästebucheintrag für CAMiCADse

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 29. Jan. 2007 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MICHLICK 10 Unities + Antwort hilfreich

Hallo Michael,

wenn du den Sketcher geöffnet hast, dann ist dein Sketch ja "in Bearbeitung", also im Baum unterstrichen. Da kommst du so dran:

Set Sketch1 = part1.InWorkObject

oder über Item und String:

Set Sketch1 = Sketches1.item(part1.InWorkObject.Name)


Gruß
CAMiCADse

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


Sehen Sie sich das Profil von MICHLICK an!   Senden Sie eine Private Message an MICHLICK  Schreiben Sie einen Gästebucheintrag für MICHLICK

Beiträge: 454
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 06. Feb. 2007 09:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo CAMiCADse

gute Lösungen sind oft so einfach. Die erste Zeile ist perfekt. Genau das was ich brauche.

Jetzt ergibt sich nur noch ein Folgeproblem. Mein Makro funktioniert jetzt einwandfrei wenn die Skizze in einem Body erzeugt wird. Wenn die skizze allerdings in einem hybridbody erzeugt wird laufe ich auf einen Fehler.

Hat jemand eine Idee wie man das Problem sauber lösen kann?

P.S. Für die Antwort von CAMiCADse gibts natürlich 10

------------------
Gruß Michael B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAMiCADse
Mitglied



Sehen Sie sich das Profil von CAMiCADse an!   Senden Sie eine Private Message an CAMiCADse  Schreiben Sie einen Gästebucheintrag für CAMiCADse

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 06. Feb. 2007 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MICHLICK 10 Unities + Antwort hilfreich

Hallo Michael,

hab das gerade mal ausprobiert. In diesem Fall gibt InWorkObject ja leider den HybridBody zurück, und nicht den Sketch

Da ist kein Problem, wenn nur 1 Sketch existiert --> HybridBody.HybridSketches.item(1)

Wenn mehrere Sketches darin liegen können, sehe ich da auf die schnelle keine saubere Lösung.
Wenn's unsauber auch tut , kannst du evtl. folgendes probieren:

Schleife über all Sketches innerhalb des Hybridbody.
Mit On Error Resume Next versuchen einen Punkt im aktuellen Sketch zu erzeugen.
Schlägt ein Fehler auf (err.number<>0) --> sketch ist nicht der geöffnete Sketch --> weiter zum nächsten
Schlägt kein Fehler auf, ist es der aktuell geöffnete Sketch. Dann den Punkt wieder löschen und weiter im Script...

Gruß
CAMiCADse

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


Sehen Sie sich das Profil von MICHLICK an!   Senden Sie eine Private Message an MICHLICK  Schreiben Sie einen Gästebucheintrag für MICHLICK

Beiträge: 454
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 08. Feb. 2007 08:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo CAMiCADse

für die unsaubere Lösung habe ich einen anderen Vorschlag.

Mir gefällt Deine erste Zeile besser. Problem hier - je nach definition - wenn der Sketch nicht in dem Body/HybridBody liegt wie definiert, bekomme ich einen Fehler.
Wenn ich den Fehler bekomme definiere ich eben die 2. Möglichkeit. Wenn ich da dann auch einen Fehler bekomme?  - Abbruch -.

Vielleicht gibt es aber auch zu diesem Problem eine elegante Lösung.

------------------
Gruß Michael B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Legat
Mitglied



Sehen Sie sich das Profil von Legat an!   Senden Sie eine Private Message an Legat  Schreiben Sie einen Gästebucheintrag für Legat

Beiträge: 30
Registriert: 18.05.2006

erstellt am: 22. Feb. 2007 20:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MICHLICK 10 Unities + Antwort hilfreich

Hallo,

wäre es auch möglich das Makro nicht im Sketch zu starten, sondern einfach eine Selektion auf den zu bearbeitenden Sketch zu machen?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz