×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Macro for reading point locations
2

Macro for reading point locations

Macro for reading point locations

(OP)
Does anyone have a macro laying around that would query the  xyz coordinates of points in a 3d sketch and save them to a .txt or .csv file?

If you do I surely would appreciate a copy!

Regards,
Jon
jgbena@yahoo.com

RE: Macro for reading point locations

I have the opposite, points from XYZ.  Maybe you could (literally) reverse engineer it?

Someday, someone may kill you with your own gun, but they should have to beat you to death with it because it is empty.

RE: Macro for reading point locations

2
(OP)
Thanks for the offer but i figured it out!  In case anyone is intersted, here is the source code.  caution this program reads the points in order of creation so you may need to rearrange your data in excel if they are out of order!

instructions:
select the sketch that you wish to "read" and run the macro.
the macro will bring up excel and start filling the sheet with xyz point data.

Sub main()
Dim swApp As SldWorks.SldWorks
Dim doc As SldWorks.ModelDoc2
Dim part As SldWorks.PartDoc
Dim sm As SldWorks.SelectionMgr
Dim feat As SldWorks.feature
Dim sketch As SldWorks.sketch
Dim v As Variant
Dim i As Long
Dim sseg As SldWorks.SketchSegment
Dim sline As SldWorks.SketchLine
Dim sp As SldWorks.SketchPoint
Dim ep As SldWorks.SketchPoint
Dim s As String

Dim exApp As Excel.Application
Dim sheet As Excel.Worksheet

 Set exApp = New Excel.Application
 If Not exApp Is Nothing Then
  exApp.Visible = True
  If Not exApp Is Nothing Then
   exApp.Workbooks.Add
   Set sheet = exApp.ActiveSheet
   If Not sheet Is Nothing Then
    sheet.Cells(1, 2).Value = "X"
    sheet.Cells(1, 3).Value = "Y"
    sheet.Cells(1, 4).Value = "Z"
   End If
  End If
 End If
 
 Set swApp = GetObject(, "sldworks.application")
 If Not swApp Is Nothing Then
  Set doc = swApp.ActiveDoc
  If Not doc Is Nothing Then
   If doc.GetType = swDocPART Then
    Set part = doc
    Set sm = doc.SelectionManager
    If Not part Is Nothing And Not sm Is Nothing Then
     If sm.GetSelectedObjectType2(1) = swSelSKETCHES Then
      Set feat = sm.GetSelectedObject4(1)
      Set sketch = feat.GetSpecificFeature
      If Not sketch Is Nothing Then
       v = sketch.GetSketchPoints
       For i = LBound(v) To UBound(v)
        Set sp = v(i)
        If Not sp Is Nothing And Not sheet Is Nothing And Not exApp Is Nothing Then
         'sheet.Cells(2 + i, 1).Value = "Normal Vector " & i + 1
         sheet.Cells(2 + i, 2).Value = Round(sp.x * 1000 / 25.4, DEC)
         sheet.Cells(2 + i, 3).Value = Round(sp.y * 1000 / 25.4, DEC)
         sheet.Cells(2 + i, 4).Value = Round(sp.z * 1000 / 25.4, DEC)
         exApp.Columns.AutoFit
        End If
       Next i
      End If
     End If
    End If
   End If
  End If
 End If
End Sub

Regards,
Jon
jgbena@yahoo.com

RE: Macro for reading point locations

Thanks Jon, your macro was invaluable.
Paul

RE: Macro for reading point locations

Tick,

Would you mind posting your macro on the FAQ section.  I have a spreedsheet that spits out x & y points for gerotor geometry and want to read it into SWx.  My current MCAD program is Pro/e but I want to hone my SWx skills  thks


"Never underestimate the power of very stupid people in large groups." John Kenneth Galbraith

RE: Macro for reading point locations

For metric users (using mm) change

sheet.Cells(2 + i, 2).Value = Round(sp.x * 1000 / 25.4, DEC)
.....

by

sheet.Cells(2 + i, 2).Value = sp.x * 1000
.....

Regards

RE: Macro for reading point locations

(OP)
Ahh good point Mac...

And thanks Scott ;)

Regards,
Jon
jgbena@yahoo.com

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources