It seems doesnt working too. my code is as follows. It still makes it vertical
import rhinoscriptsyntax as rs
import scriptcontext
import Rhino
import System
def TestAddLinearDimension(base_plane, start_point, end_point, point_on_dimension_line):
plane = rs.coerceplane(base_plane, True)
start = rs.coerce3dpoint(start_point, True)
end = rs.coerce3dpoint(end_point, True)
onpoint = rs.coerce3dpoint(point_on_dimension_line, True)
success, s, t = plane.ClosestParameter(start)
start = Rhino.Geometry.Point2d(s,t)
success, s, t = plane.ClosestParameter(end)
end = Rhino.Geometry.Point2d(s,t)
success, s, t = plane.ClosestParameter(onpoint)
onpoint = Rhino.Geometry.Point2d(s,t)
ldim = Rhino.Geometry.LinearDimension(plane, start, end, onpoint)
if not ldim: return scriptcontext.errorhandler()
ldim.Aligned = True
rc = scriptcontext.doc.Objects.AddLinearDimension(ldim)
if rc==System.Guid.Empty: raise Exception(“unable to add dimension to document”)
scriptcontext.doc.Views.Redraw()
return rc
origin = [0, 0, 0]
xaxis = [0, 1, 0]
yaxis = [-1, 0, 0]
plane = rs.PlaneFromFrame(origin, xaxis, yaxis)
dim0=[1.2,56.3,0]
dim1=[-2.1,16.4,0]
dim2=[46.0,36.0,0]
TestAddLinearDimension(plane, dim0, dim1, dim2 )
c2=rs.GetCurveObject(“CL”)
for i in range(100):
k=rs.GetObject(“Mal?”,preselect=True)
if k:
pt=rs.CurveAreaCentroid(k)
rs.AddPoint(pt[0])
nokta=rs.CurveClosestPoint(c2[0],pt[0])
nokta=rs.EvaluateCurve(c2[0],nokta)
rs.AddPoint(nokta)
nere=(nokta+pt[0])/2
nere[0]=nere[0]-100
TestAddLinearDimension(rs.WorldXYPlane(),nokta,pt[0],nere)
else:
break