08:23.00 |
*** join/#brlcad clock_
(n=clock@zux221-122-143.adsl.green.ch) |
11:50.03 |
clock_ |
What does the "overlap" message
mean? |
11:50.14 |
clock_ |
Does it indicate any harmful effect? |
13:56.01 |
brlcad |
it's a modelling error that would mean
something bad if you were performing an analysis |
13:56.10 |
brlcad |
but is mostly harmless for
ray-tracing |
13:56.17 |
``Erik |
it means two different pieces of solid
geometry exist at te same point in space |
13:56.31 |
``Erik |
brlcad, you making it down this
week? |
13:56.43 |
brlcad |
you can use rt -R to quell the overlap
reporting |
13:56.52 |
brlcad |
``Erik: probably later in the week |
13:57.01 |
brlcad |
like maybe tomorrow and thurs |
13:57.04 |
brlcad |
or thurs/fri |
13:57.05 |
``Erik |
ok, have you looked at the schedule? |
13:57.08 |
brlcad |
have to check out the schedule |
13:57.12 |
brlcad |
nope, not yet |
13:57.15 |
``Erik |
<-- off tomorrow, will be down here
thurs&fri |
13:57.38 |
``Erik |
I have the dead tree and a dvd, if you want a
paper, I can send you the data off the dvd and you can review
it |
13:57.42 |
``Erik |
see if it's worth coming down for |
13:59.38 |
brlcad |
you can upload the dvd and i'll take a peek,
otherwise I was just going to check the schedule that's on-line and
flip a coin |
14:00.23 |
``Erik |
from looking at the schedule, some of the best
stuff seems frontloaded in the week :/ |
14:00.32 |
``Erik |
when I get home, I'll dig up the dvd and see
about making it available to you |
14:01.08 |
``Erik |
if I remember O:-) |
14:01.43 |
brlcad |
heh aiight |
14:04.49 |
clock_ |
brlcad: what is the general rule to follow to
avoid overlaps? |
14:05.07 |
clock_ |
And what actually is the overlap? |
14:05.21 |
clock_ |
What is overlapping what? |
14:07.07 |
brlcad |
clock_: as erik mentioned, it means you have
two objects physically overlapping in space |
14:07.43 |
brlcad |
when you make something a region, that marks
it as a real physical object as opposed to just a shape |
14:08.46 |
brlcad |
say you make a tire (region A) and an axel
(region B) and don't line up the axel correctly in the center of
the wheel such that it overlaps |
14:09.07 |
clock_ |
how do I tell if something is a region or
not? |
14:09.08 |
brlcad |
that's an example, it's something physically
inaccurate |
14:09.48 |
brlcad |
the overlap message spewing out at you will
report which two regions are involved |
14:09.52 |
clock_ |
I have no regions in my model. Everything ist
just combination |
14:09.57 |
clock_ |
So there are no regions that could
overlap |
14:10.15 |
brlcad |
you can check if something is a region by
looking at the combination and seeing if the region bit is set
(combination editor, l command, db get command, other
ways) |
14:11.44 |
brlcad |
keeping track of regions/parts is the subtle
difference between solid modeling (where it is very important for
analysis) and generic modeling (where it never matters) |
14:12.01 |
clock_ |
Well I just did red <the toplevel thing>
and it say region:No |
14:12.36 |
clock_ |
http://ronja.twibright.com/3d/tetrax.g |
14:12.38 |
brlcad |
that would be to edit the region, l is more
simple |
14:13.10 |
``Erik |
hm, maybe we need a "what is an overlap" faq
type thing |
14:13.59 |
brlcad |
yeah, I'd started on a diagram that attempts
to explain regions/parts/assemblies/etc some of the confusion is
just in the generic terminology |
14:14.02 |
``Erik |
like, make an example of having two balls, if
you push them together, they stop when they collide, so if you
define them so they overlap, it's physically impossible and you'd
have to do a union if you want that kinda overlap with some sense
of reality |
14:14.10 |
brlcad |
i remember having a heck of a time getting
what a region was |
14:14.23 |
``Erik |
well, yeah, but you're slow ;)
*duck* |
14:14.37 |
clock_ |
brlcad: can a combination contain
regions? |
14:14.44 |
clock_ |
And if yes, is it a correct
practice? |
14:14.58 |
clock_ |
Will mged segfault on combination containing
regions? |
14:15.32 |
brlcad |
yes it can and yes it's correct
practice |
14:15.45 |
clock_ |
is solidworks free software? |
14:15.50 |
archivist |
no |
14:16.03 |
brlcad |
a combination that contains regions is a
"group" (hence the g command and family) or an "assembly" in other
parlance |
14:16.13 |
clock_ |
can a group contain non-regions? |
14:16.24 |
brlcad |
archivist: ah, good idea |
14:16.31 |
clock_ |
does region and combination differ only by the
region flag and material settings? |
14:16.37 |
clock_ |
Can a combination have material
settings? |
14:16.49 |
brlcad |
clock_: run "rtcheck" and it'll highlight and
report on the overlaps |
14:16.53 |
clock_ |
If yes, are the material settings of a
combination always ignored? |
14:17.20 |
clock_ |
I think BRL-CAD needs instructions like the
Ronja website is |
14:17.37 |
clock_ |
The PDF is lengthy to read and I forget the
beginning when I get to the end |
14:17.44 |
clock_ |
with examples |
14:17.46 |
brlcad |
the material settings that you're probably
referring to are just optical material settings |
14:18.00 |
clock_ |
You can copy my web framework to automatically
generate web output for .g models |
14:18.14 |
brlcad |
the optical material settings can be applied
to any object and there's an override, but is irrelevant to
overlaps |
14:18.39 |
brlcad |
a group can contain non-regions too -- that's
still an assembly |
14:18.48 |
clock_ |
is group just a special case of something
where all operations are union? |
14:18.53 |
clock_ |
If yes, special case of what is it? |
14:19.28 |
brlcad |
yes it is, a special case of a combination
where all operations are a union |
14:20.03 |
``Erik |
there's a quick&dirty howto mged thingy,
uh, building a birdhouse or something, have you seen
that? |
14:20.11 |
brlcad |
generally refers to a combination above the
region level (i.e. assemblies) though it can be used even to group
things below it as well |
14:23.31 |
brlcad |
clock_: there's tons of help that is needed on
the "learn how to model with mged" front .. it actually is quite
powerful even with the unforgiving interface but is incredibly
poorly documented |
14:24.02 |
brlcad |
that's why I started with the command
reference at least, then next is a few requisite diagrams, then
perhaps a few simple tutorials |
14:24.24 |
brlcad |
any help is more than welcome ;) |
14:24.31 |
brlcad |
not short on ideas, just on .... |
15:30.16 |
Maloeran |
So you are skipping tomorrow, ``Erik? I
really don't see what I am doing here, this has very little to do
with what I'm doing or will be doing in the close future |
15:30.46 |
Maloeran |
So I just code and run out of laptop battery
constantly. I should have bought a couple backups |
15:37.56 |
clock_ |
brlcad: is group the same as combination made
just from unions? |
15:38.45 |
brlcad |
clock_: yes |
15:39.08 |
brlcad |
merely to maintain one consistent CSG
hierarchy |
15:39.17 |
brlcad |
with only three operators |
15:39.38 |
brlcad |
otherwise another operator would designate the
same end effect of having a collection |
15:39.52 |
clock_ |
brlcad: should I group primitives into
combinations and then make mutually nonoverlapping regions from
these combinations and then group the regions using the group
command? |
15:40.27 |
clock_ |
once I enter the group command there is no way
how to tell if the combination was created using "g" or
"c"? |
15:43.51 |
brlcad |
clock_: okay, i looked at your geometry and
see the problem |
15:44.09 |
brlcad |
your CSG is technically fine other than you
haven't specified *any* regions |
15:44.10 |
clock_ |
what is the problem? |
15:44.29 |
clock_ |
where it is written that you have to specify
at least one region? |
15:45.15 |
brlcad |
like I mentioned earlier, that gets into
something completely fundamental about how to construct proper
solid geometry hierarchies if you want to represent something
physical |
15:45.23 |
brlcad |
the distinction between a shape and a
solid |
15:45.41 |
brlcad |
you've described the shapes, but not "made
anything" yet |
15:45.48 |
clock_ |
so shape is something in the constructer's
head and solid is something that is lying on the table,
right? |
15:45.54 |
brlcad |
it's covered in the big mged guide over many
lessons |
15:45.56 |
clock_ |
But why does it raytrace? |
15:46.17 |
clock_ |
Yeah but I need something if I have a question
then be able to find it in the guide in 3 seconds |
15:46.26 |
clock_ |
and not need to read it once more
again |
15:46.34 |
brlcad |
right, you got the basic idea .. the shape is
like a 3d blueprint |
15:46.52 |
clock_ |
If I have an overlap is it going to count that
iron twice? |
15:46.59 |
brlcad |
it ray-traces just because what else is it
going to do.. it could abort, and that'd be incredibly
frustrating |
15:47.09 |
clock_ |
aha OK |
15:47.31 |
brlcad |
what is happening since you don't have any
regions, it's just considering it a default hierarchy |
15:47.38 |
clock_ |
Like the weight would show more kilograms
because some parts would be made from a double-density
iron? |
15:47.48 |
brlcad |
with the leaves/primitives being considered as
regions |
15:48.00 |
brlcad |
so in sym.c for example, you have primitives
that "overlap" |
15:48.01 |
brlcad |
and it reports them as such |
15:48.06 |
clock_ |
aha |
15:48.10 |
brlcad |
when they clearly are intended to be that
way |
15:48.24 |
clock_ |
Does it also report the hole that is
considered a region that it overlaps the plate from which it is cut
out? |
15:48.30 |
brlcad |
it's just that sym.c should probably be a
region, or create a sym.r region that just has sym.c in
it |
15:48.35 |
brlcad |
and the overlaps will disappear |
15:48.41 |
clock_ |
or steel.r that has tetrax in it |
15:48.51 |
clock_ |
and then say that steel.r has a colour and
density of steel |
15:49.15 |
brlcad |
a "hole" wouldn't be a region |
15:49.16 |
clock_ |
is it correct to make region according to
material from which they are made? |
15:49.28 |
brlcad |
yes! |
15:49.32 |
clock_ |
why not? The hole is a solid (rcc) and you
said that by default all solids are a region |
15:49.46 |
clock_ |
can you make a region which is half plastic
and half steel? |
15:50.10 |
brlcad |
the material type is usually a great
delimination for regions.. if it's all one contiguous piece of
metal (whether welded or not), then it would probably be good as a
region |
15:50.31 |
clock_ |
can a region be noncontiguous? |
15:50.44 |
brlcad |
yes and no |
15:50.48 |
clock_ |
when no? |
15:50.57 |
brlcad |
inherintly, it just has one material
identifier per region |
15:51.10 |
brlcad |
you can tag alternates but nothing in brl-cad
is going to recognize what is implied |
15:51.27 |
brlcad |
for the purpose of computing weights and mass,
for example, it just needs to know the density |
15:51.31 |
clock_ |
I don't get it. If I make a region that is
noncontiguous, is it going to screw up? |
15:51.31 |
brlcad |
which is tied to that material type |
15:51.49 |
clock_ |
will it say weird messages, return bullshit on
weight calculations or segfault? |
15:51.53 |
brlcad |
depends what you mean by "make a region that
is noncontinugous" |
15:52.05 |
clock_ |
I mean take two spheres with a gap in between
them |
15:52.05 |
brlcad |
mged won't let you technically
speaking |
15:52.11 |
clock_ |
and them make a region by unioning
them |
15:52.11 |
brlcad |
ok |
15:52.17 |
clock_ |
and saying the region is made of
steel |
15:52.23 |
brlcad |
ok |
15:52.27 |
clock_ |
is it legal? |
15:52.32 |
brlcad |
so far, yes |
15:52.43 |
clock_ |
can I run into problems with this
approach? |
15:53.24 |
brlcad |
so consider that example, sph1, sph2 ..
unioned together in reg.r with reg.r having a material ID set (1
for steel) |
15:53.57 |
brlcad |
you'll run into a problem if you later union
that reg.r into some other reg2.r region |
15:54.13 |
brlcad |
you're not supposed to do that |
15:54.18 |
clock_ |
what kind of problem is it going to
be? |
15:54.40 |
brlcad |
mged will let you, but it's potential for
overlaps and inconsistent geometry |
15:54.44 |
clock_ |
is it legal to make a region from primitives
and not from cobinations? |
15:55.01 |
brlcad |
if you walk down the CSG hierarchy, there
should always be one and only one region encountered |
15:55.04 |
clock_ |
What is inconsistent geomerty? |
15:55.07 |
brlcad |
along any path |
15:55.12 |
clock_ |
aha |
15:55.53 |
clock_ |
can I make a region and then group the region
and it's mirror into a group? |
15:56.01 |
brlcad |
sure |
15:56.01 |
clock_ |
So I duplicate it by reference? |
15:56.05 |
brlcad |
just don't make the group a region |
15:56.14 |
clock_ |
How can I do this without manually editing the
matrix? |
15:56.41 |
clock_ |
I always do it using vi |
15:56.48 |
clock_ |
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 :) |
15:56.53 |
brlcad |
heh |
15:57.24 |
clock_ |
and is it legal to include copies by
reference? |
15:57.41 |
brlcad |
the easiest is to model in localized
coordiates, in some quadrant, and then mirror about an
axis |
15:57.54 |
clock_ |
Is Survice going to go out of job when someone
writes instructions so that's why there are no
instructions? |
15:58.06 |
clock_ |
What is localized coordinates? |
15:58.19 |
brlcad |
heh, no, survice is quite set and sound in
their business |
15:58.27 |
brlcad |
they don't make money on the training, it's a
wash |
15:58.42 |
clock_ |
Let's say I do in part1.s rpp 0 10 0 10 0
10 |
15:58.56 |
clock_ |
now I want parts.c to be part1.s and part.s
mirrored by y axis |
15:59.12 |
clock_ |
how do I do this point-and-click, without
firing the text editor on the matrices? |
15:59.28 |
brlcad |
mirror part1.s part.s y |
15:59.41 |
brlcad |
c parts.c u part1.s u part.s |
15:59.45 |
clock_ |
but that is not by reference |
15:59.57 |
clock_ |
if I change part1.s I want both copies to
change not just on |
15:59.58 |
clock_ |
one |
16:00.18 |
brlcad |
hm, true |
16:00.29 |
clock_ |
how do I do this by reference without text
editor? |
16:00.32 |
brlcad |
need a layer in between |
16:00.40 |
clock_ |
In text editor it's mentally
strenuous |
16:00.51 |
brlcad |
instead of working on the primitive, put the
primitive into a comb, mirror the comb |
16:01.27 |
clock_ |
when I change an element of the comb then,
it's going to reflect even in the second copy? |
16:02.20 |
clock_ |
but if I move the element by matrix edit, it
will behave as copy by value and if in prim selection as copy by
reference, right? |
16:02.52 |
clock_ |
answer in sequence :) |
16:03.56 |
brlcad |
if you have a comb that includes two mirrored
objects left.c and right.c and each of those refer to the same
side.c, then yes if you modify side.c, it'll update both -- if you
edit left.c or right.c, however, it'll only apply to that
side |
16:04.35 |
clock_ |
can I align objects in mged |
16:04.42 |
brlcad |
which is to say that if you edit the matrix
over left.c or right.c, yes it'll only apply to them .. but if you
modify a matrix in side.c, it'll change both |
16:04.56 |
clock_ |
for example say this sphere should touch this
cube in the middle of it's face? |
16:05.06 |
brlcad |
alignment is done manually or via assistance
with the ADC |
16:05.23 |
clock_ |
what is ADC? |
16:05.29 |
brlcad |
the angle distance cursor |
16:05.45 |
clock_ |
it's some kind of 8-way cross isn't
it? |
16:06.01 |
brlcad |
yep, hit "a" in the graphics window |
16:06.16 |
clock_ |
how do I use it to get a precise
alignment? |
16:06.24 |
brlcad |
explaining how it works is more easily dont
with tutorials with the ADC :) |
16:06.25 |
clock_ |
Does it some kind of snap
capability? |
16:06.54 |
brlcad |
no, it won't do the snapping for you |
16:07.12 |
clock_ |
so it has some imprecision given by the visual
display limitation? |
16:07.19 |
brlcad |
but between that and/or using nirt/rtshot you
can get the value |
16:07.58 |
brlcad |
you're wanting parametrics if I'm not
mistaken |
16:08.07 |
clock_ |
is there a way how to make a hex head or do I
need to use a script I wrote? |
16:08.19 |
brlcad |
trust me that I want them too.. but I want a
new modeler environment to use them in too -- mged would be
cumbersome with parametrics |
16:08.24 |
clock_ |
what is a parametric? I know what a parametric
modeling is |
16:08.43 |
brlcad |
parametric modeling uses parametrics |
16:08.52 |
brlcad |
values that are reliant upon other
values |
16:09.03 |
brlcad |
making stuff "snap" or be automatically
aligned" |
16:09.04 |
clock_ |
aha no |
16:09.09 |
brlcad |
tied to constraints |
16:09.25 |
clock_ |
but like in qcad I have point selection where
I can opt for automatic snap into line crossing |
16:10.01 |
clock_ |
or make a line touching two circles |
16:10.01 |
brlcad |
yep, it's the same thing -- it's just that it
only uses the parametric computation to get the value |
16:10.43 |
archivist |
things like a distance/angle/alignment to a
face/line/point/whatever |
16:11.29 |
clock_ |
what is the extrude thing? Can it extrude from
vector data like dxf? |
16:11.35 |
archivist |
or the spacing is controlled by the item/s in
between/outside |
16:12.34 |
clock_ |
or extrudes only from bitmaps? |
16:12.54 |
brlcad |
clock_: yes, you provide a sketch primitive
and that is extruded to a 3D solid object |
16:13.11 |
clock_ |
What is a sketch primitive? A
bitmap? |
16:13.12 |
brlcad |
extruding bitmaps is a different primitive
(the "ebm") |
16:13.35 |
clock_ |
Is sketch primitive some kind of sketch I can
draw in mged? |
16:13.36 |
brlcad |
clock_: you have the mged quick ref on
hand? |
16:13.41 |
brlcad |
yes |
16:13.42 |
clock_ |
no |
16:14.07 |
brlcad |
http://ftp.brlcad.org/MGED_Quick_Reference_Card.pdf |
16:14.15 |
brlcad |
look at the primitives diagram |
16:14.22 |
brlcad |
in the middle is a sketch primitive |
16:14.27 |
brlcad |
vector-based shapes |
16:14.33 |
brlcad |
above it is that same shape extruded |
16:14.57 |
brlcad |
if you look at the "BRL-CAD" title in the
bottom right, that's an extruded bitmap |
16:16.04 |
brlcad |
you create sketchs either via import (not sure
if dxf fully works) or through the mged sketch editor (which is
'alphaware' and lameish, but usable for simple tasks) |
16:16.26 |
brlcad |
create a sketch via the edit menu and it'll
kick off the sketch editor |
16:16.52 |
brlcad |
someone was working on making that kick off
something like qcad instead of mged's sketch editor, but they never
finished.. that would be interesting |
16:18.29 |
clock_ |
would it be possible to make predefined
primitives like a hex or Allen head |
16:18.44 |
clock_ |
where one would just type the M-size and it
would give the head? |
16:18.49 |
clock_ |
I wrote a C code for that |
16:19.00 |
clock_ |
I just don't have the standard sizes |
16:19.19 |
clock_ |
Or also L, I, C etc. sections would be
handy. |
16:19.51 |
brlcad |
sounds like a great little command line tool
to include |
16:20.28 |
brlcad |
you saw the mk_bolt tool yes? something like
that could be extensively improved |
16:20.35 |
brlcad |
starting with something like your C
code |
16:21.44 |
clock_ |
Or a thread primitive too |
16:21.54 |
brlcad |
indeed |
16:22.01 |
brlcad |
that'd be a sweep |
16:22.05 |
clock_ |
primitive -> tool |
16:22.31 |
brlcad |
a primitive or tool would be good to
have |
16:22.44 |
clock_ |
can a thread be exacly simulated by existing
primitives? |
16:22.57 |
brlcad |
depends on the thread type |
16:22.59 |
clock_ |
With the metric thread proile? |
16:23.13 |
clock_ |
The profile is made from circular arcs and
lines |
16:23.14 |
brlcad |
and amount of effort you want, it'd use some
complex operations |
16:23.32 |
clock_ |
onen which could be automated |
16:23.33 |
brlcad |
if it's a non tapering thread, then it's
conceivably doable with the pipe primitive |
16:23.56 |
clock_ |
I say "Give me Allen head bolt M8x50 with 10mm
threadless" and it would do all the tapers and threading
:) |
16:24.04 |
brlcad |
yep |
16:24.17 |
clock_ |
but is it going to be precise or only an
approximation? |
16:24.23 |
brlcad |
maybe you'll help write a plugin that does
exactly that for the new modeler? :) |
16:24.38 |
brlcad |
it should be precise |
16:24.45 |
clock_ |
That's great |
16:24.54 |
clock_ |
but no I am going to tweak capacitors in my
Ronja RX |
16:24.58 |
brlcad |
it really depends on the thread/shaft
type |
16:24.59 |
archivist |
but it also has to do a fusee.....
hehe |
16:25.06 |
clock_ |
yesterday I bent the waves into the right
shape a bit |
16:25.12 |
clock_ |
fusee? |
16:26.14 |
archivist |
a special type of screw form in a
clock |
16:29.08 |
clock_ |
Hehe invented in 1525 by Jakub Zech in Prague
:) |
16:29.31 |
archivist |
with your nick you should know clock parts.
hehe |
16:29.53 |
clock_ |
no I know just clock signal |
16:30.17 |
clock_ |
The most reliable thing in a computer system
:) |
16:30.34 |
clock_ |
Clock never makes a mistake |
16:32.03 |
archivist |
ahem theres been a few "clock" errors eg the
y2k and the unix one coming up in a few years |
16:32.24 |
clock_ |
I mean the clock signal |
16:32.38 |
clock_ |
that's a repeating square wave. There's really
nothing that can go wrong there |
16:32.58 |
archivist |
skew |
16:34.47 |
clock_ |
is it possible to autogenerate input for mged
so it would construct like from a program? |
16:34.56 |
clock_ |
Or didn't .g have some text
alternative? |
17:47.45 |
brlcad |
clock_: sure is |
17:48.22 |
brlcad |
you can script it using mged/tcl commands or
in your language of preference to generate a transript that gets
fed to mged |
17:48.36 |
brlcad |
or via a program that creates the transcript
or .. |
17:48.46 |
brlcad |
a program that directly generates the geometry
(best option) |
17:49.07 |
brlcad |
examples in the source distribution,
src/proc-db and src/mk among others |
18:18.48 |
clock_ |
hehe I didn't know there are any examples in
the source distribution |