Quantcast
Channel: Scripting - McNeel Forum
Viewing all articles
Browse latest Browse all 4153

Fix dimstyle?

$
0
0

@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

Read full topic


Viewing all articles
Browse latest Browse all 4153