Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  verknüpfte Skizzen und Breps funktionieren nicht

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co.
  
KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
Autor Thema:  verknüpfte Skizzen und Breps funktionieren nicht (1583 mal gelesen)
noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 23. Jan. 2009 16:17    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,
vielleicht hat einer schonmal dieses Problem gehabt, obwohl ich zugebe es ist etwas speziell:
Ich habe in einem Catpart mehrere (das ist wichtig) Skizzen, die über eine Veröffentlichung und als "Ergebnis mit Verknüpfung" eingefügt wurden.
In den Skizzen befinden sich mehrere Punkte, auf die ich mich beziehen möchte, z.B. eine Linie von einem Punkt zum anderen ziehen.
Erstelle ich nun ein Makro über den Rekorder, dann sieht das so aus:
Code:

Sub CATMain()
Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Item("Part2.CATPart")
Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridBodies1 = part1.HybridBodies
Set hybridBody1 = hybridBodies1.Item("Externe Verweise")
Set sketches1 = hybridBody1.HybridSketches
Set sketch1 = sketches1.Item("Skizze.39")
Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.39;(Brp:(Datum.1;%3)));None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelecti ngFeatureSupport;MFBRepVersion_CXR15)", sketch1)
Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.39;(Brp:(Datum.1;%1)));None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelecti ngFeatureSupport;MFBRepVersion_CXR15)", sketch1)
Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference1, reference2)
Set hybridBody2 = hybridBodies1.Item("Geometrisches Set.6")
hybridBody2.AppendHybridShape hybridShapeLinePtPt1
part1.InWorkObject = hybridShapeLinePtPt1
part1.Update
End Sub

Darin befinden sich die üblichen Befehle, um die Punkte als BREP anzusprechen. Lässt man das Makro laufen, so tritt ein Fehler bei dem update auf, weil er die Scheitelpunkte nicht mehr erkennt.

Wenn man nur eine verknüpfte Skizze oder normale Skizzen in der Datei hat läuft alles. Auch wenn man einige der verknüpften Skizzen isoliert (tot macht) ist alles i.O. Aber sobald man mehr als eine verknüpfte Skizze hat ist es vorbei mit der Brep-Erkennung der Punkte, bzw. es geht nur mit der ersten Skizze. Das "geht" mit R16,R17,R18,R19 schön konsequent.

Jemand eine Idee?

Vielen Dank für Eure Antworten.

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

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 24. Jan. 2009 19:15    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

nach weiteren Recherchen denke ich, dass irgendetwas an der Syntax des BREP-Strings von Catia falsch aufgezeichnet wird. Hat vielleicht jemand die CAA-Anleitung über die Breps zur Hand und kann mal schauen, wie man mit solchen gelinkten Sketches umgehen muss?

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

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 26. Jan. 2009 11:06    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 noir333 10 Unities + Antwort hilfreich

Ja, der Rekorder zeichnet manchmal die BRep's falsch auf, das muss man dann mit Hand korrigieren. Da ich gerade kein VB da habe kann ich's leidern icht testen.

Aber überprüf mal ob die Namen auch alle noch Stimmen also Sketch.39 und so. Meist ist aber der hintere Teile des BRep's falsch oder zu lang.

Mit den veräffentlichungen ist das immer ein Problem, was mir leider auch schon oft untergekommen ist.
Sprichst du die Punkte direkt in der Skizze an, oder im Part-Design?
Wahrscheinlich im PartDesign.
Und über die Namen kannst du nicht gehen?

Ich schau's mir heute Abend nochmal an

------------------
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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 26. Jan. 2009 12:57    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 Lila,

so falsch ist der String halt auch nicht.
hier der Vergleich, String für Punkt in verknüpfter Skizze:

Code:

Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.39;(Brp:(Datum.1;%1)));None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelecti ngFeatureSupport;MFBRepVersion_CXR15)", sketch1)

nach dem isolieren:

Code:

Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.39;(Brp:(Sketch.39_Datum.1;%1)));None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;W ithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1)

Einziger Unterschied ist "Sketch.39_Datum.1" anstelle von "Datum.1". Leider funktionieren beide Makros nicht bei der verknüpften Skizze. Oder doch: Sobald nur noch eine verknüpfte Skizze in dem CATPart ist läuft alles problemlos. So falsch ist die Syntax also nicht!

Durch die verknüpften Skizzen kann ich leider nicht auf die Punkte einzeln zurückgreifen, da in der verknüpften Skizze ja anstelle der Geometrie nur ein "Kopieren.2" steht, wo alle geometrischen Elemente drin sind.

Vielen Dank für Deine Mühe.

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

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 26. Jan. 2009 21:31    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 noir333 10 Unities + Antwort hilfreich

Hm... meien alten Makros sind leider alle in catvbs, so dass ich sie nicht ohne CATIA öffnen kann.

Aber du scheinst sowieso schon weiter zu sein. 

Also wenn ich das Makro richtig interpretiere gehst du sowieso nur auf den Sketch.39 los, also den 39. erstellten Sketch im Part.

Könntest du mal so ein Part erstellen und dann im VBA (also catvba nicht CATScript) selektieren, was du benötigst und dann die Reference aus der Selektion auslesen und vergleichen, was dein Makro dynamisch ermittelt hat mit dem, was es sein sollte?

