Modelling a 'Flexible' part?

Modelling a 'Flexible' part?

gerrardhickson
Collaborator Collaborator
3,440 Views
20 Replies
Message 1 of 21

Modelling a 'Flexible' part?

gerrardhickson
Collaborator
Collaborator

Hi All,

 

I have a unique problem and I could use some advice. I want to model a 'flexible' part. To be clear, I don't mean flexible in the sense of being rubbery, but rather, one whose dimensions vary by outside constraints - similar to flexible assemblies.

 

The problem is a simple bracket - with a flat plate on one end, and a pivoting mount on the other. The problem is that the dimensions of this bracket will vary with each location it's used (and it will be used a lot). 

It's not important, whether this is modelled as a part or assembly, the BOM will be managed elsewhere, but I do need the length (L) made available as a parameter, or some other way so I can use it later. The angle (A) doesn't really matter, but it will change from location to location.

 

gerrardhickson_0-1670569538960.png

 

Here's what I've tried/considered:

  • I tried using adaptivity - but you can't have multiple adaptive occurrences of a part within the same assembly - so that's out.
  • I have considered making it as an assembly, allowing the shaft of the bracket to be connected via a pivot joint to the swivel bracket, but to continue for some length (say 1 meter) through the fixed bracket - then use an extrude cut at the assembly level to clean up the protruding material once all brackets are placed. This would work, but I don't know how to get the Length (L) parameter for each occurrence.
  • The longest, most painful is to calculate the angle and length of each occurrence externally (e.g. Excel) then import those values as model states. This would also work, but it's more effort than I would like.
  • VBA/iLogic

 

Ideally, I would just create a multibody part that is adaptive, and constrain each occurrence adaptively - then use a reference dimension to output the length as an iProp or similar.

 

Any suggestions?

 

0 Likes
3,441 Views
20 Replies
Replies (20)
Message 2 of 21

BDCollett
Advisor
Advisor

Are the backets only being used in the context of one assembly, or are you moving them around to different new assemblies?

iLogic is going to be the solution here, and there isn't one way.

This guy has a good example, of a smart assembly part that he places on the fly that adjusts to the assembly it's placed into.

At 2:20 you can see how the legs are generated to be the correct length and attached at the brackets.

(11) iLogic Design Automation Example - YouTube

 

Have iLogic adjust the length and angle of each occurrence of the bracket assembly and place it where it needs to go.

0 Likes
Message 3 of 21

gerrardhickson
Collaborator
Collaborator

Thanks - I'll look into that option soon. For now though - just to reiterate, there are only 2 requirements for how it's achieved. All I need is a visual representation (for inclusion in drawings) and the Length (L) parameter (for use on fabrication drawings) - the angle (A) changes, but I don't need that as an output. Assemblies, parts, multi-body, ilogic are all potential solutions.

0 Likes
Message 4 of 21

gerrardhickson
Collaborator
Collaborator

There's a lot of information missing from that video... The general summary is "use code"... I have considered using a programmed solution, so I've edited my original post.  Code is an option, but it's more time-consuming than I'd like. This is a bit of a throw-away problem, rather than a long-term investment.

0 Likes
Message 5 of 21

BDCollett
Advisor
Advisor

The problem is that Inventor does not have a pattern feature that can have varying parameters. Otherwise, you could have a pattern that adjusts the (L) parameter as required. Then just have a sketch pattern to drive the locations.

 

As you said there are a lot of these, having to manually place or extrude them individually is what you are trying to avoid. Ideally you just want to know the cut lengths, quantity and total length of material for those sections.

 

What controls where these need to be placed and the quantity? Is it a static design or does it vary?

0 Likes
Message 6 of 21

BDCollett
Advisor
Advisor

@gerrardhickson wrote:

There's a lot of information missing from that video... The general summary is "use code"... I have considered using a programmed solution, so I've edited my original post.  Code is an option, but it's more time-consuming than I'd like. This is a bit of a throw-away problem, rather than a long-term investment.


Yes, it's a demo of what can be done. How you get there can have multiple solutions. 

 

