ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
CYChiao Yang Chang23/05/2018

I use the following code to get center coordinate of circle01 (C01) and circle02 (C02).

But the values are reference with part origin (see Fig1) rather than assembly origin (see Fig2).

There are two questions:

1. In the Measure Interface (see Fig3), there are no properties to get the center coordinate of cirle by selecting circle.

    But I can use Measure to get center coordinate with reference to assembly origin manually (see Fig2).

    How to use API like manual method in Fig2 ?

2. How to modify the following code to change the coordinate values with reference to assembly origin ?

    e.g. change C01(-130,130,330) in Fig1 to C01(-130,116,-208.5) in Fig2

【Code using VB.NET】

Private Sub btnGetCenterPt_Click(sender As Object, e As EventArgs) Handles btnGetCenterPt.Click

        swModel = swApp.ActiveDoc
        swDocExt = swModel.Extension
        swSelMgr = swModel.SelectionManager

        Dim swMeasure As IMeasure
        Dim swSel01, swSel02 As Object

      
        Dim swCurve01, swCurve02 As Curve
        swCurve01 = swSel01.GetCurve
        swCurve02 = swSel02.GetCurve

        Dim C01(6), C02(6) As Double
        Dim i As Long
        For i = 0 To 6
            C01(i) = swCurve01.CircleParams(i)
            C02(i) = swCurve02.CircleParams(i)
        Next
       
        MsgBox("C01  X= " & C01(0) * 1000 & ", C01  Y= " & C01(1) * 1000 & Chr(13) & "C02  X= " & C02(0) * 1000 & ", C02  Y= " & C02(1) * 1000)
End Sub

===================================================

Fig1

Q5.png

Fig2

Q3.png

Q4.png

Fig3

2018-05-23 16_59_04-API Help.png