| 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 |