@rhinoceros.adv wrote:
Hi everybody
I am having a problem.import rhinoscriptsyntax as rs import scriptcontext as sc import Rhino def GetOffsetMidpoints(pl_ID,dist,plane): #get offset figure and offset points bb=rs.BoundingBox(pl_ID) xform=rs.XformScale(1.1,(bb[0]+bb[2])/2) bb=rs.PointArrayTransform(bb,xform) pl=rs.coercecurve(pl_ID) sharp=Rhino.Geometry.CurveOffsetCornerStyle.Sharp off_pl=pl.Offset(bb[2],plane.Normal,dist,sc.doc.ModelAbsoluteTolerance,sharp) if off_pl: segs=off_pl[0].DuplicateSegments() mids=[(seg.PointAtStart+seg.PointAtEnd)/2 for seg in segs] return mids #closed planar polyline filter def pl_filt(rhino_object, geometry, component_index): return rs.IsPolyline(geometry) and rs.IsCurveClosed(geometry) and rs.IsCurvePlanar(geometry) def DimClosedPolylines2(): msg="Select polylines to dimension" pl_IDs=rs.GetObjects(msg,4,preselect=True,custom_filter=pl_filt) if not pl_IDs: return dist=rs.GetReal("Distance to offset?",5,0) if dist is None: return rs.EnableRedraw(False) dimStyle = CreateDimStyle(dist) #Create a DimStyle for pl_ID in pl_IDs: verts=rs.PolylineVertices(pl_ID) opts=GetOffsetMidpoints(pl_ID,dist,rs.CurvePlane(pl_ID)) if opts: #checksum in case offset went wrong if len(opts)+1==len(verts): for i in range(len(verts)-1): dim = rs.AddAlignedDimension(verts[i],verts[i+1],opts[i],dimStyle) def CreateDimStyle(textHeight): dimStyle_name = "MyDim" dimStyle = rs.AddDimStyle(dimStyle_name) rs.DimStyleTextHeight(dimStyle,textHeight) rs.DimStyleArrowSize(dimStyle,textHeight) return dimStyle DimClosedPolylines2()
Posts: 3
Participants: 2