If you are just designing a one off and need to know those lengths, then the time spent getting this to automate would obviously not be worth it, but you didn't really state if this was something that will be used for multiple designs or not.

 

Can you just create the layout as sketches, and then populate that with frame generator for the lengths? 

0 Likes
Message 7 of 21

gerrardhickson
Collaborator
Collaborator

Thanks, I'll keep that in mind as an option...

0 Likes
Message 8 of 21

cadman777
Advisor
Advisor

I've run into this a number of times in the past doing piping. Not being a good coder, Inventor forced me to use what's available out-of-the-box. I discovered very quickly that there is no simple and easy solution to this challenge. No matter how you approach it (and you're pretty much listed the tools that are available in Inventor), you're going to have to grind away on the keyboard and burn up a lot of energy arriving at a solution.

 

I found the easiest way is to make the leg member Adaptive. Then with every new set of legs, copy that leg on disk and rename it, then substitute it into the new assembly that contains all the parts that don't change. Then make those assemblies Flexible in the main assembly. If you don't care about fixing the angle, then use an arc slot with a bolt assembly to lock it in place, or else design it (as you mentioned) with a pin connection and some other kind of adjustable lateral brace.

 

The video that @BDCollett posted was impressive. But who has the time or skill to code such things? And if you make your customer pay for your coding time, then they own your code. At least that's how it works in the world of 'good business'. But if you spend the hours to create the code, and you use it only once, then what's the point? You can't charge your customer for it, and if you're under a deadline (which most are), then you don't have time to burn like that. The only people I know who write code like that work for big bux corporations who can afford to throw money at talent like the guy in the video, and who own every idea and every piece of work that he creates. That's the modern form of slavery. We work in corporate guilds today, instead of the mercantile guilds of the middle ages and yesteryear.

... Chris
Win 7 Pro 64 bit + IV 2010 Suite
ASUS X79 Deluxe
Intel i7 3820 4.4 O/C
64 Gig ADATA RAM
Nvidia Quadro M5000 8 Gig
3d Connexion Space Navigator
0 Likes
Message 9 of 21

BDCollett
Advisor
Advisor

I think you will find it doesn't take as much time as you imagine making code to do these kinds of things, especially with the help of some of the forum users here who are very helpful.

If the design is one that you re-use and each design takes an hour, spending 40hrs might make perfect sense to then be able to re-design in a couple of minutes.

 

If you are at a company that builds and sells their own products, you can then hand the automated assembly off to others who can generate parts and drawings with little design input.

 

Every time you create something, you learn and the next time you get faster. Like any tool in the software. iLogic is no different.

 

 

 

0 Likes
Message 10 of 21

cadman777
Advisor
Advisor

When you do it using an Adaptive part, it takes only a couple minutes to create each new assembly, once the first assembly is made. After all, you're only swapping out one part. And if you need a drawing for each assembly, you can just copy and sub the new for the old and do a little scrubbing to clean it up (which you'd be forced to do with any iLogic 'automatic' drawing).

... Chris
Win 7 Pro 64 bit + IV 2010 Suite
ASUS X79 Deluxe
Intel i7 3820 4.4 O/C
64 Gig ADATA RAM
Nvidia Quadro M5000 8 Gig
3d Connexion Space Navigator
0 Likes
Message 11 of 21

gerrardhickson
Collaborator
Collaborator

Thanks for all the suggestions guys. The main reason for asking was in case there's a simple solution that I've missed, but it seems not.

 

I'm very comfortable with writing code, so I know what's involved. But the trick to writing good code is to write as little as possible. Code can get complex fast, so I'll get creative and use the out of the box features as far as possible, then only code the last little bit.

 

In this case I'm going to try a flexible assembly with one adaptive part in it. This may fail due to the one adaptive part per assembly problem, in which case I can code the length of that part to update based on the location of the parts in the flexible assembly. 

 

Thanks again

Message 12 of 21

BDCollett
Advisor
Advisor

@cadman777 wrote:

When you do it using an Adaptive part, it takes only a couple minutes to create each new assembly, once the first assembly is made. After all, you're only swapping out one part. And if you need a drawing for each assembly, you can just copy and sub the new for the old and do a little scrubbing to clean it up (which you'd be forced to do with any iLogic 'automatic' drawing).


