00:43.35 |
*** join/#brlcad dtidrow
(n=Don@c-71-238-51-148.hsd1.mi.comcast.net) |
01:01.58 |
*** join/#brlcad BigAToo
(n=BigAToo@pool-96-230-124-196.sbndin.btas.verizon.net) |
01:02.38 |
*** join/#brlcad Axman6
(n=Axman6@pdpc/supporter/student/Axman6) |
01:46.50 |
*** join/#brlcad louipc
(n=louipc@archlinux/trusteduser/louipc) |
01:54.17 |
*** part/#brlcad jdoliner
(n=jdoliner@c-68-51-75-169.hsd1.il.comcast.net) |
01:57.36 |
CIA-32 |
BRL-CAD: 03indianlarry * r34848
10/brlcad/trunk/src/librt/primitives/brep/brep.cpp: added new
variables to brep_hit copy constructor |
02:24.51 |
*** join/#brlcad stevegt_1
(n=stevegt@c-24-130-122-25.hsd1.ca.comcast.net) |
03:46.55 |
stevegt_1 |
~seen brlcad |
03:46.57 |
ibot |
brlcad is currently on #bzflag (15d 13h 6m
36s) #brlcad (15d 13h 6m 36s). Has said a total of 448 messages. Is
idling for 7h 9m 47s, last said: 'cygal: I'd abort -- it shouldn't
take that long'. |
03:47.09 |
stevegt_1 |
~ralith |
03:47.14 |
stevegt_1 |
~seen ralith |
03:47.15 |
ibot |
ralith is currently on #brlcad (1d 7h 54m
27s). Has said a total of 82 messages. Is idling for 5h 24m 1s,
last said: 'brlcad: thanksâhopefully it won't come up
again.'. |
03:47.15 |
Ralith |
sup |
03:47.21 |
stevegt_1 |
whup -- hi |
03:48.37 |
stevegt_1 |
ralith: still looking through src/rt/* -- i'm
trying to figure out how to get a vector toolpath during or after
processing ray hits... |
03:49.12 |
stevegt_1 |
raster is obvious, vector has me stumped so
far |
03:50.44 |
Ralith |
stevegt_1: what do you mean by raster and
vector? |
03:50.55 |
Ralith |
those terms don't really apply. |
03:51.24 |
stevegt_1 |
raster == e.g. .bw, .pix, .jpg etc. |
03:51.31 |
Ralith |
those aren't toolpaths |
03:51.32 |
Ralith |
those are images |
03:52.04 |
stevegt_1 |
vector == primitive edges |
03:52.12 |
Ralith |
primitive edges? |
03:52.15 |
Ralith |
what do you mean by that? |
03:52.43 |
stevegt_1 |
hm |
03:52.45 |
louipc |
~seen louipc |
03:52.46 |
ibot |
louipc is currently on #brlcad (2h 5m 56s).
Has said a total of 1 messages. Is idling for 1s, last said: '~seen
louipc'. |
03:52.53 |
louipc |
laffs |
03:53.33 |
stevegt_1 |
vector as in svg, dxf |
03:53.52 |
stevegt_1 |
g-code, laser etc. need vectors |
03:56.08 |
Ralith |
stevegt_1: what do you mean by
'vectors'? |
03:56.31 |
Ralith |
rt will quite happily give you precise
coordinates. |
03:57.13 |
stevegt_1 |
a vectorized shape description -- like a
sketch |
03:57.40 |
stevegt_1 |
or an arb? |
03:57.47 |
Ralith |
that's a circular definition... |
03:58.00 |
stevegt_1 |
im trying here ;-) |
03:58.17 |
stevegt_1 |
okay, let's look at it this way: |
03:58.19 |
Ralith |
perhaps you mean you want to extract
arcs? |
03:58.32 |
stevegt_1 |
ahh -- yes, arcs |
03:58.34 |
Ralith |
all g-code can represent is lines and
arcs. |
03:58.38 |
stevegt_1 |
right |
03:59.09 |
Ralith |
that's nontrivial, because lines and arcs
cannot exactly represent many possible region slices. |
04:00.19 |
stevegt_1 |
for a laser or CNC router, we need exactly one
slice, aligned with the plane of the part we're cutting
out |
04:00.30 |
Ralith |
you can use arcs to more closely approximate
curves than you could with lines, but it's still an approximation
unless you get lucky and the curve happens to be precisely
circular. |
04:00.59 |
Ralith |
the level of the approximation is up to
you. |
04:01.20 |
Ralith |
the raytracer provides sufficient information
to perform this approximation; jonored implemented it, but I
couldn't tell you how it's done. |
04:01.28 |
stevegt_1 |
some sort of successive
approximation? |
04:01.42 |
stevegt_1 |
that's the only thing i've been able to think
of so far |
04:03.19 |
stevegt_1 |
googles for clues about what
jonored was doing |
04:04.54 |
Ralith |
~seen jonored |
04:07.27 |
ibot |
jonored
<n=jonored@dsl092-076-134.bos1.dsl.speakeasy.net> was last
seen on IRC in channel #brlcad, 63d 8h 33m 20s ago, saying:
'...er... wrong project. the brlcad database, not the reprap...
wrong project I want to work on.'. |
04:07.50 |
stevegt_1 |
heh |
04:16.04 |
Ralith |
that took a while |
04:20.57 |
stevegt_1 |
i'm getting a creeping feeling that the most
direct route to what i want might be to generate the shapes further
upstream, probably in a python script, handle constraints etc
there, then use brl-cad for rendering and interference checking,
and finally generate the toolpath from the upstream output, rather
than from brl-cad |
04:21.14 |
stevegt_1 |
which is probably what others are
doing |
04:21.39 |
stevegt_1 |
darnit |
04:22.38 |
stevegt_1 |
the closest i'm seeing to what jonored was
doing was his mention in the IRC channel of not being able to work
on his 2009 gsoc proposal |
04:23.23 |
stevegt_1 |
those proposals aren't online anywhere? (just
the ideas and the accepted ones? at least that's all i'm finding
so far..) |
04:23.57 |
Ralith |
stevegt_1: I suspect you vastly underestimate
the difficulty of evaluating CSG. |
04:24.34 |
Ralith |
reliably and precisely, anyway |
04:25.00 |
stevegt_1 |
not underestimating -- if i were to do things
upstream, then i'd have to manually say "okay, a hole needs to go
here so this other rod can pass through" |
04:25.08 |
stevegt_1 |
so not even trying to evaluate in that case
;-) |
04:25.24 |
Ralith |
I don't follow |
04:26.32 |
stevegt_1 |
like this: if all you've got is 2-d tools,
qcad, autocad, whatever, then you have to manually do the booleans,
calculate part fit, try to keep it all in your head |
04:26.55 |
Ralith |
afaik there are no 'others'; anybody currently
generating toolpaths from brlcad models is almost certainly doing
so with third party tools after exporting to another format (e.g.
stl) |
04:29.42 |
stevegt_1 |
i figured that too -- but that loses info on
the way through of course |
04:29.42 |
Ralith |
if all you've got is 2d tools, I don't think
there's yet any way to get meaningful data from BRL-CAD to them
anyway, short of writing your own tool. |
04:29.44 |
stevegt_1 |
other way around -- sketch in qcad, import
into brl-cad, extrude, repeat |
04:29.45 |
Ralith |
that should be feasible; there appears to be a
dxf importer. |
04:29.47 |
stevegt_1 |
then use rtcheck for interference checking to
find out where you screwed up ;-) |
04:31.18 |
Ralith |
rtcheck? |
04:31.24 |
stevegt_1 |
the dxf importer seems to work -- the only
thing i haven't been able to figure out os the right way to use
'extrude' -- it's not shown in the pdf tutorials, and the wiki
seems to disagree with the code and/or usage statement |
04:31.30 |
stevegt_1 |
s/os/is/ |
04:31.42 |
Ralith |
someone in here probably knows |
04:31.44 |
stevegt_1 |
rtcheck -- checks for overlaps; it's
great |
04:31.51 |
Ralith |
also check the reference card, and the
built-in help |
04:31.59 |
pacman87 |
stevegt_1: do you already have the
sketch? |
04:32.01 |
Ralith |
that's not what my manpage says... |
04:32.02 |
pacman87 |
for the extrude |
04:32.04 |
Ralith |
<PROTECTED> |
04:32.14 |
stevegt_1 |
pacman87!!! someone else is awake! |
04:32.30 |
pacman87 |
hi |
04:32.36 |
pacman87 |
reads the
backlog |
04:33.08 |
Ralith |
perhaps it's used for something else in
mged. |
04:33.35 |
pacman87 |
can you summarize what you're trying to
do? |
04:33.52 |
stevegt_1 |
goes to see if he's
completely confused about the name of that command |
04:34.12 |
pacman87 |
dxf -> sketch -> extrude? |
04:37.06 |
stevegt_1 |
is not
crazy |
04:37.24 |
stevegt_1 |
unless i'm completely misinterpreting the
results of mged's rtcheck |
04:37.31 |
Ralith |
shrugs |
04:37.32 |
Ralith |
I've never used it |
04:37.38 |
stevegt_1 |
pacman87: yes, dxf -> sketch ->
extrude |
04:37.53 |
pacman87 |
and where does the problem start? |
04:38.08 |
stevegt_1 |
lemme go get an error message... |
04:38.16 |
pacman87 |
(and the command that caused it) |
04:43.30 |
stevegt_1 |
pacman87: i think i'm probably having basic
usage confusion as much as anything else -- ' extrude sketch.1 5'
errors out wanting the user to be in SOL EDIT state, but if I say
'sed sketch.1', it pops up the gui sketch editor... then if i say
'extrude sketch.1 5' again, it still says i'm in VIEWING
state |
04:44.06 |
stevegt_1 |
i obviously haven't done enough of the
tutorials, to begin with |
04:44.31 |
pacman87 |
oh, i'm using classic mode |
04:44.35 |
stevegt_1 |
ah |
04:44.47 |
pacman87 |
so i just do "in <name>
extrude" |
04:44.51 |
pacman87 |
and it promps for the fields |
04:45.08 |
stevegt_1 |
lemme try that |
04:49.19 |
pacman87 |
the dxf-g converter used to double the line
segments (one going each direction), but i think that's been
fixed |
04:50.12 |
stevegt_1 |
notes that the 'extrude'
command and the 'extrude' primitive are completely
different |
04:50.17 |
stevegt_1 |
i think |
04:50.29 |
pacman87 |
i only know of the primitive |
04:50.31 |
pacman87 |
what's the command do? |
04:50.50 |
stevegt_1 |
the command just wants 2 args: 'extrude
{face} {distance}' |
04:50.59 |
stevegt_1 |
much simpler ;-) |
04:51.02 |
Ralith |
yeah, that probably doesn't have anything to
do with sketches. |
04:51.07 |
stevegt_1 |
if i could get it to work ;-) |
04:51.19 |
Ralith |
considering that sketches don't have
faces. |
04:51.37 |
pacman87 |
what primitive results from the extrude
command? |
04:53.13 |
stevegt_1 |
pacman87: the wiki says it 'modifies an ARB'
-- ahh, yes, that won't work on sketches |
04:53.23 |
stevegt_1 |
i think |
04:53.56 |
pacman87 |
yeah, so it take the edge points from and ARB,
and uses that as the base for (i'm guessing) another ARB |
04:54.04 |
pacman87 |
s/from and/from an/ |
04:54.39 |
Ralith |
stevegt_1: think about it; sketche don't have
faces. |
04:54.44 |
Ralith |
sketches* |
04:56.01 |
stevegt_1 |
Ralith: i seem to remember seeing the code
accepting a sketch as one of its args, but can't find it ATM...
hang on, gotta put a 6-year-old to bed... |
05:01.04 |
Ralith |
brb |
05:05.14 |
pacman87 |
bedtime for me |
05:13.39 |
Ralith |
back |
05:31.32 |
stevegt_1 |
back -- nope, the mged extrude doesn't take
sketches, wants an arb face -- don't know what code I was looking
at the other day |
05:37.56 |
Ralith |
so see what you can do with in |
05:43.58 |
stevegt_1 |
yep |
07:22.32 |
*** join/#brlcad _clock_
(n=_sushi_@77-58-151-159.dclient.hispeed.ch) |
07:49.45 |
*** join/#brlcad _clock_
(n=_sushi_@77-58-151-159.dclient.hispeed.ch) |
09:53.34 |
*** join/#brlcad Elrohir
(n=kvirc@p5B14F13C.dip.t-dialin.net) |
09:57.34 |
*** join/#brlcad mafm_
(n=mafm@165.Red-81-35-69.dynamicIP.rima-tde.net) |
12:21.48 |
starseeker |
growls - rebuilding gentoo
sucks... |
12:29.24 |
louipc |
hehe still on that train eh? |
12:37.07 |
*** join/#brlcad BigAToo
(n=BigAToo@pool-96-230-124-196.sbndin.btas.verizon.net) |
12:55.17 |
_clock_ |
starseeker: I can understand this rebuilding
my gentoo sucked so much that I swapped to another distro |
13:06.41 |
louipc |
_clock_++ |
13:25.08 |
starseeker |
tried that |
13:25.14 |
starseeker |
sucked more than rebuilding |
13:37.48 |
mafm_ |
debian ftw! |
13:39.11 |
louipc |
starseeker: what distros? |
13:39.25 |
louipc |
not ubuntu! :D |
13:39.57 |
starseeker |
yeah, ubuntu |
13:40.19 |
starseeker |
has finely tweaked his
desktop settings over the years, and ubuntu has its own
ideas |
13:40.48 |
louipc |
yeah debian is probably better |
13:41.20 |
louipc |
I would plug arch linux though :P |
13:46.36 |
brlcad |
bsd ftw ;) |
14:02.08 |
CIA-32 |
BRL-CAD: 03irpguardian * r34849
10/brlcad/trunk/src/proc-db/human.c: (log message
trimmed) |
14:02.10 |
CIA-32 |
BRL-CAD: Made significant updates to the
human.c file which will eventually be a complete human generator
that |
14:02.13 |
CIA-32 |
BRL-CAD: uses CSG to model a human. |
14:02.15 |
CIA-32 |
BRL-CAD: human.c currently creates a 'stick'
human to a desired height by use of command line parameters and
also |
14:02.18 |
CIA-32 |
BRL-CAD: allows for the output of specifically
named .g file when using the -o command on input. |
14:02.22 |
CIA-32 |
BRL-CAD: Also included are most of the
bounding blocked for each part of the generated body by using the
-b command. |
14:02.25 |
CIA-32 |
BRL-CAD: So if you wanted to make a 'human'
right now, the command would be... |
14:10.24 |
louipc |
crazy |
14:49.36 |
*** join/#brlcad samrose
(n=samrose@c-24-11-214-181.hsd1.mi.comcast.net) |
14:52.37 |
CIA-32 |
BRL-CAD: 03irpguardian * r34850
10/brlcad/trunk/src/proc-db/human.c: Added bounding box support to
each of the hands. |
14:59.47 |
CIA-32 |
BRL-CAD: 03bob1961 * r34851
10/brlcad/trunk/src/librt/db_open.c: Fixed a bug in db_sync (i.e.
it was possible to return without releasing a semaphore). |
15:19.44 |
CIA-32 |
BRL-CAD: 03bob1961 * r34852
10/brlcad/trunk/src/libged/ged.c: Modify ged_open() to create a
dbip if a NULL one is passed in. |
15:25.59 |
CIA-32 |
BRL-CAD: 03bob1961 * r34853
10/brlcad/trunk/src/tclscripts/archer/Archer.tcl: Now using inmem
database for the ledger. |
15:34.23 |
starseeker |
brlcad: figuring out the bsd install would
talk some time, and figuring out the new config file locations
would take more :-P |
15:34.28 |
starseeker |
is getting
old... |
15:39.14 |
brlcad |
'scuses 'scuses |
15:40.38 |
starseeker |
was actually crazy enough to
consider opensolaris for a second... |
16:36.36 |
*** join/#brlcad BigAToo
(n=BigAToo@64.74.225.82) |
16:38.00 |
CIA-32 |
BRL-CAD: 03irpguardian * r34854
10/brlcad/trunk/src/proc-db/human.c: |
16:38.02 |
CIA-32 |
BRL-CAD: Added section that creates regions
out of all the body parts and all the bounding boxes, aptly
named |
16:38.05 |
CIA-32 |
BRL-CAD: Body.r and Boxes.r |
16:53.15 |
*** join/#brlcad roberthl
(n=robert@cobalt.rhl.me.uk) |
17:03.45 |
CIA-32 |
BRL-CAD: 03brlcad * r34855
10/brlcad/trunk/TODO: binary installer for windows is missing
external dependency headers (specifically need tcl and openNURBS
headers) |
17:06.43 |
CIA-32 |
BRL-CAD: 03brlcad * r34856
10/brlcad/trunk/NEWS: bob implemented initial undo support for
archer using in-memory geometry and a ledger of changes. |
17:15.30 |
*** join/#brlcad jdoliner
(n=jdoliner@c-68-51-75-169.hsd1.il.comcast.net) |
17:41.21 |
brlcad |
hello jdoliner, how goes the progress? make
sense of nmg? |
17:54.29 |
jdoliner |
yeah I got the basic idea of nmg |
17:55.26 |
jdoliner |
I have a weird problem right now |
17:59.42 |
jdoliner |
so I've written a test for my
meshmeshintersection algorithm |
18:00.12 |
jdoliner |
and it seems good |
18:01.18 |
jdoliner |
except when I call it. control goes into
ON_Mesh::ON_Mesh function and after it completes that it just
hangs |
18:01.37 |
jdoliner |
I feel like there's something I'm not getting
here |
18:28.03 |
stevegt_1 |
~seen Ralith |
18:28.08 |
ibot |
ralith is currently on #brlcad (1d 22h 35m
20s). Has said a total of 120 messages. Is idling for 12h 50m 13s,
last said: 'so see what you can do with in'. |
18:36.57 |
stevegt_1 |
needs a sanity check before
he dives into writing something called 'g-laser' |
18:37.31 |
stevegt_1 |
i think i have an algorithm that will work for
generating laser toolpaths, but i'm new to brl-cad and might be
missing something important |
18:41.49 |
stevegt_1 |
i'm thinking: since popular lasers (like the
epilog) are 3dof machines, the beam will always be perpendicular to
the part being cut |
18:42.35 |
stevegt_1 |
that greatly simplifies trying to figure out
the profile of any edges created by booleans |
18:43.50 |
stevegt_1 |
since these lasers can only do vertical hole
walls, that means the primitives intersecting the part must have
'top' faces which are also normal to the beam |
18:44.22 |
stevegt_1 |
which means we can derive a clean toolpath
directly from that 'top' face of the intersecting
primitive |
18:44.37 |
stevegt_1 |
without tesselation or other
approximation |
18:49.53 |
stevegt_1 |
this means cones, toruses, spheres, etc. can't
be used to make coles in laser-cut parts, nor can complicated arbs
(e.g. mushroom-shaped -- can brl-cad even do those?), but imho
that's a reasonable constraint |
18:50.05 |
stevegt_1 |
<crickets chirping> ;-) |
18:50.53 |
stevegt_1 |
i'll probably write this up on a web page
somewhere and pop in here again later -- i gotta unplug for an hour
or so pretty soon |
18:51.06 |
jdoliner |
hi I don't know enough about your project yet
to really comment. But I am working on CSG algorithms which is
maybe related |
18:51.15 |
jdoliner |
so maybe if you explain at a lower level I can
help |
18:51.16 |
stevegt_1 |
hi jdoliner |
18:52.22 |
stevegt_1 |
goes to look at what
jdoliner's working on |
18:54.31 |
stevegt_1 |
(still reading) |
18:57.03 |
stevegt_1 |
jdoliner: okay, done reading/skimming your
proposal -- the output of the algorithm is a bezier
curve? |
18:57.31 |
jdoliner |
yeah |
18:57.37 |
jdoliner |
basically |
18:57.45 |
jdoliner |
that bezier curve becomes a trimming
curve |
18:58.09 |
stevegt_1 |
as in something that could be stated as a
primitive in gcode or dxf? |
18:58.39 |
stevegt_1 |
(as opposed to tesselation) |
18:58.50 |
jdoliner |
yeah I believe so |
18:59.16 |
jdoliner |
it can be stated as an ON_NurbsSurface
object |
18:59.16 |
stevegt_1 |
if that's true, then halleluyah, or
somesuch |
18:59.37 |
stevegt_1 |
s/tesselation/tessellation/ ;-) |
19:01.46 |
stevegt_1 |
the need for that algorithm is where i was
hung up on the toolpath-generation problem -- i could see that some
thorny math would be required, but the closest i'd be able to get
is by trying to duplicate what librt does in solving quadratics or
something -- and i barely made it through Calc II, 25 years ago
;-) |
19:03.28 |
stevegt_1 |
something that algorithm will be needed to
generate toolpaths for machines which have more that 3 axes -- i.e.
if the machine can tilt the cutting tool, or otherwise do
over/undercuts in holes and at the sides of a part |
19:03.37 |
stevegt_1 |
s/something/something like/ |
19:06.14 |
stevegt_1 |
anyway, i *think* i can cheat in the case of
3-axis machines like lasers, since they can only do vertical-walled
cuts -- just constrain the intersecting primitives to have faces
that are perpendicular to the part being cut |
19:11.36 |
*** join/#brlcad stevegt``
(n=stevegt@cislunar.TerraLuna.Org) |
19:13.30 |
stevegt_1 |
jdoliner: i gotta go get lunch; i'll try to
write this up and be back later |
19:14.06 |
jdoliner |
yeah, particularly if you get hung up on
thorny math I can try to give you a hand with ti |
19:14.25 |
jdoliner |
it** |
19:14.31 |
stevegt_1 |
i'm pretty sure you could ;-) |
19:25.33 |
*** join/#brlcad BigAToo
(n=BigAToo@64.74.225.82) |
19:42.35 |
CIA-32 |
BRL-CAD: 03bob1961 * r34857
10/brlcad/trunk/misc/win32-msvc8/libged/libged.vcproj: Added cc.c
and lscon.c to build. |
20:03.22 |
CIA-32 |
BRL-CAD: 03bob1961 * r34858
10/brlcad/trunk/misc/win32-msvc8/ (brlcad/brlcad.sln g2adrt/):
Removed g-adrt from windows build. |
20:13.43 |
CIA-32 |
BRL-CAD: 03bob1961 * r34859
10/brlcad/trunk/src/tclscripts/archer/ (Archer.tcl ArcherCore.tcl):
Removed a bit of leftovers from the previous edit history
hack. |
20:41.34 |
*** join/#brlcad stevegt_
(n=stevegt@cislunar.TerraLuna.Org) |
21:19.39 |
brlcad |
jdoliner: hm, hard to say without walking the
execution or knowing more info about the ON_Mesh::ON_Mesh problem
-- have you tried stepping through with a debugger? |
21:20.47 |
jdoliner |
yeah gdb's really been the flavor of the
afternoon :) |
21:20.56 |
brlcad |
stevegt_: mushroom-shaped arbs?? picture of
one? |
21:21.08 |
brlcad |
jdoliner: heh, awesome |
21:21.23 |
jdoliner |
it was something weird with initializing
ON_Meshes |
21:21.39 |
jdoliner |
but I switch the function to use pointers
instead |
21:21.42 |
jdoliner |
and that cleared it up |
21:22.15 |
jdoliner |
which in all honesty probably makes more sense
because I imagine meshes can get big |
21:25.32 |
brlcad |
they can get huge, Gigs |
21:27.54 |
brlcad |
stevegt_: sorry we keep failing to cross paths
:) |
21:28.05 |
stevegt_ |
brlcad: right here ;-) |
21:28.23 |
stevegt_ |
other than the mushrooms, did the rest of what
i was saying make sense? |
21:33.13 |
stevegt_ |
overall, what i'm trying to do is pick a cad
package for designing and generating toolpaths for making low-end
machines that have a laser-cut acrylic parts, and are otherwise
built from bolt-together things off the shelf -- motors, lead
screws, fasteners, etc |
21:33.16 |
stevegt_ |
like http://fabathome.org/wiki/index.php?title=Main_Page |
21:33.39 |
brlcad |
Ralith: rtcheck's primary purpose is
interference (aka overlap) detection with a side-effect of
overlaying a plot of the overlaps if you run it in mged (yes the
help line is misleading) |
21:34.09 |
stevegt_ |
brlcad: good, i wasn't insane that time
;-) |
21:36.04 |
brlcad |
stevegt_: docs are pretty thin on extrude, but
it's really pretty simple to extrude a sketch -- run the 'in'
command in mged and it'll interactively prompt you |
21:37.11 |
brlcad |
ah, and yes, there is an 'extrude' command
which is different than creating an extrude primitive -- you don't
want the extrude command, you want the 'in' command |
21:37.13 |
stevegt_ |
brlcad: so i gathered; i haven't figured out
what some of the prompts are asking yet, but i'm sure that'll be
obvious by the time i get used to the way brl-cad does
things |
21:38.41 |
stevegt_ |
s/low-end machines that have a laser-cut
acrylic parts/low-end machines that have a lot of laser-cut acrylic
parts/ |
21:38.49 |
brlcad |
ah, all caught up with the log now
:) |
21:39.03 |
brlcad |
yes, the rest you said made sense (i think!)
:) |
21:40.12 |
brlcad |
basically it asks you what scaling factors do
you want (you can skew/stretch the sketch before extruding it) and
then the distance |
21:40.35 |
brlcad |
usually best to just use orthogonal unit
vectors, 1 0 0 and 0 1 0 |
21:41.01 |
brlcad |
that aligns the sketch normalized to an x/y
plane like one would usually expect be default |
21:42.11 |
brlcad |
that's a pretty cool machine, hmm..
:) |
21:42.13 |
stevegt_ |
anyway, i *think* i'm in a common use case for
the newer crowd of maker community, arduino controllers, fabbers,
people who might have access to a laser or CNC router, and are
looking for something more capable than qcad for modelling the
machines -- so something like 'g-laser' seems like a good idea,
just trying to figure out how doable it is |
21:42.47 |
stevegt_ |
so 'in ... extrude' wants a sketch? lemme go
try it again... |
21:42.53 |
brlcad |
g-gcode is something that's been on the "todo"
for a while :) |
21:43.41 |
brlcad |
yeah, 'in' is the interactive input tool for
creating primitives .. you can feed it the whole line or parts of a
line and for any part remaining it'll prompt you |
21:44.46 |
stevegt_ |
yeah, i'm saying to myself "wow, brl-cad is
great!!" and i'm going through the tutorials, and then it hits me
-- right now, it seems to be optimized for importing and analyzing
models, rather than making them -- unless you are using STL e.g.
3-d printing? |
21:45.14 |
stevegt_ |
s/making them/making things from
them/ |
21:45.16 |
brlcad |
the real solution to what you want is very
much related to jdoliner's project where you evaluate a given
object (regardless of geometry format, csg or non-csg) to a
spline-surface boundary representation that has no booleans, then
project that to a given plane |
21:45.46 |
brlcad |
gives you a series of 2D spline curves and
line segments that could them be turned into arcs and polylines or
what have you |
21:45.46 |
stevegt_ |
i agree -- for generic gcode for a 3 or more
axis mill, you need jdoliner's stuff |
21:47.23 |
brlcad |
what you intuited about brl-cad is quite true
-- it's presently heavily geared around import and analysis
requirements .. but also visualization and creation (but a very
different approach than most commercial systems) |
21:48.00 |
stevegt_ |
the light bulb this morning was that, since a
lot of these potential users (including me) are just using lasers,
then i can just ensure via raytracing that hole walls are vertical,
and then directly derive the dimensions of the hole by looking at
the top face of the intersecting shape -- i think ;-) |
21:49.30 |
jdoliner |
stevegt_: whenever you need me I'm here to
help |
21:49.36 |
stevegt_ |
i plan to generate a lot of parts from scripts
in the first place, so brl-cad fits with that usage as
well |
21:49.39 |
brlcad |
for nearly two decades, brl-cad has been used
(with the csg approach) to model vehicles down to the nut bolt and
wire using CSG boolean operations and primitives -- many things are
considerably more efficient that way over BREP methods, but it's
definitely a very different way of thinking about things and a
large body of experience that has to be built up -- but once you
do, the advanced brl-cad modelers are just as effective in brl-cad
as they are in other com |
21:50.54 |
brlcad |
stevegt_: you know, if you're ray-tracing,
it's not a whole lot extra logic to make it derive that top-hole
using ray-tracing to a given tolerance using adaptive
subdivision |
21:51.14 |
stevegt_ |
goes and looks up "adaptive
subdivision" ;-) |
21:51.27 |
brlcad |
that would let you extract a contour for any
arbitrary view |
21:52.12 |
stevegt_ |
is that more or less what the tessellation
routines do? |
21:52.27 |
brlcad |
not at all |
21:52.38 |
stevegt_ |
i see 'curves' in the description... |
21:52.51 |
brlcad |
it's basicaly a sampling approach, you sample
down to a specified level of detail |
21:54.33 |
stevegt_ |
is that related to the use of voxel
spaces? |
21:54.40 |
brlcad |
think of it this way.. you shoot a grid of
rays and find the edges of an object .. but instead of filling in
pixels, you build up coefficients for a set of polynomial
curves |
21:54.53 |
stevegt_ |
ah |
21:55.34 |
brlcad |
sampled sufficiently, you'll derive a spline
that fits to the circular top of a cylinder, for example |
21:56.06 |
stevegt_ |
is there code anywhere in the brl-cad tree
that does something like this right now? |
21:56.21 |
brlcad |
I'm sure you could *very* easily sample at a
resolution much higher than the resolution of your fabbers stepper
motors :) |
21:58.26 |
brlcad |
hm, the closest starting point is probably
rtedge, which simply renders an edge outline (raster) of an object
based on neighboring hits -- you'd want to extend that to be
calculate the curves |
21:58.44 |
brlcad |
example, http://brlcad.org/gallery/s/renderings/havoc_rtedge.png.html |
21:58.47 |
stevegt_ |
ah ha -- 'adaptive subdivision algorithm' is
giving me some good hits in google.... |
21:59.38 |
stevegt_ |
yeah, i looked at rtedge and got worried that
i'd be stuck with raster-like limitations, then popped in last
night to bug Ralith about it ;-) |
22:00.24 |
brlcad |
yeah, just forget about the pix output --
you'd be outputting curves or directly to gcode or
whatever |
22:00.31 |
stevegt_ |
huh |
22:02.00 |
stevegt_ |
i'm wondering if it would be easier to write
the code such that it tries to read the hole geometry directly off
the top face of the intersecting object, and *then* falls back to
adaptive subdivision, or just uses adaptive subdivision
always... |
22:02.39 |
stevegt_ |
probably the latter, assuming i can figure out
how to do it |
22:03.31 |
stevegt_ |
the raytracing hits sure are nice to be able
to get at |
22:06.59 |
brlcad |
nice example:
http://www.museum.state.il.us/ismdepts/library/linuxguides/povray/image112.gif |
22:07.26 |
brlcad |
"adaptive sampling" <- another useful term
you can search on |
22:08.00 |
stevegt_ |
now has to go back and
remember how polynomial curve fitting works -- those brain cells
died decades ago :-b |
22:09.14 |
Ralith |
it's not hard |
22:09.27 |
brlcad |
so in that image, where you have a hit
neighbored to a miss, you know there's an edge somewhere between
those two rays, you adaptively sample to more precisely find that
edge -- if you recurse down all edges, you can find a 'perfect'
contour from which you can derive coefficients for a representative
set of splines |
22:10.01 |
stevegt_ |
hi Ralith! |
22:10.04 |
Ralith |
hullo |
22:11.28 |
brlcad |
another example, http://www.lamrug.org/resources/images/samples/samples.03d.jpg |
22:12.48 |
brlcad |
done well enough, you end up with an rtvector
.. from which you could output svg or gcode or pdf or whatever
format ;) |
22:13.15 |
stevegt_ |
brlcad: that sounds like it might be
successive approximation -- do you ultimately compare the
polynomial-generated curve with the original edge, or is the
algorithm open-loop? (if that makes sense) |
22:14.06 |
stevegt_ |
(i'm still skimming papers from
citeseer) |
22:14.54 |
brlcad |
yes, it's a way to get a successive
approximation |
22:15.24 |
brlcad |
there is no "original edge" to compare it to,
you're deriving a representation for that edge |
22:15.55 |
brlcad |
you just keep refining until you're below a
specified accuracy level (ideally below your machine's
capabilities) |
22:16.13 |
brlcad |
so even if there is error, it's never
realized |
22:17.32 |
*** part/#brlcad jdoliner
(n=jdoliner@c-68-51-75-169.hsd1.il.comcast.net) |
22:17.55 |
stevegt_ |
the way you're envesioning this working, is it
iterative? or am i missing some direct way to get from ray hits
to coefficients? |
22:18.34 |
stevegt_ |
s/envesioning/envisioning/ |
22:18.51 |
brlcad |
here we go, even better |
22:19.29 |
brlcad |
it's basically an implementation of marching
cubes with adaptive subsampling, but in 2D (i.e., marching squares
with adaptive subsampling) |
22:19.33 |
brlcad |
http://www.exaflop.org/docs/marchcubes/ |
22:19.53 |
stevegt_ |
funny -- march cubes was one of the links i
saw a few minutes ago |
22:19.55 |
brlcad |
and yes, it is iterative |
22:19.56 |
stevegt_ |
goes to
look |
22:20.48 |
brlcad |
that page even speaks to the sampling issues,
good stuff |
22:21.58 |
brlcad |
just when reading, you're working in 2D so
read it as s/cubes/squares/ and s/polygons/line segments/ (for
starters) |
22:22.03 |
stevegt_ |
ok, yes, they're talking about voxel
spaces... |
22:22.19 |
brlcad |
voxel spaces are for 3D |
22:22.28 |
stevegt_ |
...and they're using polygons instead of
curves, but i'm grokking it |
22:23.04 |
brlcad |
right, the even mention that near the end --
that's basically applying smoothing algorithm to derive a
curve |
22:23.36 |
stevegt_ |
saw that -- and you're picturing polynomial
curve segments instead of straight line segments |
22:24.24 |
brlcad |
yeah, only because I don't think many machines
would be robust with millions of sub-millimeter line segments that
would be required to describe a smooth curve |
22:24.48 |
brlcad |
would expect aliasing artifacts |
22:25.36 |
brlcad |
interpolate a curve and simplify (e.g.,
identify and make curves that are linear actually just be line
segmenets) |
22:25.48 |
stevegt_ |
okay, i think i can do this -- the way my
brain works, i'm probably going to wind up re-deriving a lot of the
algorithm, but to me it looks familiar when i think of it in the
class of successive approximation, binary search, interpolation,
etc. |
22:29.18 |
stevegt_ |
just don't make me solve quadratics
;-) |
22:31.34 |
brlcad |
adaptive marching squares, tis good stuff
;) |
22:41.00 |
CIA-32 |
BRL-CAD: 03brlcad * r34860
10/brlcad/trunk/src/libbu/parallel.c: ws indent cleanup |
22:53.23 |
CIA-32 |
BRL-CAD: 03brlcad * r34861
10/brlcad/trunk/src/libbu/parallel.c: |
22:53.25 |
CIA-32 |
BRL-CAD: make sure the file is actually world
read/writable like we said it would be, |
22:53.27 |
CIA-32 |
BRL-CAD: call bu_fchmod(). that said, this is
a horrible way to do this. mark the |
22:53.35 |
CIA-32 |
BRL-CAD: implementation as deprecated even if
it's not likely anyone is relying on the |
22:53.37 |
CIA-32 |
BRL-CAD: temp files and rtsrv is the only
brl-cad tool that can leverage this. |
22:54.04 |
stevegt_ |
brlcad: while i'm only going to write
something like g-laser, g-toolpath2d, or whatever ("marching
squares"), it does strike me that the marching cubes could be used
to generate gcode suitable for N-axis mills |
22:55.27 |
stevegt_ |
<lightbulb on> and the raytracing lib
could be used to fire rays at various angles to test the approache
angle of the tool itself, make sure it doesn't hit
anything |
22:55.37 |
stevegt_ |
s/approache/approach/ |
22:59.45 |
brlcad |
yep |
23:01.02 |
brlcad |
the exact approach you're using it 2D extends
very well to 3D -- hell, with the 3D approach, that's a viable
alternative for a variety of purposes including visualization,
tessellation, and evaluation |
23:01.37 |
brlcad |
the problem is that it's not nearly as robust
for all uses (e.g. visualization) where you can continue to "zoom
in" and start to see the artifacts |
23:01.46 |
brlcad |
works well for hardware though |
23:02.12 |
stevegt_ |
that would really go far in cleaning up the
CNC tool chain -- where I sit right now (middle of silly valley)
there are about 900 CNC mills with a 1-mile radius; we've gotten to
know a few of them over the last several years; they are all still
very labor-intensive when it comes to massaging the dxf they get
from the customer and generating the gcode |
23:03.03 |
brlcad |
to make sure the tool doesn't hit anything,
something ala rtcheck or g_qa would work great by just having them
represent the tool as geometry and test for overlap |
23:03.42 |
brlcad |
cool that you're interested in this, look
forward to seeing what you make of it |
23:03.51 |
brlcad |
the idea has been around for a while, just
nobody to work it |
23:04.35 |
brlcad |
lots of squeaky wheels that require attention,
like better modeling interface, better interactive visualization,
step conversion support, full hybrid nurbs brep support, etc
;) |
23:05.41 |
stevegt_ |
i've been interested in this ever since I was
in the USAF in the early 80's, and saw how far we (still) are from
being able to "print metal" -- it really drives up the cost of
everything |
23:07.50 |
stevegt_ |
whups -- s/early 80's/late 80's/ -- i'm not
*that* far gone yet ;-) |
23:08.56 |
brlcad |
heh |
23:11.36 |
CIA-32 |
BRL-CAD: 03brlcad * r34862
10/brlcad/trunk/src/librt/ (primitives/table.c wdb.c): ws indent
consistency |
23:19.28 |
stevegt_ |
makes himself stop and go
get (very late) lunch |
23:24.04 |
CIA-32 |
BRL-CAD: 03brlcad * r34863
10/brlcad/trunk/src/librt/ (7 files in 6 dirs): break out arb8
mirroring, modify all the mirror function signatures to not take a
pointer, instead just taking a plant_t |
23:25.33 |
*** join/#brlcad Elrohir
(n=kvirc@p5B14F13C.dip.t-dialin.net) |
23:25.47 |
CIA-32 |
BRL-CAD: 03brlcad * r34864
10/brlcad/trunk/misc/ (2 files in 2 dirs): add arb8_mirror.c to the
other windows build files |
23:41.08 |
CIA-32 |
BRL-CAD: 03brlcad * r34865
10/brlcad/trunk/misc/win32-msvc9/: |
23:41.10 |
CIA-32 |
BRL-CAD: remove the vc9 project files as
they've gotten considerably out of sync without |
23:41.12 |
CIA-32 |
BRL-CAD: a maintainer. there are more than 163
differences with the vc8 project. |
23:41.14 |
CIA-32 |
BRL-CAD: someone can revive and resync if
they're willing to maintain it, otherwise it's |
23:41.18 |
CIA-32 |
BRL-CAD: just a costly maintenance burden and
confusing to users. |
23:43.32 |
*** join/#brlcad BigAToo
(n=BigAToo@pool-96-230-124-196.sbndin.btas.verizon.net) |
23:49.59 |
``Erik |
would it be easy to generate vc9 files from
the vc8 ones? |
23:50.33 |
``Erik |
(or mebbe solicit the mailing list for a vc9
volunteer?) |
23:54.06 |
starseeker |
glares at gentoo - I might
have known - a non-clean config path upgrade |
23:54.30 |
starseeker |
first rule of Xorg building -
never,never,NEVER build a configuration that won't work |
23:54.58 |
starseeker |
oh, well - I was due for a scrub anyway, but
GRRRRRRRR |
23:55.52 |
``Erik |
pkg_add x11/Xorg on bsd, binary install of all
the right stuff, then you can portupgrade at your leisure with
automatic failure recovery and 'last good state' saved just in
case |
23:57.05 |
``Erik |
throw in the normal bsd nerd approach of
putting edited config files in cvs or rcs and you have a system
very very hard to fuck up for more than 2 minutes |