Ciao Thomas, sempre se ho capito quello che ti serve, prova questo script Python:
# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs
def flip_curve_if_needed(curve_id, click_point):
param = rs.CurveClosestPoint(curve_id, click_point)
point_on_curve = rs.EvaluateCurve(curve_id, param)
start_point = rs.CurveStartPoint(curve_id)
end_point = rs.CurveEndPoint(curve_id)
dist_to_start = rs.Distance(point_on_curve, start_point)
dist_to_end = rs.Distance(point_on_curve, end_point)
if dist_to_end < dist_to_start:
rs.ReverseCurve(curve_id)
def main():
while True:
curve_id = rs.GetObject("Seleziona una curva", rs.filter.curve)
if not curve_id:
return
if not rs.IsCurve(curve_id):
print("L'oggetto selezionato non è una curva.")
continue
click_point = rs.GetCursorPos()[0]
flip_curve_if_needed(curve_id, click_point)
rs.UnselectAllObjects()
rs.SelectObject(curve_id)
rs.Command("_Pipe")
break
if __name__ == "__main__":
main()