Wär doch gelacht, wenn man das nicht dynamisch zusammen bauen könnte...

Bei meinem alten Arbeitgeber gab es einige Bücher über CATIA-Programmierung in einem stand leicht verständlich (im Vergleich zu garnicht  ) drin, wie sich so ein BRep zusammen setzt. Ich glaube es war das von Dieter R. Ziethen, aber auch das vom Herrn Hansen ist sehr gut (ich weiß jetzt aber nicht, ob da auch sowas drin seht).

------------------
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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 27. Jan. 2009 19: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 Lila,

eigentlich komme ich auf die Problemstellung, weil ich in VB.Net ein Programm zum Erzeugen von Gewindebohrungen geschrieben habe. Dabei selektiert man einen Punkt, ich werte die Selektion aus und baue den String für den BREP zusammen. Das funktioniert prächtig, bis zu der Stelle, wo man mehr als eine verknüpfte Skizze hat. Weil ich dort Fehlermeldungen bekam, habe ich ausprobiert, ob der string ok ist und mal ein Makro aufgezeichnet. Leider kommt da dieselbe Fehlermeldung.

Ich glaube zwar nicht, dass die Bücher weiterhelfen, werde aber morgen mal reinschauen.

Ich befürchte, dass es ein Bug in Catia ist, weil der Fehler ja nur auftritt, wenn man mehrere verknüpfte Skizzen hat.

Hast Du noch eine Idee, was ich ausprobieren kann?

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

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 28. Jan. 2009 13:54    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 noir333 10 Unities + Antwort hilfreich

Warum musst du den BRep zusammen bauen, wenn der entsprechende Punkt schon in der Selektion ist?
Bau mal im CATIA den Punkt so nach, wie du ihn selektieren möchtest mit einem zusammengbeauten BREP, selektier ihn, lies dort das BRep aus und vergleich beide.

Hatte mal einen ähnlichen Fehler fällt mir gerade ein, der aber darauf hinaus lief, dass ich vorher ein Element nicht ganz korrekt, wie es CATIA haben wollte erzeugt hatte. Also einen Vertex, den ich 2x vom gleichen BRep erzeugen wollte, irgendwie und beim ersten mal klappte es und sobald so ein erzeugtes Element drin war dann nicht mehr. Meien Frage also: Sind alle Elemente im CATIA zur laufzeit richtig erzeugt?

------------------
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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 28. Jan. 2009 22:11    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 Lila,
ja das ist eine gute Frage, warum den Brep zusammen bauen, wenn man den Punkt schon in der Selection hat. Man kann doch mit

reference1=selection.item(1).reference

die Referenz direkt erzeugen. Komischerweise kann man mit so einer Referenz nicht alle Operationen ausführen. Wenn man damit versucht eine Bohrung an einem Punkt zu erzeugen, dann geht das nicht, erstaunlicherweise.

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

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 28. Jan. 2009 23:17    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 Lila,
Du hast mich auf eine Idee gebracht. Der Bug in Catia mit den Breps bleibt zwar, aber ich habe eine andere Lösung gefunden:
Wie oben beschrieben, kann man mit den Referenzen aus selection.item(1).reference nicht direkt eine Bohrung erzeugen mit AddNewHoleFromRefPoint(ref1, ref2, 10). Warum nicht ist mir schleierhaft. Deswegen war ich über die BREPs gegangen. Jetzt erzeuge ich zunächst die Bohrung an beliebiger Stelle und setze anschließend die Bohrung in der Skizze mit constraints an die richtige Stelle. Das geht erstaunlicherweise mit selection.item(1).reference.

Vielen Dank für Deine Anregungen.

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

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 30. Jan. 2009 09:42    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 noir333 10 Unities + Antwort hilfreich

*g* Lustig, dass du auch Bohnungen machst.

Also als ich mit dem Problem zu kämpfen hatte war das bei einem Makro welches die Bohnungen durch die Produktstruktur treibt, damit nicht in jedem part die Bohrung nochmal neu gemacht werden muss. Ich steiß da aber eben auf einen kleinen Unterschied zwischen den BReps, die die Selection liefert und denen die direkt übergeben werden, wenn ich es direkt ausführe und mir in der watch list anschaue. Blöd, dass ich hier keine Lizenz habe... 
Jedenfalls war es so ein geringer Unterschied, dass man den durch String-Operationen einfach austauschen konnte und es ging dann auch mit BReps. Deine Lösungsidee war mir garnicht gekommen, finde die aber gut.

------------------
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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 30. Jan. 2009 10:24    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 Lila,

ja, die String-Operationen sind nicht das Problem, damit habe ich schon einiges gemacht, und das geht immer irgendwie. Das Problem ist nur, wenn man aus dem Makrorekorder einen "defekten" String bekommt, weiß man ja nicht was er denn nun haben will. Wobei in diesem Fall der String glaube ich nicht "defekt" war, sondern CATIA aufgrund eines Bugs nicht in der Lage ist den richtig zu interpretieren. Sonst würden die Fehler ja nicht nur dann auftauchen, wenn eine zweite verknüpfte Skizze dazukommt!

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

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)2024 CAD.de | Impressum | Datenschutz