Special:
|
[DAT] (requires LDraw-compatible viewer)
|
Subject:
|
Re: Lsynth thoughts.
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Wed, 28 Apr 2004 13:26:01 GMT
|
Viewed:
|
1435 times
|
| |
| |
In lugnet.cad.dev, Kevin L. Clague wrote:
> In lugnet.cad.dev, Don Heyse wrote:
> > Yes, this would be nice if you could make lsynthcp entensible
> > without recompiling. Just read the config file.
>
> Yes, then lsynthcp can focus on the synthesis algorithms like
> spline, and belts.
>
> I'd love to have an algorithm for non-planar rubber bands.
I've only looked at the hoses so far. So I don't even know what
the current algorithm for rubber bands looks like, much less how
to improve it.
> > > There are a few things that control hose synthesis; hose type, hose
> > > segment part type, segment orientation, segment diameter, and the
> > > constraints.
> >
> > Don't forget total number of segments for fixed length hoses. And
> > I'm not sure what you're including in "segment orientation", but
> > subsequent segments of Larry's fake string and subsequent chain
> > link segments are rotated 90 degrees from each other. You'd need
> > language to control that.
> Don, the splining algorithm gives us *no* control over the distance
> between the resulting spline points. They get farther apart the
> tighter the curve, and closer together when the curvature is lower.
True, for my first cut at the fixed length length rubber hoses
I calculated the total spline length and divided it into 50 segments.
If you put the ends too far apart, you'll get a broken hose. It
shouldn't be a problem when documenting a real life design though.
You can see what I did here by clicking on the "Diff to previous 1.1"
link:
http://cvs.sourceforge.net/viewcvs.py/lsynth/lsynth/lsynth/tube.c
> I'd like to study the algorithm that Frederick Glockner uses for
> true length hoses. I believe it uses an iterative splining
> approach.
I suspect you've got most of the ingredients to do it that way, since
you can easily calculate the total length of the current spline. The
problem is that you've fixed the end point constraints with the
LS00.DAT parts. Since Frederick's method automagically creates the
end constraints, he's free to wiggle them around to adjust the length.
> > > I'd like a file format that defines a hose type name, and its
> > > attributes (hose cross section segment, the oriention of the hose
> > > axis in the cross section part, and the outer diameter of the hose).
> >
> > > We might also want some special condiftions for end of hose
> > > issues. e.g. flared hose, or hose ends with special symbols on the
> > > end so we can color code the hose ends, etc.
> >
> > > I'd also like to define the part types used for individual hose
> > > constraints. Eventually I'd like to add new hose constraint types.
> > > For example, a constraint that says "you have to go through this
> > > point, but I don't care about the orientation of the axis at this
> > > point."
> >
> > Yes, don't care constraints would make things simpler for many hoses.
> > I like the LS00.DAT hose constraints, but for some things it might be
> > easier to work with assumed constraints based on the parts located at
> > the hose ends.
>
> Examples?
Well, I'd say this contains enough information to make a hose.
The rubber hose comes out of only one end of the 750.dat so we
know enough to generate some basic start and end constraints.
0 WRITE SYNTH BEGIN RUBBER_HOSE 14
1 0 80 -48 -60 1 0 0 0 1 0 0 0 1 750.dat
1 0 -40 -40 -50 0 -1 0 1 0 0 0 0 1 750.dat
0 WRITE SYNTH END
In ldglite I can also generate a ribbed hose from end parts which
contain a single technic pin. Just look for a subpart called
"connect*.dat" and use it's location and orientation to generate
the end constraint. Admittedly this requires you to dig deeper
and parse the dat files of the end parts.
> > Or would it be better for the program calling lsynthcp to have a
> > function which automatically creates the hose end constraints based
> > on the hose type and the fixed end parts?
> I like the idea of reusing LS00.DAT as much as possible. I'm not
> sure what the advantage is to having different constraint types for
> different hose types.
I agree with you there, but LS00.dat needs to be made into a better
tool so you can really see what you're doing with it. For starters,
maybe it should be transparent, with a line down the center axis, and
a bullseye surrounding the origin (where the hose starts)
> > Also, I had some trouble visualizing exactly where the hose would
> > start and end from the LS00.DAT constraint. Maybe the actual
> > endpoints of the hose would be better illustrated by adding a bullseye
> > in a fixed color to the LS00.DAT constraint.
>
> Well, the start and end points are at the LS00.DAT (isn't it obvious? LOL)
>
> / \ head
> ] [ stem
> [_] base
>
> The origin is where the base meets the stem.
> Jennifer Clark suggested that we could put a disk between the base
> and stem to indicate the origin of the part.
I'd make it transparent with a colorful center axis line. Put a disk
between the base and the stem with a colorful bullseye on it, and
maybe even make the base and the stem the same diameter tube since a
bullseye disk is a better indicator of the origin than the base-stem
split. Hmmm, maybe I'll see if I can put this together tonight.
> > > For band synthesis, I'd like to be able to define band types: round
> > > cross section rubber bands, square cross section rubber bands, new
> > > technic chain, old technic chain, plastic linked tread, rubber
> > > tread. For each type, I'd like to define the cross section part,
> > > its orientation, diameter (if apropo), etc. > For band constraints,
> > > we need to know the part type, its diameter (or radius), and its
> > > orientation.
> >
> > > I don't think the above looks like stuff that goes into an LDraw
> > > file format, unless we introduce a whole bunch of meta commands.
> > > When it is this far off, is it worth forcing it into the LDraw file
> > > format? I suppose the advantage is that people can define their
> > > hose type directly in an LDraw file and have it ported around with
> > > it. Hmmm...
> >
> > I agree. Hmmm...
>
> Any input on a format will be warmly welcomed.
I thought you volunteered to write something up for Steve... ;^)
Don
|
|
Message has 1 Reply: | | Re: Lsynth thoughts. [DAT]
|
| (...) I envision something more like this. 0 ~LSYNTH constraint part 0 Name: lz00.dat 0 Author: John VanZwieten, Steve Bliss, Kevin Clague, Paul Easter, Don Heyse 0 Unofficial LCad Part 0 CATEGORY Hose 0 1999-05-02 KevinB Added nipple (taken from (...) (21 years ago, 3-May-04, to lugnet.cad.dev)
|
Message is in Reply To:
| | Re: Lsynth thoughts.
|
| (...) Yes, then lsynthcp can focus on the synthesis algorithms like spline, and belts. I'd love to have an algorithm for non-planar rubber bands. (...) Don, the splining algorithm gives us *no* control over the distance between the resulting spline (...) (21 years ago, 28-Apr-04, to lugnet.cad.dev)
|
7 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|