API: How to get custom props from model in drawing?

Discussion in 'SolidWorks' started by Fye, Feb 28, 2006.

  1. Fye

    Fye Guest

    Is there a way to automatically activate a view (doesn't matter which
    one), and get the custom properties of the model in that view through
    the API?

    If a view was pre-selected (to make things easier), how would I get the
    custom props of the model (in a SLDDRW)?
     
    Fye, Feb 28, 2006
    #1
  2. Yes, you can use GetFirstView and GetNextView to get the first real view
    (1st one is sheet format or something, so you have to get the second one
    to reach the actual view). Then you can get the model with
    ReferencedDocument and so on, there's an short example in API Help
    actually...

    --

    regards

    Markku Lehtola
    Certified SolidWorks Professional (CSWP)

    www.markkulehtola.net
     
    Markku Lehtola, Mar 1, 2006
    #2
  3. Fye

    Fye Guest

    A bit of working code would be nice, because I cant seem to find the
    example you were referring to.

    Right now, I'm considering grabbing the associated file from the
    drawing name, grabbing the parameter etc. The only drawback to that is
    that it requires that the drawing file name be teh same as the
    part/assembly file name (with a different extension of course). At
    least I know I can do that for sure.
     
    Fye, Mar 2, 2006
    #3
  4. Fye

    Jeff Guest

    Here is a couple examples from the help file to get you started.

    This example shows how to get the document referenced by a drawing
    view.



    '---------------------------------------

    Option Explicit

    Sub main()

    Dim swApp As SldWorks.SldWorks

    Dim swModel As SldWorks.ModelDoc2

    Dim swSelMgr As SldWorks.SelectionMgr

    Dim swView As SldWorks.View

    Dim swDrawModel As SldWorks.ModelDoc2

    Dim sModelName As String



    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc

    Set swSelMgr = swModel.SelectionManager

    Set swView = swSelMgr.GetSelectedObject5(1)



    Set swDrawModel = swView.ReferencedDocument



    sModelName = swView.GetReferencedModelName



    Debug.Print "File = " & swModel.GetPathName

    Debug.Print " View = " & swView.Name

    Debug.Print " Model = " & sModelName

    Debug.Print " " & swDrawModel.GetPathName

    End Sub

    '---------------------------------------

    This example shows how to get the custom properties for the
    configurations in a document.



    '---------------------------------------------

    Option Explicit



    Public Enum swCustomInfoType_e

    swCustomInfoUnknown = 0

    swCustomInfoText = 30 ' VT_LPSTR

    swCustomInfoDate = 64 ' VT_FILETIME

    swCustomInfoNumber = 3 ' VT_I4

    swCustomInfoYesOrNo = 11 ' VT_BOOL

    End Enum



    Sub main()



    Dim swApp As SldWorks.SldWorks

    Dim swModel As SldWorks.ModelDoc2

    Dim swConfig As SldWorks.Configuration

    Dim vConfName As Variant

    Dim vPropName As Variant

    Dim vPropValue As Variant

    Dim vPropType As Variant

    Dim nNumProp As Long

    Dim i As Long

    Dim j As Long

    Dim bRet As Boolean

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc



    Debug.Print "File = " + swModel.GetPathName



    vConfName = swModel.GetConfigurationNames

    For i = 0 To UBound(vConfName)

    Set swConfig = swModel.GetConfigurationByName(vConfName(i))



    nNumProp = swConfig.GetCustomProperties(vPropName, vPropValue,
    vPropType)



    Debug.Print " Config = " & vConfName(i)

    For j = 0 To nNumProp - 1

    Debug.Print " " & vPropName(j) & " <" & vPropType(j) &
    "> = " & vPropValue(j)

    Next j

    Debug.Print " ---------------------------"

    Next i

    End Sub
     
    Jeff, Mar 2, 2006
    #4
  5. Fye

    Fye Guest

    Wow - thanks Jeff!
     
    Fye, Mar 2, 2006
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.