Autor
|
Thema: Startpunkt von geschlossener Kurve (2278 mal gelesen)
|
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 08. Dez. 2010 14:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, möchte einen Punkten auf eine Kurve(Randkurve von Fläche) erzeugen. Das funktioniert bei einer offenen Kurve z.B. mit: AddNewPointOnCurveFromPercent(Kurve, 0.5,True) Nun ist die Kurve aber geschlossen also brauche ich: AddNewPointOnCurveWithReferenceFromPercent(Kurve, Refpt,0.2,True) hier wieß ich leider nicht, wie ich einen Startpunkt ermitteln soll! Andere Möglichkeit: aus der geschlossenen Kurve eine offene machen, indem man da ein Stückchen wegschneidet - nur, wie geht das? Kann mir jemand einen Tip oder ein Beispiel geben? Danke. Gruß Bertel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 08. Dez. 2010 16:02 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Klingt für mich fast so als wäre dir egal wo der erzeugte Punkt liegt, hauptsache auf der Kurve. In dem Fall nimm einen Extrempunkt, den kannst du auch auf geschlossenen Kurven erzeugen. Sollte es doch nicht egal sein, erzeuge einen Extrempunkt und nimm diesen als Referenzpunkt für die bereits erwähnte Funktion. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 08. Dez. 2010 16:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Starbirth, danke für die Info. Das mit dem Extrempunkt klingt vielversprechend - nur, wie geht denn das? Die Doku schweigt sich darüber leider aus. "HybridShapeExtremum" habe ich gefunden - weiß aber nicht, wie ich es meinem CATScript sagen soll. Hast Du vielleicht ein Beispiel? Gruß Bertel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 08. Dez. 2010 17:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Starbirth, hab hier im Forum was gefunden - das funktioniert. Dim Ref1 As Reference Set Ref1 = Bauteil.CreateReferenceFromObject(HShapeEdge1) Dim Richtung As HybridShapeDirection Set Richtung = Wzk3d.AddNewDirectionByCoord(0,-100,-100) Dim iPoint As AnyObject Set iPoint = Wzk3d.AddNewExtremum(Ref1,Richtung,1) Nochmal Danke für den Tip. Gruß Bertel
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: 08. Dez. 2010 17:40 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
CATIA macht intern übrigens auch einen Extrempunkt. ------------------ 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 |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 09. Dez. 2010 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Den Code hast du ja schon, aber mal so als kleiner Tipp fürs nächste mal: Ich hab den Extrempunkt damals einfach über den Makrorecorder aufgezeichnet und wusste somit recht schnell wie alles auszusehen hat Funktioniert bei recht vielen, leider aber nicht allen, Funktionen. Und wenn das nicht läuft kann man immer noch die Doku wälzen. 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: 09. Dez. 2010 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Ich glaube im VBA kann man sogar einen Punkt auf einer Kurve mit Referenz-Punkt auf die Kurve erzeugen und erhält dann den entsprechenden 0-Punkt. also sprich .AddNewPointOnCurve(Kurve, Kuve,0.0) könnte auch funktionieren. Dann braucht man sich keine Gedanken um den Vektor für das Extremum machen. ------------------ 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 |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 20. Apr. 2011 10:47 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Hallo zusammen, Ich versuche auch einen Extrempunkt zu erstellen, auf einer Kurve, die zuvor vom Benutzer ausgewählt werden kann. Ihc denke ich habe die Inputs richtig definiert, bekomme aber trotzdem einen Felher bei der Vorletzten Zeile meines Codes: Code: Sub CATMain()Dim Document As Document Set Document = CATIA.ActiveDocument Dim MyPart As Part Set MyPart = Document.Part 'Auswahl definieren Dim Selection As Object Set Selection = CATIA.ActiveDocument.Selection Selection.Clear
'Filter definieren Dim Filter(0) Filter(0) = "Edge" ' Auswahl vornehmen lassen Dim E E = Selection.SelectElement2(Filter, "Wählen Sie eine Kurve aus", False) 'NAmen der Auswahl zuweisen
Dim k As String k = Selection.Item(1).Value.Name ' Referenz von der Auswahl erzeugen Dim ref1 As Reference Set ref1 = MyPart.CreateReferenceFromName(k) '-------------------------------------------------- ' Extremum erzeugen '--------------------------------------------------
Dim HBs As HybridBodies Set HBs = MyPart.HybridBodies Dim HB As HybridBody Set HB = HBs.Add HB.Name = "Extrempunkte" Dim HSFactory As HybridShapeFactory Set HSFactory = MyPart.HybridShapeFactory Dim Richtung As HybridShapeDirection Set Richtung = HSFactory.AddNewDirectionByCoord(0, 0, 1) Dim Point As HybridShapeExtremum Set Point = HSFactory.AddNewExtremum(ref1, Richtung, 1) HB.AppendHybridShape Point End Sub
Hat jemand eine Idee warum er mir den Punkt nicht erstellt?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 20. Apr. 2011 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Ich habe jetzt heraus gefunden, dass es funktioniert, wenn ich bei der Funktion AddNewExtremum ein Objekt statt einer Referenz einfüge. Aber warum? In der Doku steht, dass eine Referenz verlangt wird, und ich habe ein zweites Makro zum Test erstellt, bei dem funktioniert es auch mit einer Referenz... Meine zweite Frage ist: Ich habe als Filter "Edge" angegeben, dadurch kann ich alle Kanten und Linien selektieren genau wie ich es möchte. Wenn ich eine Kante einer Fläche auswähle funktioniert es einwandfrei. Wenn ich aber einen Extract einer solchen Kante auswähle bekomme ich eine Fehlermeldung, obwohl der Typ des Extracts mir ebenfalls als Edge angezeigt wird. Weiß da vll jemand Rat? 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: 26. Apr. 2011 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für Bertel
Ich vermute Deine Referenz ist schon defekt. :-) Manchmal ist die Doku aber auch einfach nur Falsch. Code:
MyPart.CreateReferenceFromName(k)
ist unnötig, da Du Code:
Selection.Item(1).Reference
machen kannst. Zu zweitens kann ich nur sagen: Du schreibst einfach viel zu allgemein. Wenn Du mehr Informationen hast, dann gib sie uns doch, wenn wir helfen sollen. Sprich: Was für eine Fehlermeldung? ------------------ 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 |