cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X

/* Adjust LENGTH based on required Volume

RAMBK
3-Visitor

/* Adjust LENGTH based on required Volume

Hi,

Please can anybody help me on creating relation between Length and volume of the part. I have part with Length x width x height parameters. I have Volume fixed. So what I am looking for is if I change the width of the part then the Volume of the part should not change instead length or height should change to accommodate the volume.

 

Thanks

8 REPLIES 8
Chris3
20-Turquoise
(To:RAMBK)

First, run a mass properties report. Then the PRO_MP_VOLUME variable will be populated. You can find the internal mass parameters by selecting the "reported mass properties" drop down. The PRO_MP_VOLUME variable is one of these.

LENGTH = PRO_MP_VOLUME / WIDTH / 2
HEIGHT = LENGTH

Capture.PNG

RAMBK
3-Visitor
(To:Chris3)

Thank you Chris for the reply!

But this relation doesn't make the constant volume. Exactly what I am looking is assigning the required volume to the part by changing particular dimension parameter using relations. So whenever I change any dimension that makes the part have the same volume and change the particular dimension which I want.

 

KenFarley
21-Topaz I
(To:RAMBK)

I really don't understand what you are asking to have happen. In the simplest case, the volume is a function of three variables

volume = length * width * height

You are asking to change one of the variables and have the volume be kept constant. Fine, that could probably be done in some fashion, but under what constraints? If you change length, what rules are being dictated to change the width and/or height to maintain the constant volume? Keep the ratio of them the same? Lock one and only change the other? What happens if I then initiate a change to one of the other variables?

RAMBK
3-Visitor
(To:KenFarley)

Actually the part which I am working is not simple cube perhaps it has different variables length, width, height, angle etc.. Need to generate different models with iterations for angle variable and need to maintain the same volume for all iterations. When I change the angle the only thing can update according that is overall length and keep the same volume for all iterations. Here looking for formula that I can put in the relation between angle, volume and length. So when I change the angle only the length of the part can update to accommodate the volume.

StephenW
23-Emerald II
(To:RAMBK)

As someone mentioned before, you will need behavioral modeling for something other than relatively simple relations. 

Without knowing the exact details of your part, no one will be able to tell you an exact formula for any arbitrary shape.

TomU
23-Emerald IV
(To:RAMBK)

The behavioral modeling extension can calculate this, but you will have to manually run the analysis each time you change something.  The better solution is to figure out how to calculate the volume yourself, based on all variables, and then reverse the equation to solve for length while keeping the volume constant.

dcokin
13-Aquamarine
(To:RAMBK)


@RAMBK wrote:

So when I change the angle only the length of the part can update to accommodate the volume.


So the thing you're changing (the angle) is in a closed sketch?

Use that sketch to create a "Fill" feature.  (A 2D surface.)

Create an analysis feature that will give you the area of that "Fill", automatically updated with each regeneration.

Hide the "Fill" feature, and create an extrusion based off that same sketch.  (Alternatively, create a "Thicken" feature off the "Fill")

Create a relation that changes the length of the extrusion to hold your desired volume, by dividing by the measured area.

dgschaefer
21-Topaz II
(To:RAMBK)

You need to create a parameter for your target volume, perhaps TARGET_VOLUME.  Then, assuming your part is a simple rectangle, a relation like this will update the LENGTH based on changes to HEIGHT or WIDTH:

 

LENGTH = TARGET_VOLUME / HEIGHT / WIDTH

However, I doubt that your part is that simple, and therefore the volume formula is more complex than LENGTH x WIDTH x HEIGHT.  For more complex geometry, look into the Behavioral Modeling extension.  It's designed to do these kind of optimizations.

 

If you are dealing with an extruded shape with a constant section, then VOLUME = SECTION_AREA x LENGTH.  You can use an analysis feature to get the cross sectional area and then use this relation:

 

LENGTH = TARGET_VOLUME / SECTION_AREA
--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn
Top Tags