I am just wondering who is using iLogic and what do you think of it?
http://www.cadenhancement.com/2009/0...c-and-far.html
Patrick Johnson
http:\\www.cadenhancement.com
|
I am just wondering who is using iLogic and what do you think of it?
http://www.cadenhancement.com/2009/0...c-and-far.html
Patrick Johnson
http:\\www.cadenhancement.com
A little bit of a learning curve but the benefit of using it for turning out designs quicker would be substantial. Most useful for families of designs that follow the same design rules, not one off custom designs. Haven't tried it yet for global type rules but want to try.
Same for me : quite a bit of learning at start but well used it is powerful and can save time. I'm still looking for a good process to repeat on each project in order to draw a big picture which would be as much as coherent as possible.
Small drawbacks, I think there is not enough docs on it especially when you want to use "advanced" functions. Guys at Autodesk may answer but sometime you may crawl in information.
It worth a try !
I agree.. I've had a very quick play with iLogic, and I can see it's advantages immediately, but I'm struggling to find any decent documentation...
Am I making this harder than it is?
I'm setting parameters based on other parameters. ex. If Material = SA-36 then the following happens, otherwise if Material = SA-240 304 SS then the following happens. Is this to much? and is there an easier way to code this???
'*****select material then make multilist for leg1*****
If Material = "SA-36"
MultiValue.SetList("Leg1", .5, .625, .75, 1, 1.25, 1.375, 1.5, 1.75, 2, 2.5, 3, 3.5, 4, 5, 6, 7,
If Leg1 = .5
Leg2 = .5
Thickness = .125
Else If Leg1 = .625
Leg2 = .625
Thickness = .125
Else If Leg1 = .75
Leg2 = .75
Thickness = .125
Else If Leg1 = 1
MultiValue.SetList("Leg2", .625, .75, 1)
If Leg2 = .625
Thickness = .125
Else If Leg2 = .75
Thickness = .125
Else If Leg2 = 1
MultiValue.SetList("Thickness", .125, .1875, .25)
End If
Else If Leg1 = 1.25
Leg2 = 1.25
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 1.375
Leg2 = .875
MultiValue.SetList("Thickness", .125, .1875)
Else If Leg1 = 1.5
MultiValue.SetList("Leg2", 1.25, 1.5)
If Leg2 = 1.25
Thickness = .1875
Else If Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
End If
Else If Leg1 = 1.75
MultiValue.SetList("Leg2", 1.25, 1.75)
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 2
MultiValue.SetList("Leg2", 1.25, 1.5, 2)
If Leg2 = 1.25
MultiValue.SetList("Leg2", .1875, .25)
Else If Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg2 = 2
MultiValue.SetList("Thickness", .125, .1875, .25, .3125, .375)
End If
Else If Leg1 = 2.5
MultiValue.SetList("Leg2", 1.5, 2, 2.5)
If Leg2 = 1.5
MultiValue.SetList("Leg2", .1875, .25, .3125)
Else If Leg2 = 2
MultiValue.SetList("Thickness",.1875, .25, .3125, .375)
Else If Leg2 = 2.5
MultiValue.SetList("Thickness", .1875, .25, .3125, .375, .5)
End If
Else If Leg1 = 3
MultiValue.SetList("Leg2", 2, 2.5, 3)
If Leg2 = 2
MultiValue.SetList("Leg2", .1875, .25, .3125, .375, .5)
Else If Leg2 = 2.5
MultiValue.SetList("Thickness",.25, .3125, .375)
Else If Leg2 = 3
MultiValue.SetList("Thickness", .1875, .25, .3125, .375, .5)
End If
Else If Leg1 = 3.5
MultiValue.SetList("Leg2", 2.5, 3, 3.5)
If Leg2 = 2.5
MultiValue.SetList("Leg2", .25, .3125, .375, .5)
Else If Leg2 = 3
MultiValue.SetList("Thickness",.25, .3125, .375, .5)
Else If Leg2 = 3.5
MultiValue.SetList("Thickness", .25, .3125, .375, .5)
End If
Else If Leg1 = 4
MultiValue.SetList("Leg2", 3, 3.5, 4)
If Leg2 = 3
MultiValue.SetList("Leg2", .25, .3125, .375, .5)
Else If Leg2 = 3.5
MultiValue.SetList("Thickness",.25, .3125, .375, .5)
Else If Leg2 = 4
MultiValue.SetList("Thickness", .25, .3125, .375, .5, .625, .75)
End If
Else If Leg1 = 5
MultiValue.SetList("Leg2", 3, 3.5, 5)
If Leg2 = 3
MultiValue.SetList("Leg2", .25, .3125, .375, .5)
Else If Leg2 = 3.5
MultiValue.SetList("Thickness",.25, .3125, .375, .5, .625, .75)
Else If Leg2 = 5
MultiValue.SetList("Thickness", .25, .3125, .375, .5, .625, .75)
End If
Else If Leg1 = 6
MultiValue.SetList("Leg2", 3.5, 4, 6)
If Leg2 = 3.5
MultiValue.SetList("Leg2", .3125, .375, .5)
Else If Leg2 = 4
MultiValue.SetList("Thickness",.3125, .375, .5, .625, .75)
Else If Leg2 = 6
MultiValue.SetList("Thickness", .375, .5, .625, .75, .875)
End If
Else If Leg1 = 7
Leg2 = 4
MultiValue.SetList("Leg2", .375, .5, .625, .75)
Else If Leg1 = 8
MultiValue.SetList("Leg2", 4, 6,
If Leg2 = 4
MultiValue.SetList("Leg2", .5, .75)
Else If Leg2 = 6
MultiValue.SetList("Thickness",.5, .75, 1)
Else If Leg2 = 8
MultiValue.SetList("Thickness", .5, .625, .75, 1)
End If
End If
Else If Material = "SA-240 304 SS"
MultiValue.SetList("Leg1", .75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4)
If Leg1 = .75
Leg2 = .75
Thickness = .125
Else If Leg1 = 1
Leg2 = 1
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 1.25
Leg2 = 1.25
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 1.5
Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 2
Leg2 = 2
MultiValue.SetList("Thickness", .125, .1875, .25, .375)
Else If Leg1 = 2.5
Leg2 = 2.5
MultiValue.SetList("Thickness", .1875, .25, .375)
Else If Leg1 = 3
Leg2 = 3
MultiValue.SetList("Thickness", .25, .375)
Else If Leg1 = 3.5
Leg2 = 3.5
Thickness = .25
Else If Leg1 = 4
Leg2 = 4
MultiValue.SetList("Thickness", .25, .375)
End If
Else If Material = "SA-240 304L SS"
MultiValue.SetList("Leg1", .75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4)
If Leg1 = .75
Leg2 = .75
Thickness = .125
Else If Leg1 = 1
Leg2 = 1
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 1.25
Leg2 = 1.25
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 1.5
Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 2
Leg2 = 2
MultiValue.SetList("Thickness", .125, .1875, .25, .375)
Else If Leg1 = 2.5
Leg2 = 2.5
MultiValue.SetList("Thickness", .1875, .25, .375)
Else If Leg1 = 3
Leg2 = 3
MultiValue.SetList("Thickness", .25, .375)
Else If Leg1 = 3.5
Leg2 = 3.5
Thickness = .25
Else If Leg1 = 4
Leg2 = 4
MultiValue.SetList("Thickness", .25, .375)
End If
Else If Material = "SA-240 316 SS"
MultiValue.SetList("Leg1", 1, 1.5, 2,3)
If Leg1 = 1
Leg2 = 1
Thickness = .125
Else If Leg1 = 1.5
Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 2
Leg2 = 2
MultiValue.SetList("Thickness", .1875, .25)
Else If Leg1 = 3
Leg2 = 3
MultiValue.SetList("Thickness", .25, .375)
End If
Else If Material = "SA-240 316L SS"
MultiValue.SetList("Leg1", 1, 1.5, 2,3)
If Leg1 = 1
Leg2 = 1
Thickness = .125
Else If Leg1 = 1.5
Leg2 = 1.5
MultiValue.SetList("Thickness", .125, .1875, .25)
Else If Leg1 = 2
Leg2 = 2
MultiValue.SetList("Thickness", .1875, .25)
Else If Leg1 = 3
Leg2 = 3
MultiValue.SetList("Thickness", .25, .375)
End If
End If
I'd place all my data into an embedded spreadsheet and then have ilogic look up the data from there. Its easier to edit and a lot shorter code.
You embed the spreadsheet in the Parameters. At the bottom of parameters click the link button. At the very bottom of the screen set the type to Embed. Search for the spreadesheet to embed and click open.
Here are some notes I wrote myself on finding values in a spreadsheet. I hope this helps.
In iLogic open the node under the Snippets on the System tab called "Excel Data Links".
Click on FindRow (Embedded) and the following code will appear in the code window...
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "columnName", "<=", 0.2)
Rename the Embedding 1 and the Sheet1 if you have renamed the spreadsheet.
Set the columnName to the name of the column you want to find the matching info.
Example:
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "FanSizes", "=", FanSize)
The value returned to i is the Row that the matching information was found in. In the example I = the row number that the column FanSizes found the value of FanSize.
You can now use I to return the value of a different cell for that same FanSize.
Example:
WhlLap=GoExcel.CellValue("3rd Party:Embedding 1", "Sheet1", "C" & i+1)
WhlLap Equals whatever the value of column C Row i.
if you know some basic programming it makes it alot easier
Coming from Revit and having good family building experience, I have to say that ilogic is a great tool. I have to say, that I wish Revit families were more like it.
I love being able to make "forms"
FWIW I like to use iLogic for creating configurable templates. I have a couple of simple iLogic rules that I use on my woodworking templates.
I have a pre-created "Board" in Inventor. The rule files when the template starts, and let;s me change length, width, and thickness, as well as turning tenons on or off via a form.
Quick, simple, and a nice little time saver.
Jonathan Landeros
KETIV Technologies
Orange County, California.
I've got a blog: www.inventor-tales.blogspot.com
“We have now left Reason and Sanity Junction.Next stop, Looneyville.” -Bob the Skull in the Dresden Files