Turn off model sketches in drawing

Turn off model sketches in drawing

Cadkunde.nl
Collaborator Collaborator
434 Views
3 Replies
Message 1 of 4

Turn off model sketches in drawing

Cadkunde.nl
Collaborator
Collaborator

Hello everyone, I got the following problem:

 

I have a drawing with 1 view of a part.

I get the model sketches of that part in a drawing view

 

If you right click that sketch you can choose "Include" and "Visible"

 

Now I made the following code in ilogic:

 

Sub Main()
    Dim oDoc As DrawingDocument = ThisDoc.Document
    Dim oSheet As Sheet = oDoc.ActiveSheet
    Dim oNode As BrowserNode = oDoc.BrowserPanes("Model").GetBrowserNodeFromObject(oSheet.DrawingViews.Item(1))

    Call recurseNodes(oNode)
End Sub

Sub recurseNodes(node As BrowserNode)
     
    Dim bn As BrowserNode
    
    For Each bn In node.BrowserNodes

            If TypeName(bn.NativeObject) = "PlanarSketch" Then
                bn.Visible = False
                MsgBox(bn.Visible)
                Dim oSketch As PlanarSketch = bn.NativeObject
                oSketch.Visible = False
                MsgBox(oSketch.Visible)
                Dim oProxy As PlanarSketchProxy = TryCast(oSketch, PlanarSketchProxy)

                If oProxy Is Nothing Then MsgBox("fail")

            End If
            If Not TypeName(bn.NativeObject) = "DrawingView" Then
                Call recurseNodes(bn)
            Else
                Continue For
            End If
    Next
End Sub

Now the messageboxes say that sketches are turned off,  but in truth nothing happens, sketches remain on.

 

What am I doing wrong?

 

Thanks in advance,

 

Arnold

 

 

0 Likes
435 Views
3 Replies
Replies (3)
Message 2 of 4

MechMachineMan
Advisor
Advisor

Try this. If it doesn't work, try uncommenting the lines and trying it with the command I have in there.

 

Sub Main()
    Dim oDoc As DrawingDocument = ThisDoc.Document
    Dim oSheet As Sheet = oDoc.ActiveSheet
    Dim oNode As BrowserNode = oDoc.BrowserPanes("Model").GetBrowserNodeFromObject(oSheet.DrawingViews.Item(1))

    Call recurseNodes(oNode)
End Sub

Sub recurseNodes(node As BrowserNode)
     
    Dim bn As BrowserNode
    'Dim oCommandMgr As CommandManager
    'oCommandMgr = ThisApplication.CommandManager
    'Dim oControlDef1 As ControlDefinition
    For Each bn In node.BrowserNodes

            If TypeName(bn.NativeObject) = "PlanarSketch" Then
                bn.EnsureVisible = true
                bn.Visible = True
                'bn.DoSelect
                'oControlDef1 = oCommandMgr.ControlDefinitions.Item("DrawingEntityVisibilityCtxCmd")
            'oControlDef1.Execute
                    
                Dim oSketch As PlanarSketch = bn.NativeObject
                oSketch.Visible = False

              
                MsgBox(oSketch.Visible)
                Dim oProxy As PlanarSketchProxy = TryCast(oSketch, PlanarSketchProxy)

                If oProxy Is Nothing Then MsgBox("fail")

            End If
            If Not TypeName(bn.NativeObject) = "DrawingView" Then
                Call recurseNodes(bn)
            Else
                Continue For
            End If
    Next
End Sub

--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
0 Likes
Message 3 of 4

MechMachineMan
Advisor
Advisor

Looking a little deeper,

 

http://help.autodesk.com/view/INVNTOR/2018/ENU/?guid=GUID-D273D9C3-C24F-4CDD-B571-F2C0B5F7A5B3

 

reveals that .SetIncludeStatus and .SetVisibility are likely much better bets.


--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
Message 4 of 4

Cadkunde.nl
Collaborator
Collaborator

Yes, I got it working now. Thanks

 

 

 

Dim oProxy As PlanarSketchProxy = TryCast(oSketch, PlanarSketchProxy)
 oDoc.Sheets(1).DrawingViews(1).SetVisibility(oSketch, False)

 

 

When I did bn.visible it actually turned the sketch of in the part

I tried bn.BrowserNodeDefinition.Visible but that completely removed the node from the browser

 

I was fooled that the Include and Visibility were properties of the browsernode rather than the drawingview.

0 Likes