| |
| Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
|
Autor
|
Thema: Punkt an geschlossene Curve (1011 mal gelesen)
|
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 28. Mai. 2018 15:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich bin gerade bei ein Makro, welsches mehrere Punkte an geschlossene Curve Generierst. Einfache Code: Code:
Sub xStart() Dim oCurve As HybridShapeCurveExplicit Dim oRef As Reference Dim oPoint As HybridShapePointOnCurve Dim oHSF As HybridShapeFactory Dim oSel As Selection Set oSel = CATIA.ActiveDocument.Selection Dim sInput As Double Dim sStatus As String ReDim strArray(0) strArray(0) = "HybridShapeCurveExplicit" Dim oPart As Part Dim oHybridbody As HybridBody Dim dSel Dim lStep As Double Set oPart = CATIA.ActiveDocument.Part Set oHSF = oPart.HybridShapeFactory Set dSel = oSel sInput = InputBox("Wie viel Punkte möchtest du?", "Punkt_Anzahl", 100) sStatus = dSel.SelectElement3(strArray, "Nimmt ein Curve", False, CATMultiSelTriggWhenUserValidatesSelection, False) oPart.HybridBodies.Add oPart.HybridBodies.Item(oPart.HybridBodies.Count).Name = "Result" Set oHybridbody = oPart.HybridBodies.Item("Result") lStep = 1 / sInput For i = 1 To oSel.Count Set oCurve = dSel.Item(i).Value Set oRef = dSel.Item(i).Value A = 1 Do While lStep <= 1 Set oPoint = oHSF.AddNewPointOnCurveFromPercent(oRef, lStep, True) oHybridbody.AppendHybridShape oPoint oPoint.Name = "Point." & A lStep = lStep + lStep A = A + 1 Loop Next oPart.Update End Sub
Aber Catia sagt mir ein Fehler schon bei erstem Punkt: Kann mir jemand sagen, was habe ich falsch gemacht? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 28. Mai. 2018 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 28. Mai. 2018 15:50 <-- editieren / zitieren --> Unities abgeben:
|
89marbru Mitglied
Beiträge: 25 Registriert: 13.06.2016 Catia V5R21 Windows 7 catvba
|
erstellt am: 28. Mai. 2018 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Hi, vllt klappt folgender Workaround für dich. Du kannst mittels Makro einen neuen Punkt im globalen Koordinatensystem erstellen z.B. x=0 y=0 und z=0 Jetzt kannst du einen Punkt auf die geschlossene Linie setzen, wenn du den erstellen Punkt (0/0/0) oben als Referenz angibst und davon dann das Makro aufbaust Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference1, reference2, 22.786, False) Wenn du einen Punkt auf der Linie hast, kannst von dem aus die weiteren mit deinem Befehl von oben erstellen. [Diese Nachricht wurde von 89marbru am 28. Mai. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 28. Mai. 2018 20:53 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von 89marbru: Hi,vllt klappt folgender Workaround für dich. Du kannst mittels Makro einen neuen Punkt im globalen Koordinatensystem erstellen z.B. x=0 y=0 und z=0 Jetzt kannst du einen Punkt auf die geschlossene Linie setzen, wenn du den erstellen Punkt (0/0/0) oben als Referenz angibst und davon dann das Makro aufbaust Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference1, reference2, 22.786, False) Wenn du einen Punkt auf der Linie hast, kannst von dem aus die weiteren mit deinem Befehl von oben erstellen. [Diese Nachricht wurde von 89marbru am 28. Mai. 2018 editiert.]
Das kann klappen, aber ich habe Angst, das den Referenzpunkt muss auch auf der Curve liegen... Ich versuche das Morgen und melde ich zuruck... Sorry fuer mein schlechtes Deitsch 😉 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Mai. 2018 09:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Nur zur Info: Ich habe das so gelöst, das ich habe mit Selektion jedes Edge vom geschlossene Curve gefunden, und das als Reference genuztz. Dann mit einfache Loop mit jede 10% Edge-Länge ein Punkt erstellt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |