Thursday, 4 June 2015

Drawing curves to match model



HOW TO SET DRAWING LINE COLORS AS MODEL APPEARANCE?

I wasn’t sure if to post this at all because it didn’t seem to provide any good and positive solution. If at all I would have post it under “food for thought" or under “let’s see if we can find a better solution”. By “we” I mean one of you showing me how to properly do it.
But just the other day this showed up as a question on the forum and seeing that none came with a better-closer solution I decided to share it as a full blog. It doesn’t mean that you cannot correct me, in fact I am hoping one of you will do.

After posting my answer  the guys on the forum went quiet so I take it that either my info was more than they expected (yeah right!) or I am so far out that they are embarrassed to tell me. I think it’s the later, I’ve been there more than dozen times.
Before I continue here is the forum post.
             
Following text is an expanded adaptation of the answer provided there.

I've been playing with this on my last project. Because it was a large assembly and the pipes in the drawing ended up looking like steaming spaghetti I decided to show each run with a different colour matching the appearance set in the model.
I did a brief scan on the net to see what others have done and I got excited, almost making me think it was done before. So it was, just not the way I needed because the solutions were getting the colour of the part and I needed the colour of the run that is an assembly and the solutions are processing the curves ONE AT A TIME which it’s like watching a painting being done in real time…… a really large one…..with a small brush.
There are not many options here but if it’s a small assembly or just a part that you need processing then presto get the VB or iLogic codes bellow and get them running.
Just like my solution these need a manual update. Now, imagine that I had to add and remove views, sheets, sections, change appearances, change design views, etc. How many paintings can you watch being done in a day? That’s why I have a camera, a fast point and shoot type as well!

First solution: 
Brian Ekins has aVB code but it's processing all lines (curves) one at time and that takes forever. It creates layers with each colour but unfortunately the layers are called as the RBG code of the colour (very hard to identify and edit)

Another solutionon the mCAD forum:

Third solution was on the Inventor forum:

In my case these didn't work because I had a large assembly. This is just one sheet out of six and quite a simple one.


You can change your selection to part filter select your component (or select it in the browser) and then right click properties to change it's colour (override).

This is a partial solution because it's hard to select parts and manually update them all the time (as the assembly changes). But it’s a fast one, almost instant and it changes all line type (hidden, visible, tangent, etc.)

Because I only had visible and tangent lines (small to an ignore number) I decided to setup layers to which I would assign my runs.

So I end up creating copies of Visible layer calling them Run1, Run2, etc. and changed the colour of each one as per the assembly (manual unfortunately).Then right click on a part (or assembly in my case) in the browser, choose "select as edges" and then in the Annotate tab, Format, Layer, choose the layer you previously created.


Hey that’s pretty cool! Or not, because you need to do it for each sheet. You can expand the views in the browser and select a model (my run) in all the views before using select as edges but still to many manual operations. At least once done you can just change the colour of the layer and all sheets update.

Side Note:
Haven't tested but this seems to affect performance and increase the drawing file size. My drawing now has around 50 MB.

So now what?
Will try and put a nice ilogic together to process your browser selection to change its colour from the model on all sheets as per the appearance of your selected object.
This should not process the drawing curve-by-curve. We only have one life. It needs to get the collection of curves and change properties (override) all at the same time. Somehow that’s what using the properties on a model or using the select as edges does. Surely it can be done with iLogic or VB.

Great stuff! When can we have the code?

As soon as I have it, but the way things are going with work overload and no extra time … I might never get to do it.

Later,
ADS.