GetWidth Example |
Using Programming Languages other than VBA
Sub Example_GetWidth() ' The following code prompts you to select a lightweight ' polyline, then displays the width of each segment of the ' selected polyline. Dim returnObj As AcadObject Dim basePnt As Variant Dim retCoord As Variant Dim StartWidth As Double Dim EndWidth As Double Dim i, j As Long Dim nbr_of_segments As Long Dim nbr_of_vertices As Long Dim segment As Long Dim message_string On Error Resume Next ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select a polyline" ' Make sure the user selected a polyline. If Err <> 0 Then If returnObj.EntityName <> "AcDbPolyline" Then MsgBox "You did not select a polyline" End If Exit Sub End If ' Obtain the coordinates of each vertex of the selected polyline. ' The coordinates are returned in an array of points. retCoord = returnObj.Coordinates segment = 0 i = LBound(retCoord) ' Start index of coordinates array j = UBound(retCoord) ' End index of coordinates array nbr_of_vertices = ((j - i) \ 2) + 1 ' Number of vertices in the polyline ' Determine the number of segments in the polyline. ' A closed polyline has as many segments as it has vertices. ' An open polyline has one fewer segment than it has vertices. ' Check the Closed property to determine if the polyline is closed. If returnObj.Closed Then nbr_of_segments = nbr_of_vertices Else nbr_of_segments = nbr_of_vertices - 1 End If ' Get the width of each segment of the polyline Do While nbr_of_segments > 0 ' Get the width of the current segment returnObj.GetWidth segment, StartWidth, EndWidth message_string = "The segment that begins at " & retCoord(i) & "," & retCoord(i + 1) _ & " has a start width of " & StartWidth & " and an end width of " & EndWidth MsgBox message_string, , "GetWidth Example" ' Prepare to obtain width of next segment, if any i = i + 2 segment = segment + 1 nbr_of_segments = nbr_of_segments - 1 Loop End Sub
Comments? |