AutoCAD Inventor :: Create Listbox In ILogic That Allows For Multiple Selections?
Oct 3, 2013How do I create a listbox in iLogic that allows for multiple selections?
View 3 RepliesHow do I create a listbox in iLogic that allows for multiple selections?
View 3 RepliesI have a list box with multi select (simple) enabled. How can I "see" the text of the values the users selects (if there is more than 1)..
vb.net if you can.
I have two listbox controls on my form (lstAvailableLayers and lstLayersToUse). The lstAvailableLayers listbox gets populated by the following:
Public Sub MaindialogTitleText_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myDWG As Autodesk.AutoCAD.ApplicationServices.Document Dim myDB As Autodesk.AutoCAD.DatabaseServices.Database Dim myTransMan As Autodesk.AutoCAD.DatabaseServices.TransactionManager Dim myTrans As
[code]......
There is a button that is supposed to copy the selected items from the lstAvailableLayers listbox to the lstLayersToUse listbox:
Private Sub btnMoveLayers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveLayers.Click If lstAvailableLayers.SelectedIndex < 0 Then MsgBox("You must select at least one layer", MsgBoxStyle.Exclamation, "Error") Else Dim i As Integer For i = 0 To lstAvailableLayers.SelectedItems.Count - 1 lstLayersToUse.Items.Add(lstAvailableLayers.SelectedItem) Next End If End Sub
I select 2 layers from the list and hit the button, and the first selected item gets copied twice to the second list. I've looked all over the place and I keep seeing similar code to this that's supposed to work.
how to convert multiple selections to multiple layers or multiple files with one go?
View 6 Replies View RelatedI'm trying to figure out how to create an iLogic rule that would create a Custom iProperties and put in what version of Inventor the file was last updated with.
View 8 Replies View RelatedI have listbox that shows ipartname of one ipartfactory it would like and me that when selecting one of them it could send to the assembly ipart selected hear show code.
Dim InvApp As Inventor.ApplicationSet InvApp = GetObject(, "Inventor.Application") Dim IpartSeleccion As ipartMemberSet IpartSeleccion = listbox1.Value Dim oDoc As AssemblyDocumentSet oDoc = InvApp.ActiveDocument Dim oOccs As ComponentOccurrencesSet oOccs = oDoc.ComponentDefinition.Occurrences
[Code] ........
how could I search for suppressed constraints and list them in a Listbox.
View 2 Replies View RelatedI have the following
strFile = ThisDoc.FileName(False) & "-Rev " & iProperties.Value("Project", "Revision Number")ThisDoc.Document.SaveAs(strFile & (".dwg"), True)ThisDoc.Document.SaveAs(strFile & (".pdf"), True)
And it works like a charm for pdf, but it does not export to .dwg?
And also, is it possible to decide where in the name the "-Rev " &iPro....should appear?
Ex. if the filename should be : "12345 - Rev 02 - Section cut"
I would like to know if it is possible to make a form with multiple forms, depending on the selection a could build a rectangle, or a cilynder or a cone.
View 3 Replies View RelatediLogic code question concerning how Place iLogic Component and retain the ability to push parameters from the subassemblies to the parts after being renamed.
I have ASSEMBLY.iam containing:
SUBASSEMBLY-01:1.iam
SUBASSEMBLY-02:1.iam
and sometimes SUBASSEMBLY-02:2.iam
each SUBASSEMBLY.iam contains PART1.ipt and PART2.ipt which have variable LENGTH and WIDTH. LENGTH and WIDTH are entered manually at the SUBASSEMBLY.iam and are infinitely variable.
To transfer the parameters I'm using iLogic code in the SUBASSEMBLY:
Parameter("PART1.ipt", "LENGTH")=LENGTHParameter("PART1.ipt", "WIDTH")=WIDTHParameter("PART2.ipt", "LENGTH")=LENGTHParameter("PART2.ipt", "WIDTH")=WIDTH
Issue 1: When I place the SUBASSEMBLY as an iLogic Component, the parts are renamed to PART1-01.ipt which renders my Parameter transfer useless. What am I missing on writing this code so it can find the new part name?
Issue 2: I like the automatic renaming that happens with Place iLogic Component. Is there a better way to handle this automatically through Place Component -> Save & Replace?
Inventor 2013
I have an iLogic rule in which I'm trying to set three user parameters for the gage of each leg of a steel angle. I want Inventor to set the gage based on the length of each leg. Here's the table I referenced for gages: [URL].
In my code, I have a sub called DetermineGage which takes the leg length, whether it's the short leg or the long leg, and determines the gages that should belong to that leg. Inside of that sub it calls on a sub called ApplyGage which then applies the determined gage to the rule's gage variables. The main sub then grabs those variables and applies those values to the actual user parameters.... In theory.
The rule executes ok with no errors, but doesn't change the value of the user parameters; they're always "0". As best I can tell, the "oGage" variables I used in the rule don't even get assigned the correct value, which makes me think the DetermineGage and ApplyGage subs can't even access the oLegLength or oGage parameters to read or set them. I don't want to use global parameters because I've heard that can make programs very unstable over time and is just bad practice. How can I make these variables accessible to all subs IN THIS RULE, no more no less?
Sub Main()Dim oLegShort As Double = Min(G_W,G_H)Dim oLegLong As Double = Max(G_W,G_H)Dim oLegLength As DoubleDim oGage As DoubleDim oGage1 As DoubleDim oGage2 As Double'Short Leg:oLegLength = oLegShort'Call DetermineGages sub to set oGage variables:DetermineGages()On Error Resume Next'If gage parameter does not equal true gage, set it equal:If Parameter("ShortLegGage") <> oGage ThenParameter("ShortLegGage") = oGageEnd If'Assume error means gage parameter does not exits. Create and set equal to true gage:If Err.Number <> 0
[code]...
how the internals of Inventor / iLogic are working.
We have multiple instances of Inventor running on a 12 core workstation so we can push configurations through concurrently - each Inventor instance is assigned its own processor affinity and each instance has its own project which points to seperate directories of Inventor models.
Everything seems to work OK when there are up to 5/6 working concurrently, but as soon as there are more than 6 the iLogic functions seem to grind to a halt - note that the rules are external rules.
For example, this function took 11 seconds to complete when there were 10 concurrent orders processing. :
Parameter("BLANK", "EDGE_FRT_ACTIVE") = "YES"
Similarly these functions took 11 seconds in total to complete :
iProperties.Value("Custom", "M1110900_P1PO") = iProperties.Value("Custom", "BLANK_GDIM") - iProperties.Value("Custom", "PANEL_GDIM")iProperties.Value("Custom", "M1110900_P2PO") = iProperties.Value("Custom", "BLANK_XGDIM") - iProperties.Value("Custom", "PANEL_XGDIM")iProperties.Value("Custom", "M1110900_P1OR") = 1iProperties.Value("Custom", "M1110900_P2OR") = 0
When I run these with less that 6 concurrent Inventor processes, they're are almost instant.
I just don't know where the bottleneck is. I've ruled out :
- Processor (each core never reaches above around 60%)
- RAM (we've got 48GB of RAM, with about 15GB free at worst)
- Disk (disk IO is busy, but it doesn't look like it's the bottleneck)
- Graphics (Inventor is in silent mode, with no UI, so graphics activity is minimal)
From the tests I've done it seems to be the iLogic functions that are the bottleneck. My next port of call is to change the iLogic functions to actual API calls, but I suspect I'll get the same results.
So, my questions :
Is Inventor queing these iLogic API calls somehow (note we're creating a unique instance of the Inventor.Application COM object for each processing thread) ?
Is there an issue with using external rules with nultiple instances?
Dell Precision R5500, Intel Xeon X5690 3.47GHz (x2)
48GB RAM
Inventor 2013 (PDS Premium)
64bit Windows 7 SP1
I have the need filter inside Vault the Inventor Drawings (.dwg/.idw) by its papersize.
In my testing enviroment, I created a iLogic rule inside a .idw with the following
iProperties.Value("Custom", "Formato") = ActiveSheet.Size
I used the Ruler Trigger "After Save Document" to refresh this rule.
In Vault, I've mapped this custom property:
But, how to Copy (and update) this iLogic Rule to the other existing .dwg files in Vault?
I thought the iLogic Design Copy would be able to do so, but it doesn't works in that way.
So I have been going round and round in circles on this one iam trying to use replace component within ilogic which is fine with switching one part for another but I want a drop down of parts so it replaces which ever one is active the problem I am having is establishing which one is active. So below is what I have so far but the problem is you cant seem to reference a part that is not in the assembly so I keep getting the error
The component named "Flange 1" was not found for example. I just need a way of establishing which one is currently in the assembly but with out referencing components that are not there.
If Component.IsActive("Flange 1")=True Then current = 1
If Component.IsActive("Flange 2")=True Then current = 2
If Component.IsActive("Flange 3")=True Then current = 3
If part = 1 And current = 2 Then Component.Replace("flange 2", "Flange 1.ipt", True) End If
If part = 1 And current = 3 Then Component.Replace("flange 3", "Flange 1.ipt", True) End If
If part = 2 And current = 1 Then Component.Replace("flange 1", "Flange 2.ipt", True) End If
If part = 2 And current = 3 Then Component.Replace("flange 3", "Flange 2.ipt", True) End If
If part = 3 And current = 1 Then Component.Replace("flange 1", "Flange 3.ipt", True) End If
If part = 3 And current = 2 Then Component.Replace("flange 2", "Flange 3.ipt", True) End If
I have used Inventor for quite a while but never for much more than the odd 3D model.
I have recently created templates that allow me to use Inventor to create detailed fabrication drawings rather than relying on AutoCAD. But I have run across a question with regards to the BOM. Let me try and explain my issue.
I currently create assemblies for fabricated items. However, in the complete (or top level assembly) there may be multiple fabricated items (assemblies required). At the moment I create the BOM and manually edit the quantities required to reflect the number of assemblies (and resulting parts) that are required.
In my assembly file I created a parameter called "AssemNo" which is meant to reflect the number of assemblies required. In my part files I created a parameter called "AssemQty". I would insert the following iLogic code for each part in the assembly:
quantity - This.BOM.CalculateQuantity("Model Data", "PartNumber")*AssemNo
Parameter("Part Name:1", "AssemQty") = quantity
This works but it requires me to create that line of code for every part in my assembly. I know an iLogic code can be created to search an assembly and change parameters of all parts (see below as an example to copy Occurence name to iProperties >
' set a reference to the assembly component definintion.
' This assumes an assembly document is open.
Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
'Iterate through all of the occurrences
Dim oOccurrence As ComponentOccurrence
For Each oOccurrence In oAsmCompDef.Occurrences
Dim oName As String
oName = oOccurrence.Name
iProperties.Value(oOccurrence.Name, "Project", "Part Number") = oName
MessageBox.Show(oOccurrence.Name, "iLogic")
Next
Can the two be combined?
What is the code to create (or add) a new sheet in a drawing with iLogic?
View 1 Replies View RelatedI want to create a rule that will warn the user when the plate thickness they are using is not standard. I have already created a multivalue parameter for plate thickness, which lists all standard steel plate thickness's and also allows for custom values.
I was hoping I could create a rule that would prompt a dialogue box warning when the user creates a custom value for plate thickness.
I know this can be done, but like I said, Im bloody useless with iLogic and find it hard to come across relevent examples and/or tutorials online.
coding iLogic to make a copy of the open model under a diferent name is a pre determined location with the same extension.
View 3 Replies View RelatedIs there Any code out there that will allow user to select part file then isolate and create view rep of that part with name of view rep the same as part.
The reason is we have lots of reps that isolate various components and this is very time consuming, I have had a look if there is Any customization because this would be a good user tool,also could work very well on assembly.
How to create and use procedure in iLogic.
I have try for create simple procedure / function in iLogic but can't work.
function LOD (ByVal a as string) as DrawingView ThisApplication.FileManager.GetLastActiveLevelOfDetailRepresentation(a)end function LOD_Assy = LOD(DirName)
I would like to create an new custom ipropertie with ilogic. The reason is the contentcenter, thei haven't custom iproperties. How should the code work:
if
propertie "test" is available
write the value in the propertie
else if
propertie test isn't available
create prpertie
write the value in the propertie
end if
How can i check if the propertie is already exists in the file?
How can i create a new custom iPropertie?
The rest of teh code is ready and works fine.
i've faund already some code with VBA but not with "pure" ilogic.
Is there a way to create a multi-value parameter with ilogic?
Inventor Pro 2013 (PDS Ultimate)
Vault Pro 2013
Windows 7 64
Xeon 2.4 Ghz 12GB
I am trying to create a new sheet in an existing excel file and can not figure out how to do it.
I am trying to export parts lists from multiple drawings to an exisitng excel spreadsheet and I'd like have each on their own sheet. I can do everything but create a sheet. How to do this in iLogic?
Inventor Pro 2013 (PDS Ultimate)
Vault Pro 2013
Windows 7 64
Xeon 2.4 Ghz 12GB
I have one particular file which will not allow me to add an iLogic form. When I select "Add Form" it does nothing. This only happens in this one file. I can open other files in the same session and they work fine. I can add iLogic rules to this file but I can't create forms.
View 3 Replies View RelatedHow to create external ilogic rule?
View 3 Replies View RelatedHow to create a excel file using ilogic?
View 6 Replies View RelatedI am trying to use a code window plugin on my website, and would like to create a temple for iLogic code. Is there any way to output iLogic code in a format that would work?
I cannot modify any of the existing templates because iLogic requires information as to whether to make some text brown or blue, and it would need some form of output to do that.
[URL]
The instruction page is here: [URL]
I have been manually highlighting or using images, but both have their problems. (cut & paste will lead to a pile of errors with the manual highlighting). I can create the css file, but need some form of output beyond cut & paste to work with.
If something is worked out, it will be added to the program and be available to everyone free (this is a Wordpress plugin).
[URL]
Self built computer with;
Quad core processor
16 gigs ram
Raptor Raid main drives
2 x 1TB Caviar Black storage drives local
2 x 1TB Caviar Black storage drives network backup
Main Software;
Product Design Suite Premium
Windows 7 Home Premium
[URL]
Im after programmatically mating 2 components together in an assembly. My stages are as follows:
1)Create New Assembly
2)Add .ipt's
3) One-by-one, mate all the parts together (each part has a plane named "WPStart" and "WPEnd". In each part im after the WPStart being flush mated with the WPEnd of the 2nd part - see image attached. In addition I would like to mate al the XZ planes in each of the parts fluch together and likewize the YZ planes.
3) Mate the parts together
Dim FlushConst As FlushConstraint
FlushConst.AffectedOccurrenceOne = oAssyDoc.ComponentDefinition.Occurrence.Item(1).Workplanes.ItemByName("WPStart") <--------
FlushConst.AffectedOccurrenceTwo = oAssyDoc.ComponentDefinition.Occurrence.Item(2).Workplanes.ItemByName("WPEnd") <--------
Dim propertyName1 As String = "Mortise"Dim propertyName2 As String = "Cut Length"customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")Try prop = customPropertySet.Item(propertyName1) prop = customPropertySet.Item(propertyName2)Catch ' Assume error means not found customPropertySet.Add("", propertyName1) customPropertySet.Add("", propertyName2)End Try'output the custom iproperties and update the fileRuleParametersOutput()InventorVb.DocumentUpdate()'set iProperties 'iProperties.Value("Custom", "Mortise") = ""'update fileiLogicVb.UpdateWhenDone = True
This code creates custom iProperties if the iProperty isn't found. I'd like to add another iProperty called "Resaw" with a Yes/No property type. Is there a way of doing this the way I have things started here?
How to create a measurement between two planes using ilogic rules?
I have created the planes on the asssmbly parts but dont know how to directly pick them.
The measurement is going to be used as reference dimension.
I'm attempting to create a model that autmotaically derives ready-to-go drawings. I've gotten pretty far in doing so but have a few issues with regards to dimensioning. As I'm sure you're aware, when the model changes, a dimension to that feature, which has been removed, is also deleted and some those dimensions do not return once the model is changed back.
I have looked into using different view representations, but have found that they do not accommodate feature supression.
Is there a way to program in the dimensioning of a view.
Create center points for of the holes and center lines.
And for a feature note such as "Hole and Thread" dimensioning, when the model expands, the leader and text length do not change and proceed into the view. Is there a way to fix or anchor the text to a certain spot on the drawing, and have the leader length expand and change accordingly to that point.