Es handelt sich hier um eingelesene Messpunkte über eine Excel-Tabelle. Diese sollen jetzt an einer gekrümmten Referenzebene "gespiegelt" werden.
D.h.: (für einen Punkt gesehen)
1. den Punkte auf die Fläche projezieren
2. diese beiden Punkte(eingelesen und projeziert) dann mit einer Geraden verbinden (Normale erstellen)
3. diese Gerade(Normale) um den Betrag der Geraden auf die andere Seite der Ebene bringen und dort einen Punkt erzeugen.
Im Anhang ist nochmal eine grobe Skizze: Rot ist die Ebene, Blau die Punkte und die grünen Pfeile stellen die Richtung da.
Hier noch der Makro-Code von der Aufzeichnung:
----------------------------------------------------------
Language="VBSCRIPT"
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridBodies1 = part1.HybridBodies
Set hybridBody1 = hybridBodies1.Item("Eingelesene Punkte aus \\zw-emc-e\usr\hho\Eigene Dateien\P12F5000334\cvs_121119\2000C13_121119.csv")
Set hybridShapes1 = hybridBody1.HybridShapes
Set hybridShapePointCoord1 = hybridShapes1.Item("Point.929")
Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)
Set hybridShapeOffset1 = hybridShapes1.Item("Offset.21")
Set reference2 = part1.CreateReferenceFromObject(hybridShapeOffset1)
Set hybridShapeProject1 = hybridShapeFactory1.AddNewProject(reference1, reference2)
hybridShapeProject1.SolutionType = 0
hybridShapeProject1.Normal = True
hybridShapeProject1.SmoothingType = 0
Set hybridBody2 = hybridBodies1.Item("Punkte_Spiegeln")
hybridBody2.AppendHybridShape hybridShapeProject1
part1.InWorkObject = hybridShapeProject1
part1.Update
Set reference3 = part1.CreateReferenceFromObject(hybridShapePointCoord1)
Set reference4 = part1.CreateReferenceFromObject(hybridShapeProject1)
Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference3, reference4)
hybridBody2.AppendHybridShape hybridShapeLinePtPt1
part1.InWorkObject = hybridShapeLinePtPt1
part1.Update
Set reference5 = part1.CreateReferenceFromObject(hybridShapeProject1)
Set reference6 = part1.CreateReferenceFromObject(hybridShapeLinePtPt1)
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference6)
Set hybridShapeLinePtDir1 = hybridShapeFactory1.AddNewLinePtDir(reference5, hybridShapeDirection1, 0.000000, 0.319000, False)
hybridBody2.AppendHybridShape hybridShapeLinePtDir1
part1.InWorkObject = hybridShapeLinePtDir1
part1.Update
Set reference7 = part1.CreateReferenceFromObject(hybridShapeLinePtDir1)
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveFromDistance(reference7, 0.319000, False)
hybridShapePointOnCurve1.DistanceType = 1
hybridBody2.AppendHybridShape hybridShapePointOnCurve1
part1.InWorkObject = hybridShapePointOnCurve1
part1.Update
End Sub
------------------------------------------
Ich hoffe Ihr versteht was ich meine?
[Diese Nachricht wurde von haannsmaann am 05. Dez. 2012 editiert.]
[Diese Nachricht wurde von haannsmaann am 05. Dez. 2012 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP