Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Mal wieder ein Brp Problem

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:  Mal wieder ein Brp Problem (461 mal gelesen)
X-O
Mitglied
Student


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

Beiträge: 12
Registriert: 18.08.2009

Catia v5 r18
Windows XP

erstellt am: 12. Okt. 2009 22:47    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 zusammen, ich möchte einen Endpunkt einer vorher erzeugten Linie als referenz benutzen. Der Recorder zeichnet folgende Zeile auf:

Set reference82 = part1.CreateReferenceFromBRepName("BorderFVertex: (BEdge: (Brp: (Sketch.6;16);None: (Limits1: () ;Limits2: ();+1);Cf11: ()) ;WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch2)

Probleme macht mir das fett makierte. Wenn das Makro in einem anderen Part läuft (was fast komplett identisch ist), muss das Sketch.4 heißen. Ich weiß nicht, warum der Name dort anders ist, geschweige denn, woher dieser Name kommt. Im Ziethen habe ich gelesen, dass man dieses Sketch.6 dynamisch machen kann. So wie ich das verstehe, müsste das dann so aussehen:
" & part1.Sketch.Item(part1.Sketch.count) .Name & "

Leider klappt das nicht. Catia spuckt den Compelierungsfehler aus, das `)` Zeichen erwartet wird. Ich habe aber definitiv kein Klammerfehler gemacht. Also kann mir jemand sagen, woran das liegt. Und wie ich dieses Sketch.6 dynamisch bekomme?

 

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 13. Okt. 2009 00:05    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 X-O 10 Unities + Antwort hilfreich

Hallo,
müsste es nicht "Sketches.Item" heißen ??

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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

em Michael Kirsch
Mitglied
Teamleiter KBE Methoden & Tools


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

Beiträge: 222
Registriert: 21.10.2002

CATIA V5 R16
CATIA V5 R18
CATIA V5 R19
NX 5
NX 6
NX 7.5

erstellt am: 13. Okt. 2009 00:59    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 X-O 10 Unities + Antwort hilfreich

Hallo X-O,

leider sieht das API keine Liste aller Sketches direkt im Part-Objekt vor. Listen von Sketches bekommst Du nur über den jeweiligen Body oder das Geometrische Set, in dem die Sketch liegt, also z. B.

Code:
part1.HybridBodies.Item("Geometrical Set.1").Sketches.Count

Auf diese Weise solltest Du die Anzahl der Sketches in dem Body oder Geometrical Set erhalten.

Wahrscheinlich wird dieser Weg aber Dein Problem nicht lösen, denn Du suchst ja die Anzahl der Sketches insgesamt im Part. Diese könntest Du z. B. über eine Selection mit Suche bekommen, z. B.:

Code:
Dim MySelection As Selection
Set MySelection = part1.Parent.Selection

MySelection.Clear
MySelection.Search("'Part Design'.Sketch;all")
MySelection.Count


Dieser Weg setzt nun wieder voraus, dass die gesuchte Skizze auch wirklich die zuletzt erzeugte ist und dass inzwischen keine der zuvor eingefügten Skizzen entfernt wurden. Denn die an sechster Stelle erzeugte Skizze heißt immer noch Sketch.6, auch wenn Sketch.1 bis Sketch.5 wieder entfernt wurden. Die Methoden *.Sketches.Count bzw. *.Selection.Count würden nun aber wieder die Listengröße 1 liefern.

Fazit: B-Rep-Elemente sind absolut kritisch und per Makro-API eigentlich nicht robust zu greifen. Aber wenn Du den Endpunkt der Skizze brauchst, geht vielleicht dies hier:

Code:
part1.HybridShapeFactory.AddNewExtremum(MySketch, MyDirection, 1)

oder
Code:
part1.HybridShapeFactory.AddNewPointOnCurveFromPercent(MySketch, 1, true)

Hope that helps,

Michael Kirsch

------------------

www.em.ag

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