TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
<J1A84>
can someone verify that https://bpa.st/BMKQ is a bug ? $fs biger 4 causing "mesh not closed" and in bigger circles this number gets bigger. $fn 70 seems to be some kind of limit.
<J1A84>
(only when rendering)
<J1A84>
what i don't understand is that without offset or without the difference - this is not a problem .. so who to blame is it really roof or what is going on here?
<J1A84>
ok this is also enough union(){roof($fa=.1,$fs=3)circle(20);cube();}
<J1A84>
so it is roof causing it
<J1A84>
(and smaller $fs causing it .. not bigger);
<teepee>
I think there's a supposed bugfix for (at least some?) of the resolution issues. I'll have to find some time to have a look at that
<teepee>
with some luck that fixes this
<J1A84>
oh roof (method="straight") is getting really slow for more points.. 15 sec is kind of annoying ..
teepee_ has joined #openscad
teepee has quit [Ping timeout: 258 seconds]
teepee_ is now known as teepee
ur5us has joined #openscad
castaway has joined #openscad
phas858[m] has quit [Quit: You have been kicked for being idle]
feuerrot has joined #openscad
ur5us has quit [Ping timeout: 272 seconds]
aiyion has quit [Remote host closed the connection]
TheAssassin has quit [Remote host closed the connection]
aiyion has joined #openscad
aiyion has quit [Remote host closed the connection]
TheAssassin has joined #openscad
aiyion has joined #openscad
fling has quit [Ping timeout: 258 seconds]
fling has joined #openscad
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
califax has quit [Remote host closed the connection]
fling has joined #openscad
califax has joined #openscad
teepee has quit [Remote host closed the connection]
snaked has quit [Quit: Leaving]
teepee has joined #openscad
<InPhase>
J1A84: I'm not getting a mesh not closed. Are you using a current version of master?
<J1A84>
InPhase 2022.09.05
<J1A84>
what happens with union(){roof($fa=.1,$fs=.1)circle(20);cube();}
<InPhase>
That gives a "mesh not closed" and a cone.
<J1A84>
just checked with 2022.3 seems it was working there
<J1A84>
but how can you get part geometry and an error .. weird
<J1A84>
can you save the cone with that error?
<J1A84>
how odd i can have smaller circles and bigger circles with $fn=80 .. (they fail with other $fn)
<InPhase>
Yeah, I'll msg you a link to that stl.
<InPhase>
Not sure what good the stl is though. :) I bet the not closed part is some infinitesimal bit near the point.
juri__ has joined #openscad
<J1A84>
look ok so far ( could used a 3mf though Ü )
<J1A84>
when i get the mesh not closed error .. i never see any geometry rendered
<J1A84>
well probably something updated
<InPhase>
Well, flush caches too.
<InPhase>
But something might have updated.
N4buc0 has joined #openscad
<InPhase>
Although I don't see any fast-csg work in that time period.
juri_ has quit [Ping timeout: 272 seconds]
<J1A84>
my Roof module can now make negative deg chamfers .. this causes problems when certain sizes are too big and for some need straight calculation as it uses an offset ..
teepee has quit [Remote host closed the connection]
J1A84 has quit [Quit: Client closed]
J1A84 has joined #openscad
teepee has joined #openscad
neur0 has joined #openscad
<peepsalot>
InPhase: i think i'll just put a comment above that "using" line. any preference on the wording (or would you like to open an issue in your own words)?
<peepsalot>
InPhase: I was thinking: Note: The "using" here is a kludge to avoid a compiler warning. It would be better to fix the class relationships, so that Polygon2d does not inherit an unused 3d transform function. But that will likely require significant refactoring.
<tristero>
How can I do the equivalent of a scaled linear_extrude, but with nonlinear scaling? I want to make a flared base for an object (which isn't round, so I can't just rotate_extrude an already-flared shape)
<InPhase>
tristero: There are many shortcuts that can work nicely depending on the precise shape. A straightforward generalized solution is this approach for arbitrarily complicated ones: https://github.com/rcolyer/closepoints
<InPhase>
tristero: If you want a shortcut, you'd have to put up the exact shape. (Be back in an hour or so.)
<peepsalot>
InPhase: so you know how I replaced the STR macro with a recursive templated function? Just now I was trying to separate those changes from the other decimal formatting changes, and put in its own PR
<peepsalot>
InPhase: problem is, for some reason when I try to replace scad::ostringstream with std::ostringstream, i get errors as if its trying to converting `const char*` C-strings into ostreams
<InPhase>
I think you want: oss << t << std::forward<Args>(args) << ...
<InPhase>
Or hold on. We talked about making it commas.
<peepsalot>
it worked fine with my scad::ostringstream though
<peepsalot>
i feel like this is some weird thing like when I found out C++ prefers to coerce const char* into booleans when I was messing with Value.h
<InPhase>
I think it's a problem with the parameter pack expansion, but I'm not sure how yet.
<InPhase>
It is complaining about the SECOND argument being an ostream.
<InPhase>
Your second argument is not an ostream.
<InPhase>
So it's doing something wonky.
<InPhase>
What about: return STR((oss << t), std::forward<Args>(args)...);
<InPhase>
As a hunch.
<peepsalot>
nope, basically same errors
<InPhase>
peepsalot: Sanity check. Check all STR functions in the version you just made, and make sure all of them say std:: and not scad::
<InPhase>
It's conceivable you could have changed one but not both?
<InPhase>
Which would redirect it to the third definition and back to the first two.
<InPhase>
Except in so doing it would have given you oss << oss
epony has quit [Ping timeout: 252 seconds]
epony has joined #openscad
<peepsalot>
InPhase: yeah its not using scad::, i already cherry-picked the STR related hunks, so scad::ostringstream doesn't even exist in my current local repo
<InPhase>
Check the calling line for the STR in the part of the message truncated.
<InPhase>
You could be using something other than std::ostringstream like a std::ostream, in which case you would get the same result.
<InPhase>
It will call the 3rd, and then back to the first two and cause this error.
<InPhase>
Like: STR(cout, "foo") will give this error message.
<InPhase>
(I think.)
<InPhase>
Oh, gees.
<InPhase>
std::basic_ostringstream's << returns ostream itself, which is enough to cause the problem.
<InPhase>
I bet your scad::ostringstream's << returns scad::ostringstream. :)
<InPhase>
Basically, your matching fails to detect the base class, so you get the third STR, which is a failure.
<InPhase>
You can handle that by changing your first two STR to take std::ostream instead or also.
<InPhase>
Got to run, but I think that will fix it.
<peepsalot>
well, why the heck would std::ostringstream do that. the first STR definition requires to use functions specific to ostringstream
<peepsalot>
maybe not worth separating this after all.
<peepsalot>
ok, i'll just do the operator<< call separately from the recurring STR call