AutoCAD Inventor :: VBA Code Not Working For Workplane In Assembly
Oct 15, 2004
I have assembly file in which I have created a work plane "Work Plane19" . Now I wanted to create a new work plane which will be paralle to workplane "WorkPlane19" & offset by 10.5 mm in same assembly document through VBA subroutine. I have tried with following code but getting error,
Public Sub NewWorkPlaneCreate()
Dim oAssly As AssemblyDocument
Set oAssly = ThisApplication.ActiveDocument
In an assembly document, I try to add a MateConstraint between male and female side of an 45 degrees elbow. The male side is built on the XZ Plane and Y Axis And I try to create a workplane on the female face.
But a got an error with the last line of code. Here's my code (vb.net code) :
' Get application object Dim app As Inventor.Application = GetObject(, "Inventor.Application") Dim doc As Inventor.AssemblyDocument = app.ActiveDocument
There are many examples of creating rectangular patterns, but not many, if any, of interrogating existing patterns.I have attached the files and a screenshot of a rectangular part inside an assembly. The part contains a rectangular pattern of holes and workplanes.how do I get hold of each proxy of the workplane in the pattern?In other words I don't know what to put in the for loop at the end of this code fragment:
If _invApp.Documents.Count = 0 Then MsgBox("Need to open an the assembly document") ReturnEnd If If _invApp.ActiveDocument.DocumentType <> DocumentTypeEnum.kAssemblyDocumentObject Then MsgBox("Need to have an Assembly document active") ReturnEnd If Dim asmDoc As Assembly Document asmDoc = _invApp.ActiveDocument Dim asmDef As AssemblyComponentDefinition asmDef = asmDoc.ComponentDefinition im occurrences As ComponentOccurrencesoccurrences. [code]....
I try to develop a vba code to get the coordonates of each part of an assembly and after export them to an excel file.
I build this :
Public Sub Export_Layout_COG()
If MsgBox("Cette Macro va exporter les coordonnées du COG de chaque layout, continuer ?", vbYesNo) = vbYes Then Dim RefDoc As Document Set RefDoc = ThisApplication.ActiveDocument Refdocdisplayname = RefDoc.DisplayName
[Code]...
The code return an error on the red line, I don't catch why?
I want to make a vba code to calculate the Interferences between all parts of an Assembly.
First I modify all holes with thread. Next with de CommandManager I Launch the AssemblyAnalyzeInterferenceCmd. And finaly I modify all holes with thread back.
My question is :
How to wait until the AssemblyAnalyzeInterferenceCmd is finished to continue the code.
Sub Interferences() Call BeforeAnalyzeInterference ThisApplication.CommandManager.ControlDefinitions.Item("AssemblyAnalyzeInterferenceCmd").Execute Call AfterAnalyzeInterference End Sub
I have found some code which extracts the part number from the iproperties of a model and adds it to the custom iproperties of a drawing but this will only work on iam or ipt files.
Here's the code, I added the lines referring to the docment type as an attempt to fix the error but it didn't work...
If (ThisDrawing.ModelDocument Is Nothing) Then ReturnIf ThisDrawing.ModelDocument.DocumentType = kPresentationDocumentObject Then modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)End IfIf
I sometimes create parts while working in an assembly. This hasn't been an issue but something mysterious happened. Once I create my new part, to get back to the assembly ( turn off the transparency)
I typically press the Return button which is normally in the first tab (this example shows I created a sheet metal part)but for some reason the return button is now in the inspect Tab??I tried looking through the customize ribbon form and can't seem to put the button back into the first tab?
if this is a setting that needs changed or is a bug of some sort but when i am in an assembly and double click on a sub assembly it highlights that sub assembly and greys out the rest of the model as expected, however if i then right click on a part and bring up the menu and click open it does nothing. It seems as though when i right click, the menu opens and it deselects the part so when i select open it does nothing as no part is selected. I can click on the item in the tree and select open.
I want to put my iFeature on my workplane,but i can't.However, if I change my PlaneInput = oFace , it can work perfectly.My program is below:
Private WithEvents oInteraction As InteractionEvents Private WithEvents oselect As SelectEvents Private Sub UserForm_Initialize() Set oInteraction = ThisApplication.CommandManager.CreateInteractionEvents Set oselect = oInteraction.SelectEvents
I want to use a lofted solid as a component in an assembly. I am using a top-down approach with 2D blocks to get the kinematics right before creating the components.
My problem is that the sketches needed to create the loft are on workplanes, and those workplanes are fixe with respect to an absolute coordinte system.
Is there a way to assosiate workplanes with a block instead, so that they will move with the part?
Is it possible that the problem is trying to do this in a part file, and that if I place the finished solid in an assembly it will then be able to move? ( I am fairly new to Inventor.)
I created a sketch on a 'fixed workplane' and extruded it. I would like to know if it is possible to move the workplane? I understand I can change the workplane if it is a 'plane by offset from plane'.
If moving a fixed workplane is possible, does the extruded features move along together?
I have some models which are based on skeleton modeling and where the actual parts are modeled at the position where they are in the assembly. When the skeleton part is changed the parts will update and their orientation related to the origin planes can change. This is where the problem lies, on the drawings of these parts the views are all skewed after an update.
Is it somehow possible to tell Inventor that all views on a a drawing should stay alligned to a workplane? Because it are all parts and no assemblies I cannot use posreps (and I don't want to use dummy assemblies). I also tried setting a specific edge to be horizontal with the rotate command in the drawing. This works for the base view, but all projected views will still be skewed after an update.
How can I create a workplane with the API that is tangent to a surface and passes thru a workpoint. It is easy to create a work plane of type kPointAndTangentWorkPlaneDefObject by point and click in Inventor 11, but I can't figure out how to do it in the API.
I have a ipt file in my assembly and try to makes some constraints. Everything ios working well, but there are some suppressed workplanes, and I don't want to use them for a automatically created constraint. Is there a way to find out the workplane suppress status?
Why are they suppressed? They are defined on a part feature (extrusion surface). And when I supress that feature, also the Workplane is suppressed.
But I only can get the visible status. Maybe there's a way to get it about the part feature, but therefore, I have to search for the part feature, and that's also a problem. I cannot get the part feature, who is used for the workplane definition (I think, it's a problem of my knowledge )
Please see attached a small view on the browser where you can see the suppressed Planes.
I am trying to create a workplane by a point and a line. I can do this maually, but have not been able to reproduce this in code.
BTW: I realize I can create a fixed workplane by using the point, the edge, and an edge perpendicular to the edge, but I cannot have this as a fixed workplane.
I have three workplanes. All three were created the same way (offsetting an existing workplane). I want to change the offset dimension. I can on one of the planes, but on the other two, I have to "Redefine Feature". There is no Edit dimension available in the menu.
How do you create a new Workplane from a Defualt Plane and rotate it along a default Axis?I am new to API and trying to create workplanes and rotate them along a Axis.
Im trying to use "AddByPlaneAndOffset" is this the right method?
In Inventor, it is possible to mark a workplane with "Export Object", by rightclicking on the node. This make the workplane accessible when using the part as derived.
What is the programmatic access to the property? Can not find it on the Workplane object?
Is there anyway to completely hide a workplane that is contained within a clientfeature?
The attached part shows this when you hover over the client feature in the browser. I have the visibility of the plane turned off but it still shows up when the clientfeature is pre-selected.
What is the best way to create a workplane at a given angle on the surface of the tube. Imagine the workplane long and thin running along the surface of the tube. The angle will be a parameter (from a sketch or user).
I'd like the workplane to always be on the surface of the tube, even when the diameter of the tube (from a dimension in a sketch) changes.I'm thinking that a (angled) line in the same sketch as the two circles (which define the tube diameter and thickness) would be a good starting point.
I have to create a hole (extrude) in a wall part in my assembly document where a stack will be installed.
To determine where, I verify if a line segment pass through the wall (XY Plane).
But I get an error with the command: IntersectWithLine
Here's my
Public Function IntersectionPoint(ByVal app As Inventor.Application, ByVal wp As Inventor.WorkPlane) As Inventor.Point Dim oTransGeom As Inventor.TransientGeometry = app.TransientGeometry Dim startPoint As Inventor.Point = oTransGeom.CreatePoint(Me.StartVertex.X, [Code] ......
I want to be able to have All Work Planes set as 'Invisible' but create a Message.box or Icon that allows me to change the Visibility of any individual workplane(s) physically selected in the browser.
A rule written by another member should do the trick if the following line could be altered so as not to read 'For Each' oWorkPlane but instead for 'Each Selected' oWorkplane.
'For Each oWorkPlane In docFile.ComponentDefinition.WorkPlanes'
'get user input oInput = InputRadioBox("Select workplane visibility:", _ "Turn ON workplanes for all components", "Turn OFF workplanes for all components", "False", "iLogic") 'Define the open document (top level assembly) Dim openDoc As Document openDoc = ThisDoc.Document
I’m creating an assembly that makes an automatic berm when the cut height in not enough, so then I need a berm. The problem is for some reason I can’t get the link code for the assembly.
I have been using a dialog box with checkboxes for creating layers for the past 5 years now with minimal problems. I don't know much about VBA code, but when there is a problem, I can usually figure out what is going on, which is generally a typo the causes it to error. The code was created by an employee that left the company about 3 months after I started.
After installing acad 2013 and the VBA enabler this code only partially works. It will create the layer in the drawings, but will not set the color, linetype or the description. When I click on the checkbox for any of the layer checkboxes I get a "Run-time error '13': Type mismatch" error. I click on the "Debug" button which opens VBA, the "This Drawing.Layers.Add" line in the below code is highlighted.
As a troubleshooting effort, I tried retyping the ".Color" line, when I had typed out "m_refg_pipe_n." a drop-down box appears, but "Color" is not an option anymore. The only color option in the list is TrueColor, which we do not use. In the next line of the below code, "Description" is an option. So I am guessing that the ".Color" line of code is the problem.
Private Sub CheckBox101_Click() Dim m_refg_pipe_n As AcadLayer Set m_refg_pipe_n = ThisDrawing.Layers.Add("m-refg-pipe-n") m_refg_pipe_n.Color = acGreen m_refg_pipe_n.Linetype = "Hidden" m_refg_pipe_n.Description = "MN - Refrigerant Piping" End Sub