teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | Website: http://www.openscad.org/ | FAQ: https://goo.gl/pcT7y3 | Request features / report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://bit.ly/32MfbH5
califax has quit [Remote host closed the connection]
califax has joined #openscad
<joseph_> teepee: Thanks for the update about the extension. I think that 16-week is a good choice, so we can keep it as is. Hopefully it's more than enough. I'm currently debugging the tests failing with segfaults and many seem to be 2D test cases (which I expect will be a relatively straightforward fix) and others are related to dxf imports (which might be harder)
epony has quit [Remote host closed the connection]
foul_owl has quit [Ping timeout: 252 seconds]
pah has quit [Ping timeout: 255 seconds]
pah has joined #openscad
ur5us has joined #openscad
foul_owl has joined #openscad
LordOfBikes has quit [Ping timeout: 268 seconds]
J1A841031 has joined #openscad
J1A8410 has quit [Ping timeout: 252 seconds]
<linext_> can someone re-create this object in openscad?
<linext_> it has 8 sides and the triangles are visible
<linext_> i'm trying to turn it into an ornament: https://i.ibb.co/HgJw4Nq/image.png
<linext_> originally it's supposed to be a vase, but i put a cap on the top and a tunnel down the middle for a string
<linext_> i used triple split red/blue/yellow filament from amolen: https://www.amazon.com/dp/B0B3XK83XJ?psc=1&ref=ppx_yo2ov_dt_b_product_details
snaked has joined #openscad
epony has joined #openscad
<JordanBrown> I betcha that's a single sweep call in BOSL2, with approriate transforms along the sweep.
<InPhase> linext_: So intentionally preserving the low-poly triangle effect?
<gbruno> [github] JonMcLin opened issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<gbruno> [github] JonMcLin edited issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<JordanBrown> linext_: https://bpa.st/2CTQ is sort of right. You can play with the parameters and afunction and rfunction to get various effects.
<gbruno> [github] JonMcLin edited issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<JordanBrown> It looks like the last layer on the top will require special attention; it doesn't seem to be part of the overall curve of the outside.
<JordanBrown> And there's always an effect that hurts my brain related to how to build the triangles from one layer to the next, with a twist; one way tends to make it smoother but right now I can't remember the behavior and don't have the time to work it out again.
<JordanBrown> And the shading makes it a bit hard to see whether it's more smooth or more ridge-y.
<gbruno> [github] JonMcLin edited issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<gbruno> [github] JonMcLin edited issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<gbruno> [github] JonMcLin closed issue #4343 (Silent Polyhedron Union Failure with CGAL) https://github.com/openscad/openscad/issues/4343
<InPhase> linext_: Challenge accepted: https://i.imgur.com/eVl9UWE.png
<InPhase> linext_: The source: https://bpa.st/XNYQ
<InPhase> I leave putting whatever holes or hollowed out bits into it are desired as an exercise.
<InPhase> JordanBrown: The triangle thing is definitely an issue on those spiral patterns. My ClosePoints has a preferential triangle direction. So to make it go the other way I just flipped the Bezier points around and did it top to bottom instead, flipping the triangles to match the example. :)
<InPhase> Oops. And that made the whole thing inside out.
<InPhase> Let me see here. There should be a fix for that.
<InPhase> I don't usually try to micromanage the triangles like this, but instead just go smoother to where it doesn't matter. I need to think for a minute.
<InPhase> Okay. (Got side-tracked with another matter.) I fixed the triangles and have everything properly outside-out now. https://bpa.st/V7NQ
<J1A841031> use<ub.scad>;Zylinder(h=40,fn=8,a=+0,twist=-200,az=4,fz=0.75,fnh=30,d=20);rotate(200) Tz(40)cylinder(4,d1=12,d2=5,$fn=8);
<InPhase> Hmm. Your layers are somehow not horizontal.
<J1A841031> that module uses bit different face generation
<InPhase> Is the side profile generated by some combination of those magic parameters/
<InPhase> I really like the flexibility of the bezier approach for a profile like that, but somehow you always seem to have some magic parameters to make any sort of curve. :)
<InPhase> Your triangles are backwards from the original.
<InPhase> Is there a magic parameter to flip them? ;)
<InPhase> Tip: I got mine to "flip" the triangles by rotating by rotvalue-360/8 instead of rotvalue. You might be able to do the same, if there's not another approach.
<InPhase> Cheap hack, but it will work on layered triangle approaches.
<InPhase> Or well, -360/8 for each one.
Xeha has quit [Ping timeout: 248 seconds]
<InPhase> That is the -zi*360/8 in mine.
<J1A841031> it is  the fz=0.75  that  is a Z frequency for a sine wave
<J1A841031> there is altFaces=3  for  different face generation
<InPhase> Ah, so somewhat fixed to a sinusoidal shape, but that happens to get very close.
<J1A841031> normally you use it for https://pasteboard.co/blguZcsC7c84.png
lastrodamo has joined #openscad
<InPhase> Nice. That would also be a good decoration. :)
<InPhase> I should get some sleep. But I do enjoy seeing the results of the multiple approaches to the same thing challenges. :)
N4buc0 has quit [Quit: Leaving]
<J1A841031> it is just making waves https://pasteboard.co/IFlRA5mqu64b.png
<InPhase> These are some nice ornaments some guy on thingiverse made from my function plotting library: https://www.thingiverse.com/thing:2687322
<othx> InPhase linked to "Customizable Ornament (Inspired by Blown Glass) by davidhbrown" on thingiverse => 4 IRC mentions
<InPhase> I was impressed by them. :) I think the mix of patterns and colors got pretty nice.
<JordanBrown> It wasn't clear to me whether the top-to-bottom exterior curve was a sine curve or not, which is why I extracted it out to a function.
<JordanBrown> Same for not being sure whether the twist was constant.
<JordanBrown> Must go AFK again.
<J1A841031> https://www.printables.com/model/91934-baubles   ..  and the people complain that  spheres are hard to vase print Ü
<InPhase> It's not quite sinusoidal, but that was a decent approximation.
<InPhase> I initially tried a 5 step bezier, and that didn't have enough granularity for me to tweak it to the shape. But when I added in the extra steps for a 10 step bezier I was able to match it up pretty close. Maybe a few numbers could be fiddled a bit more.
<J1A841031> a functions always leaves more room for customization..   a rot extr of a bezier would made the shape but not the twisted faces
Xeha has joined #openscad
<InPhase> J1A841031: Unless you rotate the bezier output points individually. :)
<InPhase> Or we could add a twist option to rotate_extrude.
<J1A841031> yes but that require to write a function .. the other i have modules for
<J1A841031> oh Yes  i also want pitch in rotate_extrude
<J1A841031> btw twist  would be cool but in this case wouldn.t twist it that way - or at least i had no idea how
<J1A841031> twist would rotate along the extrusion that is tangential  .. maybe so  3D bend  skewed 2D could  be rotated extruded  to get this axial twist
J1A841031 is now known as J1A84
qeed has quit [Quit: qeed]
qeed has joined #openscad
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
ur5us has quit [Ping timeout: 255 seconds]
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
ur5us has joined #openscad
epony has quit [Remote host closed the connection]
foul_owl has quit [Ping timeout: 255 seconds]
foul_owl has joined #openscad
teepee has quit [Write error: Connection reset by peer]
califax has quit [Read error: Connection reset by peer]
teepee has joined #openscad
califax has joined #openscad
ur5us has quit [Ping timeout: 255 seconds]
pah has quit [Ping timeout: 255 seconds]
pah has joined #openscad
teepee_ has joined #openscad
ur5us has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
snakedGT has joined #openscad
snaked has quit [Ping timeout: 252 seconds]
J1A84 has quit [Quit: Client closed]
J1A84 has joined #openscad
snakedLX has joined #openscad
snakedGT has quit [Ping timeout: 252 seconds]
ur5us has quit [Ping timeout: 244 seconds]
ur5us has joined #openscad
ur5us has quit [Ping timeout: 244 seconds]
la1yv_j has quit [Read error: Connection reset by peer]
la1yv_j has joined #openscad
J1A84 has quit [Quit: Client closed]
J1A84 has joined #openscad
Colere has quit [Ping timeout: 260 seconds]
Colere has joined #openscad
fozzedout has joined #openscad
<fozzedout> I'm having issues with the quick render and a polyhedron, where it may or may not work. https://pastebin.com/4qnKf248
<fozzedout> it will show with the #debug line, and it will show on a full render
<Scopeuk> fozzedout I'm wondering if the faces are reversed (shape inside out) sue to negative dimensions
snakedLX has quit [Quit: Leaving]
<Scopeuk> on the line above you have two negatives so its been inverted twice
<fozzedout> huh, I didn't think of that
<fozzedout> yes, I think you are quick correct, changing it to positive and flipping the rotation fixed it
<fozzedout> thanks for the assist!
fozzedout has quit [Remote host closed the connection]
fozzedout has joined #openscad
<J1A84> when the inside turns out Ü
fozzedout has quit [Ping timeout: 252 seconds]
fozzedout has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
fozzedout has quit [Remote host closed the connection]
fozzedout has joined #openscad
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<J1A84> maybe  gbruno should only be triggered once per issue per hour ..
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<teepee> I'd prefer thet energy going into the object proposal
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<teepee> hmm, maybe I can configure the webhook in a more detailed way
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<J1A84> i am also like to save all the time (bad experience with crashes)  but that doesn't mean we should get every of these
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
drfff has joined #openscad
<teepee> haha, what's going on with that editing :)
epony has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
<InPhase> Ultimately edit of an issue/PR probably doesn't need to be reported here. That's equivalent to a comment being posted, which is not reported here.
<teepee> hmm, no, all detail infos for pull requests are just a single switch: Pull request opened, closed, reopened, edited, assigned, unassigned, review requested, review request removed, labeled, unlabeled, synchronized, ready for review, converted to draft, locked, unlocked, auto merge enabled, auto merge disabled, milestoned, or demilestoned.
<teepee> only exeption for comments, those have a separate setting
<teepee> so we'd need gbruno to filter that
* teepee checks the payload
<teepee> ah, yes: "action": "edited",
<InPhase> Although that issue was closed 3 days ago because it's redundant with the existing designs in progress, so it didn't need edited in the first place I suppose. :)
<teepee> I thought of locking it, but it got out of hand before I decided to do so and now I'm not sure I want to touch it ;-)
<teepee> it's good to have a discussion, but so far I failed pointing it to the object feature
qeed_ has joined #openscad
qeed has quit [Ping timeout: 260 seconds]
epony has quit [Remote host closed the connection]
epony has joined #openscad
<J1A84> if you invest time and thought into something - and then get locked out .. doesn't feel nice .. just saying
<Scopeuk> it's tricky sometimes you need to stomp embers to prevent a fire. its very easy to get tunnel vision over your solution and ignore alternatives
<Scopeuk> but you don't want to stifle legitimate discussions or anyone that wants to go off and prototype, usually the most vocal about "how things should be done" as some of the least willing to actually put it together, they want someone else to pull their "vision" together
<Scopeuk> I can understand it but there is no nice once size fits all for discussions unfortuantely
<buZz> i'm very happy with https://imgur.com/a/qRet4ch , but at 30 gram its a bit too light :P maybe i'll reprint it with more infill
<Scopeuk> dump some sand in the empty space?
<Scopeuk> although I guess most of it's capped though
<buZz> the empty space isnt empty when a vape is in
<buZz> i could soak it in some filler i guess
<buZz> or drill a hole and put BBs in!
<buZz> good idea
<buZz> :D
<JordanBrown> teepee, InPhase... I've been trying to get that, object/dictionaries, and render-to-data all to converge...
<JordanBrown> BTW, we really need to solidify terminology. It's inconvenient that "object" is overloaded.
<JordanBrown> In the Debugging Polyhedra section of https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#polyhedron it says
<JordanBrown> if two faces have a vertex in common, they should be in the same cycle face-edge around the vertex.
<JordanBrown> Could somebody tell me what that means?
<InPhase> JordanBrown: Ah. That's very questionably written for what I think it's saying. Take a vertex, and you can loop around it going face-edge-face-edge-face-edge-originalface.
<InPhase> All faces touching a vertex must be in a single such loop.
<JordanBrown> Wouldn't violating that also mean violating the "two faces share an edge" rule?
<JordanBrown> could be two otherwise disjoint polyhedra sharing a single vertex.
<InPhase> I suppose not, because you could do a loop that hits an edge twice that way, like a figure 8 or something.
<InPhase> Unless you further specified it can't hit an edge twice. :)
<JordanBrown> Well, OK, thanks.
<JordanBrown> The spiral-triangle thing continues to hurt my brain, but I've got it behaving right.
<JordanBrown> Part of the problem is that if you play with single layers you can fool yourself. A single-layer twist of 360° is a no-op, but if you split it into two layers then it's horrible.
<JordanBrown> My first correction was to triangulate one way if the twist was positive and the other way if the twist was negative, but since I've got the per-layer twist as a function of the layer that's not right - it's got to compare one layer to the next.
<JordanBrown> Right now I've got an animation running that has the twist being in a sine wave as it goes up the vase. I don't know that I like the aesthetics, but it's working right.
<InPhase> JordanBrown: One option for a good general rule is to triangulate between whichever two vertices out of 4 are closest, to avoid long triangles.
<JordanBrown> I've suspected as much.
<InPhase> But this is sometimes not even, and so you might get strange effects in some cases. But then again, it would be optimal in the way it switches back and forth for others.
<JordanBrown> Here I'm only working with what you might call pseudoparallelograms, so the direction of twist yields the same answer.
<InPhase> I took the alternate strategy in ClosedPoints of always preferencing one pairing, understanding (and then forgetting for a bit) when I wrote it that you can always just re-offset the point indices if you wanted the other triangulation.
<InPhase> Since I originally wrote it for threads, a manual control of triangulation was important to make sure at design time that the threads have the right smooth substructure.
<JordanBrown> For mostly bad reasons, but a few good ones, I've never gotten into the habit of using any of the libraries that are out there. I tend to always go back to first principles.
<InPhase> I wrote a library because I really hated thinking about it. So I tried to think really hard once to get it out of the way. ;)
<JordanBrown> It means that I keep reinventing wheels, but it also means that I don't have dependencies and that you can directly understand what I'm doing knowing first principles.
<JordanBrown> yeah.
<InPhase> I think building up those lists of faces is reeaaally really cumbersome and hard to keep straight.
<InPhase> I prefer to focus my mind on the general shape.
<JordanBrown> and for my major project (my house model) I have a pretty significant library that solves common cases (like cubes justified every which way), but for example-y stuff I tend to use first principles.
<fozzedout> is the export of stl files not good in openscad? I separated out a complex item so it would be a simple stl, but when I then try to use the resulting stl file with an import I'm getting e_below != SHalfedge_handle() errors
<JordanBrown> I have kind of mixed feelings about the difficulty of building up the face lists. The first few times it was tough, but now (give or take this triangulation problem) I generally find it pretty easy.
<JordanBrown> Of course, that may just mean that I haven't tried to do complicated stuff.
qeed_ has quit [Remote host closed the connection]
qeed_ has joined #openscad
<JordanBrown> I occasionally want a vector arithmetic operation that adds a single value to each entry in the vector. That is, applying this operation to [1,2,3] and 1 would yield [2,3,4]. Applying it to [[1,2],[3,4]] and [0,1] would yield [[1,3],[3,5]]. Does this operation have a name?
<JordanBrown> I know that it's [ for (v=a) v+b ], but does it have a name?
J1A84 has quit [Quit: Client closed]
J1A84 has joined #openscad
rogeliodh has quit [Quit: The Lounge - https://thelounge.chat]
califax has quit [Ping timeout: 258 seconds]
teepee has quit [Ping timeout: 258 seconds]
aiyion has quit [Ping timeout: 258 seconds]
TheAssassin has quit [Ping timeout: 258 seconds]
<JordanBrown> Animating parameters to that vase is cool.
<InPhase> A living vase? :)
<JordanBrown> yes
<JordanBrown> morphing
<JordanBrown> animating the phase of the sine wave, for instance.
<JordanBrown> linext_: if you are interested, I think https://bpa.st/DXEQ is the final version of my implementation. Getting the top to be exactly the right shape is left as an exercise for the reader.
TheAssassin has joined #openscad
aiyion has joined #openscad
califax has joined #openscad
<gbruno> [github] waebbl opened issue #4344 (Possible parallel build issue for 2021.01 with qmake build) https://github.com/openscad/openscad/issues/4344
teepee has joined #openscad
<JordanBrown> But for now... real work.
<InPhase> An animated version of mine: https://bpa.st/3ATA
<InPhase> I'm getting 10fps, so it works nicely in realtime. :)
<InPhase> Looks like a vase with something magical trying to get out. :)
<InPhase> Didn't we purge the qmake build process? How are we getting an issue for it?
<InPhase> The .pro files are gone.
<InPhase> "The live ebuild uses cmake instead of qmake for building, but the cmake based build is still in development upstream which is why it's not used by the 2021.01 package."
<InPhase> teepee: When did that get switched over?
<InPhase> I feel like it was longer ago than that, but Covid messed up many timelines.
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
<InPhase> cmake is definitely not describable as "still in development", but I am not 100% sure how well it worked for 2021.01.
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
la1yv_j has quit [Read error: Connection reset by peer]
la1yv_j has joined #openscad
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
J1A84 has quit [Quit: Client closed]
J1A84 has joined #openscad
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
pah has quit [Ping timeout: 255 seconds]
pah has joined #openscad
<InPhase> linext_: The correct solution is to print the frames of that animation, hang them around your Christmas tree in a circle, setup a viewing window, and then mount your tree on a stepper motor.
fozzedout has quit []
<gbruno> [github] kwikius edited issue #4336 (Feature request: alias-module) https://github.com/openscad/openscad/issues/4336
ghee has joined #openscad
ghee has quit [Client Quit]
<teepee> InPhase: IIRC final switch was after the release, so 2021.01 is still officially qmake
fling_ has joined #openscad
fling has quit [Ping timeout: 258 seconds]
<InPhase> Ok.
rogeliodh has joined #openscad
<InPhase> I guess we better get a release out then so we don't have to keep supporting qmake...
<InPhase> Motivations.
fling_ is now known as fling
<gbruno> [github] t-paul closed issue #4344 (Possible parallel build issue for 2021.01 with qmake build) https://github.com/openscad/openscad/issues/4344
<teepee> I don't plan on any qmake support ;-)
<teepee> well, not strictly true, but so far the snap builds did just work fine every time I needed to re-trigger the release build
<teepee> I wonder if Azure fixed their issues meanwhile....
<teepee> uh, oh, finally back to green it seems
<teepee> that was a fun night
pah_ has joined #openscad
pah has quit [Ping timeout: 255 seconds]
pah_ has quit [Ping timeout: 252 seconds]
pah has joined #openscad
minecraftchest1 has left #openscad [#openscad]
pah has quit [Ping timeout: 252 seconds]
pah has joined #openscad
pah_ has joined #openscad
pah has quit [Ping timeout: 252 seconds]
<linext_> thanks for writing the openscad to generate the ornaments
hrberg has quit [Ping timeout: 260 seconds]
ur5us has joined #openscad
epony has quit [Remote host closed the connection]
<gbruno> [github] t-paul pushed 1 modifications (Update news ticker.) https://github.com/openscad/openscad.github.com/commit/9f06eab71cce4e5577cc918594e6d1524667f5ef
epony has joined #openscad
<JordanBrown> InPhase: I get about 1fps for yours and about 10fps for mine.
<JordanBrown> But I'm running on a ~$600 desktop from 2013.
<JordanBrown> In somebody's Copious Free Time it would be nice to have an operation that directly emitted a video, rather than requiring emitting N frames and then using an external toolchain to produce the video.
<teepee> who knows, maybe I find the time to finish up that PR sitting there for years
<JordanBrown> teepee: thanks for bringing up calculated keys. I had forgotten that case.
<JordanBrown> But the object(name=val, ...) style won't support that either.
<JordanBrown> We would need object([name, val], ...) or, probably better, object([[name,val],...]).
<JordanBrown> That is, the argument to object() should be an array of name-value pairs.
<teepee> that's from the suggestions revar posted quite some time ago https://lists.openscad.org/empathy/thread/3DVXSTCBWJPKPUVBJBFMMQ27BVYUS352
<teepee> I'm not sure it's object, or a distinct dictionary
<JordanBrown> Hence my comment about need for terminology.
<JordanBrown> Maybe I've just spent too much time working in JavaScript, but my inclination is that we do not need nor want a dictionary type that is distinction from an object type.
<JordanBrown> (Again, distinguishing this from *geometric* objects, which might or might not be different)
<teepee> I'm happy to have a unified solution, but I would not mind having a dedicated dictionary in addition
<JordanBrown> What would be the advantage of having dictionary as a separate concept?
<teepee> allow things like dict + dict where maybe object + object is not allowed
<JordanBrown> But why wouldn't you allow object+object? (Assuming that "+" means "union", for some definition.)
<JordanBrown> Maybe that's concat(o1, o2)
<teepee> I'm not declaring 100% it must not be there, but I wonder if it causes too much trouble, e.g. an object with x = 3; another with x = 6; both creating geometry based on that
<teepee> what's the result?
<JordanBrown> In my model, the geometry was created when the object was created. It's immutable.
<teepee> for a dictionary it seems ok to declare second overwrites first
<teepee> you still have to resolve the x variable conflict
<JordanBrown> So while I'm not sure what { cube(); } + { cylinder(); } is, it doesn't involve figuring out what shapes are involved.
<JordanBrown> { x = 5; } + { x = 6; } should probably yield { x = 6; }.
<JordanBrown> But maybe (or maybe not) there should be a function that does first-wins.
<JordanBrown> Or maybe (but probably not) addition should consider each element, and individually add them.
<JordanBrown> but { x = 3; cube(x); } yields an object with a member x with a value of 3, and geometry that is a 3-unit cube, and nothing that you do to it (other than somehow replacing the geometry) will change that.
<JordanBrown> The value of x and the size of the cube were related at expression evaluation time, but after that point they are no longer related.
<teepee> yes, but if you have { size = "M3"; screw(size); } + { size = "M4"; screw(size); }
<teepee> even if the geometry is fine, it's not going to represent something useful for size
<teepee> where with dictionaries, it's easy to explain what happens+
<JordanBrown> Indeed, that combination is probably not going to yield anything useful.
<JordanBrown> Well, unless the definition of { geometry1 } + { geometry2 } is a union.
<JordanBrown> which wouldn't be useful in the specific case of a screw, but might be useful in other cases.
<JordanBrown> Yes, randomly combining values may yield useless combinations.
pah_ is now known as pa
pa has quit [Changing host]
pa has joined #openscad
<InPhase> JordanBrown: Yes, yours gets me 45 fps. I broke mine into two pieces, and the thing that slows mine from 45fps to 10fps on my system (and probably from 10fps to 1fps on yours) is actually the recursive bezier curve generation. When I precalculate the bezier curve and store it, it goes to 45fps with mine as well. The polyhedron parts perform identically.
<InPhase> So basically, just creating the side profile line was slow with a nuanced bezier curve, and using a sine function for that is much faster.
<InPhase> There might be a faster bezier implementation than the recursive formula, but that was the one that seemed easy to write some time ago when I wanted one that worked for any arbitrary number of control points. I suppose it scales acceptably or poorly depending on the target application and how much that 0.1 second or so counts for. :)
<JordanBrown> I don't have an opinion on arbitrary-order Bézier curves. I've only used the kind with two endpoints and two control points. I don't know how higher-order ones work.
<JordanBrown> But I do think it would be useful for Bezier functions to take their control points in polar coordinates relative to the endpoints, not just absolute cartesian coordinates.
<JordanBrown> teepee: going back to the question of how the data-value members of an object relate to the geometry member(s), and how it's immutable, consider https://bpa.st/LIDQ . That should echo 2. The x+1 is evaluated on line 2; merely refering to o.y on line 5 does not cause the "x+1" to be reevaluated
LordOfBikes has joined #openscad
<teepee> correct, not for x, that is captured statically, different story for $x
<JordanBrown> with the new value of x.
<JordanBrown> https://bpa.st/6DCQ substitutes $x for x, and should still emit 2.
lastrodamo has quit [Quit: Leaving]
<JordanBrown> Just as https://bpa.st/QHAA emits 2.
teepee_ has joined #openscad
<JordanBrown> Once you've executed the line with the object constructor { ... } the object is an immutable data object, with nothing executable about it.
<linext_> JordanBrown, the Processing P5 system can output video
<JordanBrown> linext_: what is a "Processing P5 system"?
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
<linext_> sort of like arduino but for graphics
<JordanBrown> Sorry, I think I was unclear.
<linext_> in wonder if ffmpeg could be used to generate a video or GIF from frames
<JordanBrown> I wasn't meaning video like HDMI or NTSC, I meant video like .MOV or animated .GIF or .MPG.
<linext_> yea, Processing has a plugin to export frames into video
<JordanBrown> That is, if you have an OpenSCAD program with $t, you should be able to say "animate my program at xx FPS and yy frames total, and put the result in zz.mpg".
<linext_> i agree, to make the GIF i had to feed a bunch of PNG files into a web app
<JordanBrown> Where today you have to have it dump yy frames into individual files and then use something like Image Magick to turn that into a video file.
<linext_> yes
<linext_> Processing is similar, in that it's designed to output images and not video
teepee has quit [Remote host closed the connection]
<JordanBrown> I knew I had a shell script somewhere that did it; I just didn't want to *need* a shell script. The key line is:
<JordanBrown> magick convert $* -set delay 1x10 $dest.gif
teepee has joined #openscad
<JordanBrown> I added a section on dynamic construction to that Google Doc https://docs.google.com/document/d/14siqbr9CyGuA2tY6dvTqiF3Hf9zFMyefk7YdaUJSn3Q
<linext_> i wonder if the amolen dual/triple color filament could be drawn in OpenSCAD
<JordanBrown> Dynamic object construction, that is.
<linext_> maybe that would be better in the gcode
<JordanBrown> I made dual-color filament using OpenSCAD once. Since I only have a single extruder, and since OpenSCAD doesn't directly support multi-color anyway, I had to have the slicer have the printer stop halfway through so I could change the filament.
<JordanBrown> It was tricky to build a thin spiral that was totally smooth and used the same number of lines of extrusion all the way through.
ur5us has quit [Ping timeout: 244 seconds]
<linext_> they sell filament that's split in 2 or 3 pieces
<JordanBrown> Yes, that's pretty much what I printed. In smaller quantity, that is.
<JordanBrown> https://www.thingiverse.com/thing:3565827 though I did my own implementation.
<othx> JordanBrown linked to "3D-Printable Filament! -Print Your Own Filament for Multi-Color! by Turbo_SunShine" on thingiverse => 1 IRC mentions