To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 7852
7851  |  7853
Subject: 
Re: Formalizing a method for handling synthesizable parts
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 16 Sep 2002 16:56:31 GMT
Viewed: 
393 times
  
In lugnet.cad.dev, Kevin Clague writes:

It seems like computing and recomputing shape to match length, stiffness and
constraints is a way to figure out how much tube is between any two
constraints.  Is this iterative solving?

I'd like a relatively fast algorithm, but iterative sounds like it might be a
concern.

Iterative solving requires a model and a way to compute how far it is from a
desired state and a way to compute how to take a tiny step toward the
desired state. You loop over tiny steps, updating the model, until either X
steps are taken, the desired state is reached within some closeness, or no
progress is being made.

An example would a spring with a rock on top. Though it is easy to find an
exact solution for the resting state, it can illustrate the iterative
method. The spring equation is Hook's Law, F= -kx where x is the distance by
which the spring is compressed and k is a constant (spring constant). The
forces on the rock are gravity and the spring force. The sum of forces on
the rock are gm - kx which in the resting state must come to be zero.

Now make up some numbers; guess that the spring is compressed by 1cm and
calculate what the sum of forces is right now. Probably it indicates that
the spring must push the rock up a little, so, you could put in your program
a calculation of how far the rock would be shoved through an application of
spring force in say 1/10 of a second, and then update
the variable x, and repeat until the forces balance out. Another choice
might be to examine the direction of the force and adjust x by a unit step
in that direction, say 1/2 cm.

Since it's a spring, if you were to model acceleration and velocity of the
rock was moving at you'd get a bouncing effect, which is just going to too
much trouble, because your model will never settle down until you model
damping as well (slowing of the movement).

A more challenging model is a string hanging loose between two points.  You
can choose to model the location of 10 points on the string. This is tough
because you can't stretch a string and making small changes to the points
distorts the total length of the string. One modeling approach is to let the
string stretch as it falls but have the real length as the desired state.
Making a literal spring model for the string as a very very stiff spring is
not advised but can be hilarious, because it tends to become a perpetual
motion machine (the explanation is your errors are always adding new energy
to the string.)

Modeling a segmented tube, I would choose to express the spring force of one
element as a function of the angle between its two neighbors. A tiny step
for movement would be in a line bisecting this angle, and should be larger
the more acute this angle is. This is not perfect - it implies that the
point at the knee moves first instead of moving its neighbors - but it might
work.



Message is in Reply To:
  Re: Formalizing a method for handling synthesizable parts
 
Erik, I think that for tube like devices, the constraints will be vectors that indicate some part of the tube needs to be at this location and at this orientation. The endpoints are like this. This constraint mechanism works well for routing wires (...) (22 years ago, 16-Sep-02, to lugnet.cad.dev)

37 Messages in This Thread:









Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR