ConstantWidth Example



Your Ad Here

Using Programming Languages other than VBA

Sub Example_ConstantWidth()
     ' This example creates a lightweight polyline in model space and
     ' uses the ConstantWidth property to determine if the polyline comprises
     ' equal width segments.  If the segments are not equal,
     ' use the ConstantWidth property to set all the segments to the same
     ' width.
    
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 9) As Double
    Dim msg As String, CWidth As Double
    
    ' Define the 2D polyline points
    points(0) = 1: points(1) = 1
    points(2) = 1: points(3) = 2
    points(4) = 2: points(5) = 2
    points(6) = 3: points(7) = 2
    points(8) = 4: points(9) = 4
        
    ' Create a lightweight Polyline object in model space
    '
    ' * Note: Return the new PolyLine object into a Module
    ' level variable, which allows events associated
    ' with that particular object to be intercepted.
    Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    ThisDrawing.Application.ZoomAll
    
    ' Display segment information before altering the width of segment 1
    GoSub DISPLAYSEGMENTS
    
    ' Set the first segment width
    plineObj.SetWidth 1, 0.1, 0.3
    ThisDrawing.Regen acAllViewports
    
    ' Display segment information after altering the width of segment 1
    GoSub DISPLAYSEGMENTS
    
    ' Make all segments uniform in width
    plineObj.ConstantWidth = 0.1
    ThisDrawing.Regen acAllViewports
    
    ' Display segment information after making the segments uniform
    GoSub DISPLAYSEGMENTS
    
    Exit Sub
    
DISPLAYSEGMENTS:
    On Error Resume Next
    
    ' Check to see if the segment widths are uniform
    CWidth = plineObj.ConstantWidth
    
    ' If ConstantWidth returns an error, the
    ' segments are not all the same width
    If Err.Description = "Invalid input" Then
        msg = " are not equal."
    Else
        msg = " are all equal."
    End If
    On Error GoTo 0
    
    MsgBox "The segments of the new polyline" & msg
    
    Return
End Sub

 
   Comments? 

Return to Autodesk Index


Your Ad Here