Is there an Arc length dimension tool in Rhino?

Is there an Arc length dimension in Rhino? I have it in AC. Also a break tool for when dimension cross other dimensions? If not, WIP 8?

2 Likes

Assigned to Rhino category.

No Arc length command, but you can use a Leader and use the Crv length tool to get the length.

No break tool as described before. You can use the Mask on the annotation font and if the text is located over the dim line, it will break it.

Any clever way to do it in grasshopper ?!

thank you,
C.

I made this with ai haha. Limited testing.

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
import System

def CurveLengthLabel():
    # Function to get curve object
    def GetCurveObject():
        go = Rhino.Input.Custom.GetObject()
        go.SetCommandPrompt("Select curve to measure")
        go.GeometryFilter = Rhino.DocObjects.ObjectType.Curve
        go.Get()
        
        if go.CommandResult() != Rhino.Commands.Result.Success:
            return None
        
        curve_obj = go.Object(0)
        return curve_obj.Curve()
    
    # Get the curve
    curve = GetCurveObject()
    if curve is None:
        return
    
    # Calculate curve length
    curve_length = curve.GetLength()
    
    # Format length with appropriate precision
    length_text = "{:.2f}".format(curve_length)
    
    # Get point for text placement
    point = rs.GetPoint("Pick location for length label")
    if not point:
        return
    
    # Create text object
    text = "Length: " + length_text
    text_obj = rs.AddText(text, point)
    
    # Optional: Adjust text properties
    rs.TextObjectHeight(text_obj, 1.0)  # Corrected method name
    
    # Add to document
    sc.doc.Views.Redraw()
    
    return Rhino.Commands.Result.Success

# Register the command
if __name__ == "__main__":
    CurveLengthLabel()