They said the assembly has multiple versions of this part where the length can be any size, if it was just one obviously it would be simple to do.

0 Likes
Message 13 of 21

johnsonshiue
Community Manager
Community Manager

Hi! I can see two approaches in Inventor, while Inventor does not support the concept of Flexible Parts. One is iLogic, essentially creating multiple datasets for each variation.

The other one is to create multiple adaptive parts. Each adaptive part can only be adaptive within one assembly. To have multiple definitions, you need multiple parts.

So, without the ability to create a flexible parts, you need to use multiple adaptive parts to work around it.

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
Message 14 of 21

cadman777
Advisor
Advisor

 

I'll get creative and use the out of the box features as far as possible,
then only code the last little bit

 

I agree, it's best to use the KISS method (keep it simple stupid).

And using the hybrid approach is probably the best way to accomplish that.

That's how I've done it with the few iLogic rules I regularly use.

But I can't take any credit for those iLogic rules, b/c they came from the smart coder guys in the Customization forum!

 

Incidentally, this thread just appeared on the board.

See MESSAGE 7 OF 9.

This is what I was talking about above.

It's exactly how I do it in these types of scenarios.

Very good video explanation by Chris!

... Chris
Win 7 Pro 64 bit + IV 2010 Suite
ASUS X79 Deluxe
Intel i7 3820 4.4 O/C
64 Gig ADATA RAM
Nvidia Quadro M5000 8 Gig
3d Connexion Space Navigator
0 Likes
Message 15 of 21

BDCollett
Advisor
Advisor

That is a really good example of using Adaptive, my assumption was that there would be too many of these parts to manually place and constrain. That may not be the case.

Hopefully they come back and show us how they got on.

 

0 Likes
Message 16 of 21

cadman777
Advisor
Advisor

Maybe he will copy Chris' process using iLogic/VBA?

It's the simplest process I could conjure up using Inventor.

Apparently Chris thinks so as well.

 

All he would have to do is check the the same Leg assembly on both sides of the machine to see if there is a LH or RH part, then copy it on disk and rename it, then copy the assembly on disk and rename it, then swap the new part into the new assembly, then check the part to make sure the ExtrusionLength feature is adaptive and the part in the model tree is adaptive. Then he can place the new Leg assembly into his main assembly in the next support position on the machine.

... Chris
Win 7 Pro 64 bit + IV 2010 Suite
ASUS X79 Deluxe
Intel i7 3820 4.4 O/C
64 Gig ADATA RAM
Nvidia Quadro M5000 8 Gig
3d Connexion Space Navigator
0 Likes
Message 17 of 21

gerrardhickson
Collaborator
Collaborator

Hi All,

 

I ended up with a hybrid approach as expected. I created a flexible phantom assembly with 2 or 3 brackets in each (this reduced the number of assemblies I needed to constrain). The assembly contains 2 work features - one at each end. Code then measures the distance between the two work features then adjusts the length of the post to suit.

 

It's not as convenient as I hoped, but it will do for now.

 

gerrardhickson_0-1671059748791.png

 

Thanks for the suggestions.

 

Message 18 of 21

BDCollett
Advisor
Advisor

Great to see you found a solution.

The only other thing I can see from the image is that it looks like there are only 3 unique lengths, or are there situations where they can all be in different positions?

Message 19 of 21

cadman777
Advisor
Advisor

Very nice.

That's quite a large structure!

Thanx for the update.

Gives me something else to think about (adding Flexible to the operation).

... Chris
Win 7 Pro 64 bit + IV 2010 Suite
ASUS X79 Deluxe
Intel i7 3820 4.4 O/C
64 Gig ADATA RAM
Nvidia Quadro M5000 8 Gig
3d Connexion Space Navigator
0 Likes
Message 20 of 21

gerrardhickson
Collaborator
Collaborator

Each length is unique. There's a subtle variation from background to foreground and a large variation from left to right. There's a total of 12 spans which gives a total of 76 unique brackets...