Product : Engine, Version : 4.x, ArticleID : 41023415

HowTo : CmdExtend with line and circle

Article41023415
TypeHowTo
ProductEngine
Version4.x
Date Added1/28/2004
Submitted byMario Pellegrino
Keywords

Subject

CmdExtend with line and circle

Summary

How to extend a line for example to a circle using CmdExtends?

Solution

See the Visual basic sample code below :

   Dim CerchioTmp As vdCircle
   Dim LineaTmp As vdLine
   Dim PointTMP As vdxyzlist
   Dim RetTmp As Boolean
   Dim extpoint As Variant
   Dim intpoint As Variant
   
   Set PointTMP = VDPro1.CreateInstance(OBJ_XYZLIST)
   VDPro1.ActiveDocument.New
   Set CerchioTmp = VDPro1.ActiveDocument.Entities.AddCircle(Array(133.1662479, 50), 56)
   CerchioTmp.Invalidate
   Set LineaTmp = VDPro1.ActiveDocument.Entities.AddLine(Array(100, -4), Array(0, -4))
   LineaTmp.Invalidate
   VDPro1.CommandAction.Zoom "E", 0, 0
   PointTMP.Value = LineaTmp.IntersectWith(CerchioTmp, VdIntExtendThis) 'Seek for intersection points
   If IsEmpty(PointTMP) Then Exit Sub
   
   intpoint = PointTMP(0).Value
   extpoint = LineaTmp.EndPoint
   If VDPro1.Utility.geomDistance(LineaTmp.StartPoint, intpoint) < VDPro1.Utility.geomDistance(LineaTmp.EndPoint, intpoint) Then
   'Check if the line startpoint is closer to intersection point than endpoint or not
      extpoint = LineaTmp.StartPoint
   End If
      RetTmp = VDPro1.CommandAction.CmdExtend(CerchioTmp, Array(LineaTmp, VDPro1.Utility.geomMidPoint(LineaTmp.StartPoint, extpoint)))
   Set CerchioTmp = Nothing
   Set LineaTmp = Nothing