AutoCAD Inventor :: Save Copy And Replace With ILogic
Dec 18, 2013
I have an assembly that I am working on that will be used as a configurator, driven by I-logic. Everything is work fine but there is one part off the assembly that will be custom to each new assembly. Is there a way to use I logic to open the ipt file save it as copy with different name and replace the original in the assembly. I know this can be done manual through the productivity tab within the assembly environment, but I am trying to automate the process so the end user will just have to follow prompts that will be given by i-logic.
Autodesk has agreed that this code does not work on Inventor 2012 and that the development is working on it. This code is part of the Snippets built in Inventor iLogic Rule Browser.
But splitting the parts up into different folders breaks the model because (I'm guessing) the part can't be found. My thought was to have one folder (Seals) with subfolder (Seal A, Seal B,etc) - is there a way to search the sub folders & use replace?
If I stick with one folder it will end up containing 300+ parts which will look messy.
I have an assembly which I want to replace one of the parts with one of four other parts.
My code reads:
Select Case Width Case "750" Component.Replace("part:1", "L:Drawingspart2", True) End Select
This works fine and when 750 is selected, part1 is replaced with part2.
My problem is then if I want to select "1000" I don't know the part name which I will be replaced by part3 as this could be part1, part2, part4,or part5.
how to replace model reference using iLogic in inventor 2012. Basically I have a drawing file whose model reference needs to change with part number(iProperties) .
I've been struggling to perform replace model reference as there is no direct command given for it.
Can I use an iLogic Rule at the top assembly level to "replace all" of a particular component is that component resides in more than one subassembly? I need a rule to run and globally replace the component in all subassemblies without opening up each subassembly manually. I can run a rule in the individual subassembly that looks like the following:
If GoExcel.CellValue("3rd Party:Embedding 1", "Sheet1", "A2")=800 Then Component.Replace("Part1:1", "OtherPartfilename.ipt", True) End If
Is there a way to run a "replace all" command from a top level assembly?
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
For Creating my own templates i want to use iLogic and embedded Excel-Spreadsheets. The embedded Sheet has its own data, but i want to create a rule to refresh the data from an external Excelsheet.
For now i use the following rule:
For I = 65 To 90 '65=A 90=ZBuchstabe = Chr(I) GoExcel.CellValues("3rd Party:Embedding 1", "Platte", Buchstabe & "1", Buchstabe & "999") = GoExcel.CellValues("G:KonstruktionVorlagenMaterialgrunddaten.xlsx", "Platte", Buchstabe & "1", Buchstabe & "A999")Next I
it works well, but wont insert a new single-sheet or refresh formats, i have to add the same code for each sheet. And its REALLY slow.
Is there a possibility to refresh or replace the whole embedded file via a simple iLogic-rule?
One of the new features in 2013 is the ability to copy a view that is on the idw. Is there a way to copy/paste a view, then replace the reference of ONLY the part in the view that was just copied?
What I have is two parts. For simplicity, just imagine both as a square plate. One has a hole in it, one doesnt. I have already dimensioned the square plate. Now I copy the view and paste it back on the sheet. I want to replace the reference of the one I just copied and change the reference to the part with the hole. If I use replace model reference command, it will replace both references, which is what I dont want.
Just a wish I guess, but the only way I can do this now it to place the second part on the sheet and start dimensioning it. Seems like a waste when we almost have the tools to quickly complete this.
Whats the best way to save and replace many ipts and iams with a new name. I would like to select many files in the tree and then loop through each of them.
I'm trying to use iLogic Design Copy to copy an assembly and all its associated parts to another directory. The assembly contains content center parts. Inventor warns me that the destination file of one of the CC parts (and 18 others) will be overwritten. When I go ahead and copy anyway, the copying process stops at that specific CC part. The Design Copy Progress dialog box states there is an error copying that CC part. When I close the Design Copy Progress dialog box, Inventor crashes.
The error copying the CC part: I'm allowed to use content center parts in iLogic Design Copied stuff, right? I searched some related topics and I'm under the impression that Inventor keeps the CC parts in its own directory and shouldn't be trying to overwrite them.
I have two questions - one simple and one more complex, in my opinion. As of now I have a user form where one can enter a variety of values, hit a button, and it writes these values to a designated excel sheet. My first question is how would I be able to allow the user to change one value and have the rest of the entered values change based on this one value. For example if someone were to change the ID # of a part then the height and width would change corresponding to that ID number and would be displayed in the user form. I'm new to VBA so my thought process is kind of trash at the moment...
My second question is whether or not it is possible to write a vba program/macro that automatically utilizes iLogic Design Copy and makes copies of an assembly and continues to copy said assembly while adding a constantly increasing suffix ie -01, -02, -03... for a given number of times.
I have a iLogic assembly with some parts and sub assembly. I need to do a copy of this " Generator " to apply the result later in other assemblies. (something like a member of a ipart or i assembly).
Is there any way to do the copy the assembly to a new folder without the suppressed parts and subassemblies (wich are suppressed in the initial main assembly by iLogic rules)?
I tried to use "Pack and go" and "iLogic design copy", but they always bring the suppressed parts and assembly's, to the new folder and which i don't need to apply in the other assemblies.
I want to have a template IDW containing sketched symbols representing various possible drawing status stamps; when the drawing is ready for publish I want to run a rule which allows selection of one stamp for insertion on the drawing. how to copy the symbol from the one drawing to the other. Here is my non working
'Query stamp insertion requirementquestion = MessageBox.Show("Do you want to insert a stamp?", "Stamp Requirement",MessageBoxButtons.YesNo,MessageBoxIcon.Question)If question = vbYes ThenDim strSelectedStamp As String = "Result2"Dim strStampList As New ArrayListstrStampRequired = TruestrStampList.Add("F&C Stamp Round")strStampList.Add("As-Built Stamp. [code]..
I get a 'The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))' error.
Here I attached my model view it's just for reference here iam using rectangular pattern and simple ilogic code .Using rectangular pattern we will get all same sizes of boxes but i want to change different different sizes and positions. my idea is without using pattern just draw one rectangular through parameter. Select no. of compartments automatically copy and paste that rectangular in same sketch plane and ask sizes and positions dimensions.
I need a simple iLogic code that lets me copy iProperties of my choosing from my assy and to a Part, and grab som iProperties from my part and put into Assy iProperties.
the Assy and part are always named the same, and placed in specific folder, so i can easily locate the files.
I have been searching the forum without finding anything i have the skills to adjust to my needs...
It should be like this..: (not written in correct code but you´ll get my point.. )
'Get partnumber from active assy or part, depending what you have active
I'm finally wrapping up work on an iLogic Configurator project and have started to brainstorm the best workflow to get this "Smart Assembly" into the design group's hands. I had been anxiously awaiting the new "iLogic Design Copy" feature in IV2012, but just recently learned that users are unable to effectively rename any components with this command.
Is this really true? If we can add prefixes or suffixes, what's stopping us from changing the entire filename? We haven't upgraded to 2012 yet, but it seems like this may be a silly and unjustifiable restriction to a command that would otherwise save our designers hours of "file-management" (ie, manually renaming parts in Explorer, component replace in assy's, replace references in idw's, etc) each week.
Long story short, it seems that every workflow I've come across has had some sort of silly limitation that makes it undesireable for my application:
My top-level assembly contains all of the rules, and changes parameter values in the referenced skeletal parts. It also swaps standard parts for other standard parts as needed.I need access to rename ALL files (idw's, top-level assembly, subassemblies, and base components) while still maintaining/updating all internal hyperlinks between them.iLogic rules must be carried over to the new copied components (the existing "Copy Assembly" command strips the assembly of all rules). In light of the iLogic Design Copy's apparent shortcomings, any better workflow?
Is there a way in an inventor drawing rule to do a "save as" which saves the drawing as an Inventor dwg file rather than an AutoCAD dwg file?
The below saves as AutoCAD which is ok but I need the outputted drawing to be linked to the model. I don't want the code to save the entire assembly as this is done further down the line. I also don't want to save the current inventor dwg drawing from which the rule is run as this is just a template drawing.
I have a template part that I would like to save automatically once the parameters dialog box is closed. I would also like the Save As filename to automatically be filled in with a iProperty named "Part Name". I already have the "Part Name" description grabbing information from parameters. Is this possible? And is the best way to trigger the event after an "iProperty change" or "Any Model Parameter Change"?
I am having a bit of trouble finding the correct code for some automated ilogic in inventor 2011.
I am trying to achieve an automated rename and save process for an assembly file as well as the variable parts in the file.an example would be a steel column...
Open ilogic steel column, run rules to change column length and section size...then save a copy to workspace, but also to a specific folder in the workspace..also rename the column file and save.
i have this for file saving -
SyntaxEditor Code Snippet Test=InputBox("Add File name", "Please Add your file name", "Prefix number - File - .iam") ThisDoc.Document.SaveAs(ThisDoc.WorkspacePath()&Test, True)
Which works fine to save the new assembly, but i need the same for the variable column within the assembly, and also to save to a specific folder not just the workspace top level.
I'm trying find some code that will allow me to save a PDF in 2 different locations.
I want to save a copy on my C: drive - this part has been done, but I'd like the code expanded to save a copy on the F: drive (under a similar path to that on the C: drive.
For example, for drawing XXX-XXX.dwg (C:Vault WorkspaceCADSalesEnquiries201313-XXXDrawings), I would like a PDF created in C:Vault WorkspaceCADSalesEnquiries201313-XXXDrawingsPDF (this part has been done) and i would also like a copy saved in F:SalesEnquiries201313-XXXDrawingsPDF.
I do not know which will be easier; to create 2 PDFs, or create 1 and copy it to F:
I currently have ilogic code that automatically saves a template Inventor dawing as a job drawing. However the problem I am having is when it does this save it takes forever as it seems to be also saving the linked model also. Is there a way to save this Inventor dwg without saving the linked model? The reason why I do not want this model save is because after the drawing is outputted the user is given options to write part numbers and dxf files if required which requires a model save anyway.