Continue to Site

Welcome to MCAD Central

Join our MCAD Central community forums, the largest resource for MCAD (Mechanical Computer-Aided Design) professionals, including files, forums, jobs, articles, calendar, and more.

Getting Coordinates of Point

Nuri

New member
Hi,


I would like to know how can we get the coordinates of a point from a part drawing automatically through the use of solidworks macro.


Currently, I got this macro:
<DIV = itxtNodeId="121" itxtHarvested="0">Private Sub SurfPoint()<BR itxtNodeId="165">Dim swApp As SldWorks.SldWorks<BR itxtNodeId="164">Dim swDoc As SldWorks.ModelDoc2<BR itxtNodeId="163">Dim SelMgr As SldWorks.SelectionMgr<BR itxtNodeId="162">Dim NumSelects As Long<BR itxtNodeId="161">Dim SelectedObj As Object<BR itxtNodeId="160">Dim PickPoint As Variant<BR itxtNodeId="159">Dim StickPoint As Variant<BR itxtNodeId="158">Dim sMsg As String<BR itxtNodeId="157">Dim UnitFactor As Double<BR itxtNodeId="156"><BR itxtNodeId="155">UnitFactor = 1000 'Get from m to mm<BR itxtNodeId="154"><BR itxtNodeId="153">Set swApp = Application.SldWorks<BR itxtNodeId="152">Set swDoc = swApp.ActiveDoc<BR itxtNodeId="151">Set SelMgr = swDoc.SelectionManager<BR itxtNodeId="150"><BR itxtNodeId="149">NumSelects = SelMgr.GetSelectedObjectCount<BR itxtNodeId="148">If NumSelects = 0 Then<BR itxtNodeId="147">MsgBox "Pick a surface and run macro again"<BR itxtNodeId="146">Exit Sub<BR itxtNodeId="145">End If<BR itxtNodeId="144"><BR itxtNodeId="143"><BR itxtNodeId="142">Set SelectedObj = SelMgr.GetSelectedObject(NumSelects)<BR itxtNodeId="141">PickPoint = SelMgr.GetSelectionPoint2(NumSelects, -1)<BR itxtNodeId="140">If SelMgr.GetSelectedObjectType3(NumSelects, -1) = 2 Then<BR itxtNodeId="139">sMsg = "X: " & Str(PickPoint(0) * UnitFactor) & vbCrLf & _<BR itxtNodeId="138"> "Y: " & Str(PickPoint(1) * UnitFactor) & vbCrLf & _<BR itxtNodeId="137"> "Z: " & Str(PickPoint(2) * UnitFactor)<BR itxtNodeId="136">MsgBox sMsg<BR itxtNodeId="135">Else<BR itxtNodeId="134">MsgBox "You must select a surface"<BR itxtNodeId="133">End If<BR itxtNodeId="132"><BR itxtNodeId="131"><BR itxtNodeId="130"><BR itxtNodeId="129"><BR itxtNodeId="128">Set SelectedObj = Nothing<BR itxtNodeId="127">Set SelMgr = Nothing<BR itxtNodeId="126">Set swDoc = Nothing<BR itxtNodeId="125">Set swApp = Nothing<BR itxtNodeId="124"><BR itxtNodeId="123">End Sub</DIV>
<DIV = itxtNodeId="121" itxtHarvested="0"></DIV>
<DIV = itxtNodeId="121" itxtHarvested="0"></DIV>
<DIV = itxtNodeId="121" itxtHarvested="0"></DIV>
<DIV = itxtNodeId="121" itxtHarvested="0">However, instead of picking a surface everytime I want to know a coordinate, I would like to click a point and run it automatically instead. </DIV>
<DIV = itxtNodeId="121" itxtHarvested="0"></DIV>
<DIV = itxtNodeId="121" itxtHarvested="0">Thank you for your help!</DIV>
 

Sponsor

Articles From 3DCAD World

Back
Top