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
mtm has quit [Ping timeout: 252 seconds]
mtm has joined #openscad
guso78 has quit [Ping timeout: 260 seconds]
<gbruno> [github] kintel pushed 435 modifications (Make headers include relative to project-root. (#5312)) https://github.com/openscad/openscad/commit/ebe6fc2948f988d177e99783a35fcac03293e5e5
<gbruno> [github] kintel closed pull request #5312 (Make headers include relative to project-root.) https://github.com/openscad/openscad/pull/5312
<gbruno> [github] kintel closed issue #5311 (Header includes: would be neat if relative to project-root) https://github.com/openscad/openscad/issues/5311
mtm has quit [Ping timeout: 252 seconds]
mtm has joined #openscad
J24k97 has joined #openscad
J24k49 has quit [Ping timeout: 256 seconds]
<gbruno> [github] kintel synchronize pull request #5235 (Add backend setting / flag to enable manifold in prod builds) https://github.com/openscad/openscad/pull/5235
snaked has joined #openscad
LordOfBikes has quit [Ping timeout: 272 seconds]
LordOfBikes has joined #openscad
<gbruno> [github] hzeller opened pull request #5321 (Add #include <memory> in files that use symbols out of it.) https://github.com/openscad/openscad/pull/5321
mmu_man has quit [Ping timeout: 252 seconds]
myosotis has quit [Remote host closed the connection]
L29Ah has quit [Ping timeout: 265 seconds]
drfff has quit [Ping timeout: 260 seconds]
ccox_ has joined #openscad
ccox has quit [Ping timeout: 248 seconds]
fling has quit [Remote host closed the connection]
ccox_ has quit [Remote host closed the connection]
guso78k has joined #openscad
<guso78k> teepee, for dumped animation frame, would it make sense to 1) sort them in a directory with the design name 2) clear directory content, when "play" is pressed 3) write the frame only when it does not yet exist 4) give hint to user how to create a video from the video or even use QProcess again ?
<guso78k> * video from the frames ...
misterfish has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
fling has joined #openscad
ccox has joined #openscad
guso78k has quit [Quit: Client closed]
L29Ah has joined #openscad
L29Ah has left #openscad [#openscad]
misterfish has quit [Ping timeout: 265 seconds]
J24k97 has quit [Quit: Client closed]
J24k97 has joined #openscad
hyperair has quit [Ping timeout: 245 seconds]
snaked has quit [Quit: Leaving]
J24k97 has quit [Quit: Client closed]
J24k97 has joined #openscad
J24k97 has quit [Quit: Client closed]
J24k97 has joined #openscad
L29Ah has joined #openscad
mmu_man has joined #openscad
L29Ah has left #openscad [#openscad]
mtm has quit [Ping timeout: 246 seconds]
mtm has joined #openscad
J24k97 has quit [Quit: Client closed]
J24k97 has joined #openscad
misterfish has joined #openscad
paddymahoney has quit [Ping timeout: 245 seconds]
<teepee> he did tease them with the web changes ;-)
paddymahoney has joined #openscad
myosotis has joined #openscad
cart_ has quit [Quit: Konversation terminated!]
<teepee> well, the answer is yes, great: "but it has to work for the general case"
<teepee> I did an implementation many years ago, but it never was fully general
<J24k97> yeah i already wrote that the syntax and usage of such a feature might be something very new
<J24k97> the other approach is to have access to points of a 2D shape to feed that into
<teepee> a good first step would have been that 2.5 extrude
<teepee> like not fully automatic along a path, but you give 2d shapes in 3d
<InPhase> If that poster were to appear here, I would share the design struggles that kept me from implementing this years ago. :)
<InPhase> The "make it reliably do the right thing" problem is what kept ClosePoints as a library for now.
<InPhase> Virtually none of those considerations go away if you swap points for polygons and N layers to 2 layers.
<J24k97> we could (should) combine LOFT and SWEEP  and sure need subdivision/interpolation
<InPhase> Only the self-intersection problem goes away. The "what is the right mapping" problem does not.
<teepee> what we need is not so much a developer but someone with very very deep understanding of the math behind that stuff
<teepee> for solving the corner cases, like "simple" path extrude has at least one degree of freedom too much by rotating around the path
<J24k97> maybe the trick would be a hull(convex=false)  that would  loft 2 3D body (or 2D)
<J24k97> but as skin not hull()
<InPhase> J24k97: One is left with multiple competing definitions for that. It's not single-valued.
<J24k97> it probably would only make sense for 2D shapes - else this would just have the 3D body at the ends and if those are overlapping it gets messy
<teepee> thats not solving the rotation problem
<InPhase> J24k97: Like, take a 5-sided star and try to find the right mapping to a square. Then look for another mapping. What happens then if you rotate the star slightly out of perfect alignment? Do you always look for the closest points to prioritize? What if two points are equidistant except for floating point error? Is there any way for a user to express a tessellation that is not closest-point
<InPhase> preferencing, such as one could easily desire when doing the common problem of making smoothly turning threads?
<J24k97> you sure need to subdivide/equalize the 2 inputshapes
<InPhase> The entire design of the ClosePoints library was built around my struggling with this problem of mapping good tessellations that match intent between two layers.
<InPhase> 8 years later, thinking about it occasionally this whole time, and with lots of people talking about it often, I still don't have a better answer.
<J24k97> can close points have slices with different numbers of fragments?
<InPhase> It cannot, on purpose, because I to this day cannot find a way to permit different numbers of fragments AND clarify designer intent for the tessellation.
<InPhase> These seem mutually incompatible.
<teepee> we'd need Oskar :-)
<InPhase> But I would love to hear other ideas.
<J24k97> use splines
<InPhase> The moment you introduce different point counts between layers, all those questions I asked and more come out in full force, and there seems to always be a pathological case where it maps wrong.
drfff has joined #openscad
<InPhase> J24k97: That example avoids tessellation questions by not showing any lines, and just making everything smooth. :)
myosotiss has joined #openscad
<InPhase> And yes, the problem goes away if you don't care how any of the tessellations happen. But this is not what people are thinking about when they ask for a tool to map a square to a triangle, or something like that.
<J24k97> i think (at the moment) that if you create an intermediate shape between the in and out shape that is used to create the number of  segments for in and out to match
<InPhase> It IS possible to map a square to a triangle by making it all smooth in between, and adding a ton of layers, and then the ambiguity goes away.
<gbruno> [github] kintel closed pull request #5321 (Add #include <memory> in files that use symbols out of it.) https://github.com/openscad/openscad/pull/5321
<gbruno> [github] kintel pushed 158 modifications (Add #include <memory> in files that use symbols out of it. (#5321) Add the header to all files that use one of * std::shared_ptr * std::unique_ptr * std::make_shared * std::make_unique As found by clang-tidy and reported as [misc-include-cleaner]. Reduces [misc-include-cleaner] warnings 3565 -> 3264) https://github.com/openscad/openscad/commit/709b93bed24a265f842c09794a88d7fe95c95197
<J24k97> yes so just use $fs to subdivide every straight line
<J24k97> like zen has done with twist for linear_extrude
<InPhase> Although I think some ambiguities still arise with other shapes, even with smoothing.
myosotis has quit [Ping timeout: 252 seconds]
<InPhase> Particularly when you have concave shapes that are outside and inside of the other shape alternatingly, and you additionally have the opportunity for floating point ambiguities about proximities and so on.
<InPhase> These issues are obviously not there on the non-pathological autocad reference examples.
<J24k97> that was why i said "create an intermediate shape for point distribution"
<InPhase> J24k97: One well-defined solution I thought of before was perimeter mapping. But it's very easy to make cases that do very obviously wrong things with that.
<J24k97> afair  you can modify those mappings in autocad  - but that sure can't be done in scad
<InPhase> One just needs to add a long pointy 2D protrusion to one shape, and then you get very bad results.
<InPhase> J24k97: The example in the first answer with 24 points per layer is basically the ClosePoints solution but with spline layers added between the equal point-length layers.
mmu_man has quit [Ping timeout: 264 seconds]
<J24k97> if you lay a grid on both shapes you know how to map and distribute the points
SamantazFox has quit [Quit: Bye]
<J24k97> so if IN has 2 point in that grid cell and OUT has 10 - you need to subdivide that IN segment until it matches the OUT grid cell
<J24k97> first select the start by using the closest and then advance and if one path moves faster (threshold) than the other you subdivide
<J24k97> probably need to calculate the length of both shapes to be able to compare them
mmu_man has joined #openscad
SamantazFox has joined #openscad
mmu_man has quit [Ping timeout: 248 seconds]
mmu_man has joined #openscad
teepee_ has joined #openscad
deathonater has quit [Read error: Connection reset by peer]
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
<gbruno> [github] hzeller opened pull request #5322 (Insert missing <cstdint> header for all files using sized ints.) https://github.com/openscad/openscad/pull/5322
<pca006132> I personally would prefer something that can be parameterized by t from 0 to 1 and interpolate in between... for points mapping
<pca006132> I remember Emmett saying that people buying CAD tools are basically paying for the loft function, it is the most flexible thing that is implemented differently in different tools...
<pca006132> also, even if you solve the point matching problem for a pair of simple polygons, you still have polygons with holes to solve... and their genus can differ quite a bit
<pca006132> let alone things like nested polygons... you have a tree now
<pca006132> (though I think only allowing users to loft between polygons with the same genus is already very nice)
<pca006132> I think adding loft to openscad will be very experimental, it is almost certainly something will have to be changed after the initial round of experimentation
<teepee> yeah
<pca006132> and I think we can't aim for something perfect, it simply doesn't exist, this function is ambiguous and not well-defined, it is good enough if we have something nice for some normal inputs
<teepee> on the other hand, I think a working offset extrude, while not as general, would be covering quite a large number of interesting use cases
<pca006132> yeah, offset extrude sounds like a simpler thing to implement
<teepee> it's still difficult, but at least the result seems to be easy to reason about
mmu_man has quit [Ping timeout: 248 seconds]
<pca006132> true
<gbruno> [github] hzeller opened pull request #5323 (Insert include <utility> missing in files using std::move) https://github.com/openscad/openscad/pull/5323
<pca006132> for (positive) offset extrude, can we say that its result is the same as the union of per triangle offset extrude? if yes it should not be hard
<pca006132> making it fast is hard, but that is optimization
<pca006132> the whole algorithm will be different for an efficient version, but at least we have the ground truth this way?
<J24k97> negative offset shouldn't be a problem if we keep the points .. (and positive with delta is easy but created points need to connect to their origin
Smeef has joined #openscad
hyperair has joined #openscad
<gbruno> [github] kintel closed pull request #5322 (Insert missing <cstdint> header for all files using sized ints.) https://github.com/openscad/openscad/pull/5322
<gbruno> [github] kintel pushed 43 modifications (Insert missing <cstdint> header for all files using sized ints. (#5322) Add to all files that uses any of u?int(8|16|32|64)_t and were not including <cstdint> yet.) https://github.com/openscad/openscad/commit/e2f1c7a692d9d401e6b6f06201b2b66f7c16ff3e
<teepee> no, it's not the same for general polygons, specifically concave or with holes
<teepee> oh, well, for *only* positive? hmm, maybe?
<teepee> only positive offset is a very big additional limit
<InPhase> pca006132: I concur that positive offset extrude would look like you describe on the triangles. That is the definition which handles the self-intersection issue.
<InPhase> pca006132: Of course the negative value version has a stuff-disappearing problem to sort out, and can't be assessed the same with triangles. However, you can mathematically define negative offset extrude as the inverse of the positive extrude (as you defined it) of an infinite-space triangulation of the inverse of a starting polygon.
<J24k97> if you start with a ring - positve offset will close the hole
<InPhase> pca006132: Expressing my above blabber as code, for clarity: https://bpa.st/5AN7M
<pca006132> this is just minkowski with a cone :)
mmu_man has joined #openscad
<pca006132> minkowski is great except its performance sucks
<InPhase> pca006132: Has anyone attempted an efficient minkowfold implementation?
<pca006132> at least when people ask me if there are genuine use cases for minkowski except with a sphere, this can be the answer
<pca006132> no
<pca006132> we thought about efficient implementation for 3D offset, but the papers we saw were too vague, missing a lot of details
<InPhase> 3D offset to replace the 90% use case of minkowski would be a big help.
<pca006132> I have some idea about how to do it, but I don't really have time
<J24k97> that doesn't look right https://imgur.com/a/FHRFp3K
<InPhase> pca006132: Yeah, it seems a tricky problem.
<pca006132> 3rd year of my PhD... need to get the actual stuff done or I will be unemployed when I graduate :P
<InPhase> pca006132: Is your topic settled?
<InPhase> J24k97: I also noticed preview screwing that up on my end. :)
<pca006132> we don't really have a fixed topic, just a rough direction and work with several projects at once
<InPhase> J24k97: In last release too, so not a new problem.
<J24k97> InPhase glad it is not just a windows issue .. yeah just installed the latest to make sure it wasn't already fixed
<pca006132> InPhase: if you are interested at the discussion in 3D offset, see https://github.com/elalish/manifold/issues/192
<J24k97> but that offset minus = offset plus is only working if nothing gets closed or vanishes
<InPhase> pca006132: Ah, the pointy-edge version. I think the big use case is rounded 3D offset though.
<pca006132> yeah, I think we do need rounded 3D offset
<InPhase> Although it would be truly great to have both, rounded is probably the most desired.
<InPhase> And might actually be simpler.
<pca006132> though I'm thinking what is stopping openscad from having this 3D offset function, just implement with minkowski with spheres for now?
<pca006132> the potential future optimized version should give something similar I think
<teepee> problem is that minkowski changes the geometry, and not just does the rounding/fileting
<teepee> making that mostly general needs like 3 minkowski operations
<pca006132> yes, but offset is definable from minkowski sum, and I don't think there is any issue in changing the geometry?
<pca006132> this is offset, not rounding
<gbruno> [github] hzeller synchronize pull request #5323 (Insert include <utility> missing in files using std::move) https://github.com/openscad/openscad/pull/5323
<teepee> hmm, so just a shortcut for minkowski with a sphere? that seems not hugely useful
<pca006132> yes, shortcut for now
<pca006132> but because this is more specific, it may allow for future optimization, e.g. the link I sent above
<gbruno> [github] kintel pushed 48 modifications (Insert include <utility> missing in files using std::move (#5323)) https://github.com/openscad/openscad/commit/2c90f30b6e2c346b995101bcd5a04f3116588187
<gbruno> [github] kintel closed pull request #5323 (Insert include <utility> missing in files using std::move) https://github.com/openscad/openscad/pull/5323
<pca006132> general minkowski always require convex decomposition and tons of unions, that is guaranteed to be slow...
<InPhase> pca006132: On pointy offset corners, I think the proper definition could probably be derived fairly straightforwardly from writing it out as a planar intersection for 3. I'd have to think a little more deeply for the case of 4 or more planes.
<pca006132> feel free to leave a comment in the issue if you got any solution to that :)
<InPhase> pca006132: By several orders of magnitude I don't have the time or energy for it this week. But I might be able to be prodded into insights on it later. :)
<pca006132> sure, no hurry
<pca006132> that issue is there for a year or something now
<InPhase> Yep.
<J24k97> here a minimal of the preview error https://bpa.st/KYB5M    ( offset causing it )
<InPhase> Yeah, 4 planes to a corner gets weird on pointy. You can, I think, get the concavity of a corner to disappear even while trying to preserve the same shape but extended outward.
<J24k97> should i open an issue?  pca006132 kintel ?  https://bpa.st/KYB5M
<InPhase> J24k97: Well with offset(0) I get z-fighting lines.
<InPhase> J24k97: offset(1) is a clearer instance of the error.
<pca006132> InPhase: The current idea for this type of issue is... don't handle them, try to detect and cut along edges that will cause issues
<pca006132> *before computing this offset thing
<J24k97> yeah i was wondering if offset 0 is removing it - but it seems not to be the offset calculation but the offset module
<J24k97> when viewing from sides you still have no walls - the z fighting is on the inside of the top bottom face
<J24k97> but even -1 is weird https://imgur.com/a/VrZjwFM
<pca006132> J24k97: yeah just open an issue, can't find any issue with preview and offset
<gbruno> [github] UBaer21 opened issue #5324 (difference with offset polygon cause preview error) https://github.com/openscad/openscad/issues/5324
<gbruno> [github] UBaer21 edited issue #5324 (difference with offset polygon cause preview error) https://github.com/openscad/openscad/issues/5324
<J24k97> i think offset need convexity setting when extruded in preview
<InPhase> pca006132: Your code link in that comment has gotten mislinked by the code evolving. The efficiency I bet will hinge on how well you defined "may overlap" in code. For a very large offset, most face pairs could be within the offset radius, but nearly all face pairs would be trivially provable as not eligible for overlap due to a mutually convex face (or a set of these) in between them.
<J24k97> i wonder if a general convexity =3 would cause a big performance problem
<InPhase> J24k97: Your question makes it sound like that should be a config setting.
<J24k97> and would reduce a lot of preview errors (users not setting convexity)
<InPhase> This config setting will make all of these situations vary wildly between users, which is its own sort of chaos... But it balances differing needs of performance and correctness of display.
<J24k97> InPhase i remember i had cases in the past where i needed convexity settings in 2D
<J24k97> (used render(convexity=3) to solve)
<J24k97> maybe some info get lost  by the offset - as it looks ok without offset
<J24k97> but as rotate_extrude already set convexity=2 ..   3 could be default without harm (i think)
<J24k97> and still can have the option to increase or lower by parameter
<J24k97> But i think UX would be improved
<J24k97> probably ends in the same discussion like $fa=1 $fs=.5 as default ..   and nobody has the valor to change it.
<J24k97> but increased convexity shouldn't cause the test cases to fail
<J24k97> difference(){square(40);text("SCAD");}   is also not right  so  difference and intersection would need the convexity parameter
<gbruno> [github] UBaer21 edited issue #5324 (difference with offset polygon cause preview error) https://github.com/openscad/openscad/issues/5324
<gbruno> [github] UBaer21 edited issue #5324 (convexity error in 2D preview) https://github.com/openscad/openscad/issues/5324
aki has joined #openscad
aki is now known as akiak
<teepee> $fa/$fs as forced update is a bad idea, but making it configurable defaulting to the old values seems unproblematic
<gbruno> [github] UBaer21 edited issue #5324 (convexity error in 2D preview) https://github.com/openscad/openscad/issues/5324
<akiak> Hi! Is this a good place for asking about command line options, or can anyone direct me to the good place if not? Specifically: I'm trying to enable manifold and can't seem to.
<J24k97> teepee configurable?  you mean per preferences a default?
<teepee> yes
<teepee> akiak: try openscad --version first to see what version it is
<J24k97> like using a template for it - Ü  .. i was thinking more that new user get a nice view and not after configure it
<akiak> I'm using 2024.09.23, the latest `openscad/openscad` docker image. Same issue in another context with an older AppImage that works just fine with manifold enabled in the GUI, when running with a GUI.
<J24k97> teepee maybe if the installation would be like " use high resolution default" checkbox  to set this
<teepee> akiak: then "--enable manifold" should enable it
<J24k97> --enable all  should also do it (hopefully)
<teepee> that should work, but in general I would not just enable *everything* as there may be even conflicting settings at some point
Smeef has quit [Quit: (╯°□°)╯︵ ┻━━┻]
<J24k97> teepee but would be nice to have convexity also with a default setting - probably need changes to rotate_extrude as that is already using 2
<J24k97> changeable default setting..
<teepee> I'm not sure that's a good global setting
Smeef has joined #openscad
<teepee> I think a more reasonable local default would work in most cases, but nobody tried that so far
<teepee> and I did not have the time either
<teepee> well, time+motivation ;-)
<akiak> I get roughly the same 5s render on my benchmark file with or without that option, the same renders in less than 1s (0.8ish) when using the GUI app with manifold enabled.
<J24k97> didn't seem to cause so much resources if set to 3  and you can't set it for 2D except using render()
<teepee> yes, pure 2d has no convexity
<teepee> akiak: does it say it's using Manifold in the output?
Guest38 has joined #openscad
<akiak> Not mentioned, I get:
<akiak> Compiling design (CSG Products normalization)...
<akiak> Normalized CSG tree has 39 elements
<akiak> Geometries in cache: 37
<akiak> Geometry cache size in bytes: 14520112
<akiak> CGAL Polyhedrons in cache: 0
<akiak> CGAL cache size in bytes: 0
<akiak> Total rendering time: 0:00:03.29
<teepee> are you generating an image? that looks like it's doing preview mode
<akiak> Yes. Won't it make a difference when generating images?
Guest58 has joined #openscad
<teepee> depends on the image, in most cases preview is faster, but in docker there's no GPU so that could explain the difference
<teepee> you can try "--render"
* teepee wonders what "arg" is
<teepee> ah, "--render force"
<Guest58> new user here.  Is this a place to ask a question about BOSL2 ?
<teepee> Guest58: if it's very specific, the mailing list is a better place as there are some of the BOSL developers there, but you can still give it a try here :-)
<akiak> Oh, that helped! with `--enable manifold --render force` we're going much faster!
<akiak> Any general tips for speeding things up in docker? I only need images rendered,  in short I'm building a web service where a node app invokes OpenSCAD to generate images (for parametrized furniture and things).
<teepee> use "reasonable" and local $fa/$fs values, don't use $fn unless specifically needed and never as global setting
<teepee> otherwise it's difficult to give general advice as it very much depends on how the code is written
<teepee> only things like: stay in 2d if possible, it's often faster, only extrude to 3d at the end
* J24k97 nods
<J24k97> would be a nice text block for the wiki .. tricks'n tips or so
<akiak> Oh, I meant with the executable, some other tweaks and settings, or maybe even a custom build. But I did note these down for designs, thanks!
<teepee> hmm, with the executable, not sure, I can't think of anything specific
<teepee> with preview there's not a huge amount of options to tweak
<Guest58> okay,  I'm trying to round only specific edges on a vnf_polyhedron().  My test case is like a cube, but with the top face sloping from back to front.  I would like to round only the RIGHT+TOP edge (which slopes from BACK to FRONT). If I try attaching the rounding_edge_mask() using edge_mask() it only aligns parallel to the Y axis (not following
<Guest58> the slope of the edge).  If I try to attach mask2d_roundover()  using edge_profile() I get a compile error:   ERROR: Assertion '(is_list(list) || is_string(list))' failed: "Invalid input."
<teepee> uff :-)
<teepee> that's like 3 levels above my personal usage of BOSL so far
guso78k has joined #openscad
<akiak> Thanks for the help peeps! This is speedy enough to get me going, I'll see how well this works when deployed on a cloud server, and come back with results... sometime. Or should I try the mailing list?
guso78k has quit [Quit: Client closed]
<J24k97> teepee there is a fused dovetail in the back .. maybe copy remixed stolen
<teepee> yeah, I've seen the dovetail + text markings
<teepee> so reverse image search it is again
<teepee> a while ago I reported quite a number of those assholes just copying stuff and then even claiming "own model"
<teepee> probably thanks gamification :/
<J24k97> Installation notes:
<J24k97> 1. All 6 pieces has their part name engraved in the back
jpl has joined #openscad
<teepee> claims the same name even which does not seem right either
<teepee> hmm, same icon though
<teepee> looks like a low effort copy but legit?
<J24k97> .. AI .. but maybe a Bambu user that also upload to printables with low effort
<J24k97> but the 3mf logo is weird
<J24k97> (and there is no 3mf files)
<teepee> it's a bit odd, but I'd say it's legit, the upload dates mostly match for some designs, printables lagging a tiny bit
<teepee> so it's not a grab all and dump on printables as I've seen a lot
<teepee> also those people mostly just copy random stuff from anyone that has nice icons
<J24k97> but can't find the images in other profiles - and public domain with autodesk files
jpl has quit [Quit: Client closed]
akiak has quit [Quit: Client closed]
<teepee> lol, I just noticed the tiny keyboard I fixed today has a dedicated "ctrl+alt+del" key :)
<teepee> and that works in Linux too
<J24k97> long time ago i used that combo much more than today
<J24k97> ok well i have a taskmgr symbol that i use daily
mmu_man has quit [Ping timeout: 246 seconds]
sinned69158 has quit [Ping timeout: 265 seconds]
<J24k97> Is there any color export working at the moment .. AMF OFF 3MF and OBJ all have no colors when exporting
<InPhase> Did it get an experimental feature checkbox?
<J24k97> nope .. just renders with colors
guso78k has joined #openscad
<teepee> OBJ IIRC
<teepee> or OFF? one of the 2 :)
<teepee> oh, and I need to check the povray export PR again, that has colors too. it might be ready to merge
<J24k97> i thought so too but obj has no colors ( can't open off)
mmu_man has joined #openscad
myosotiss is now known as myosotis
myosotis has quit [Changing host]
myosotis has joined #openscad
<teepee> https://github.com/openscad/openscad/pull/5185 - Color support in 3D rendering (includes OFF color import / export, green subtracted faces)
<teepee> OFF it is
Guest58 has quit [Quit: Client closed]
<J24k97> OFF .. not even autocad can open off (freezes when trying)
misterfish has quit [Ping timeout: 260 seconds]
<InPhase> OFF is so unused that this color feature was when I first realized "OFF" was not a feature in OpenSCAD to disable geometry output...
<teepee> ouchies
<teepee> well, I guess we should do 3mf then, preferably without the library with the annoying name
guso78k98 has joined #openscad
<J24k97> So i found MeshLab to open this  -- and export into OBJ  -- to open in BS .. works - Ü
<J24k97> not sure why meshlab doesn't have 3mf support
<guso78k98> Just looked into the code and it really appears to me, that 3mf-export  does not contain colors, whereas I was sure/certain, that ochafic had done it ...
<guso78k98> has there been any reasons why not to do it yet(it literally appears straight forward to me)
<J24k97> guso78k you sure have colors in 3mf
<guso78k98> yes, 3mf can carry colors
<J24k97> and materials, and mappings
<guso78k98> but i just looked into the export code before and it appears to me, that openscad does not export the available information
<teepee> well, OFF works, so that would be surprising
<guso78k98> teepee, i had 3mf color export working in my local color branch before ochafic was able to get his manifold color stuff merged
<guso78k98> i cant find the relevant "keywords" in latest 3mf export code
<teepee> povray could also work as example
<guso78k98> yes, i'd really love to get povray export merged soon. its better than stl2povray converter
<guso78k98> I think i could simply look up the old code in my color branch and match it to latest master branch
<guso78k98> tricky part was only to import existing colors from 3mf files as i failed to iterate over the materials list '=(
<guso78k98> BTW teepee : which has been the most tricky scenarios when you wanted to morph x-section A to x-section B in the past ?
<guso78k98> a) different number of holes :')
<teepee> hmm, yeah, that sounds like a good candidate
<guso78k98> I know that a Polygon2d contains  a list of "polygons" whereas CCW ones are solids and CW are holes. But once both x-sections have same number of polygons and there a defined mapping between those, I dont see any other issues
<guso78k98> For both x-sections i would convert the points to polar coordinates, sample e.g. 60 angles  and gradually change the "amplitude" from x-section A to x-section B
<f0lkert> in the standard viewport of OpenSCAD, what are the coordinates of the default camera view?
<teepee> f0lkert: shown at the bottom after using "reset-view"
<teepee> although there's some compat code in Camera.cc
<f0lkert> Ideally I would have that information available in the export-code.
<f0lkert> I fixed the bug for the y-coordinate inversion
<f0lkert> I also fixed the lighting
<f0lkert> but the camera position is still aproximated by calculating the average x/y/z and then 1x standard deviation from 0,0,0
<f0lkert> but that's not ideal
<guso78k98> :') probability  ...
<guso78k98> i think center of mass would be ideal
<f0lkert> for the position to look at yes, but the camera position?
<teepee> well, vector + distance = camera position
<teepee> default distance 140, maybe that could be calculated from the model bounds
<teepee> default field of view 22.5
<f0lkert> ah yes sorry I was tinkering with it and found that indeed using that average distance rotated by 55,0,22 works quite well
guso78k has quit [Ping timeout: 256 seconds]
Smeef has quit [Ping timeout: 252 seconds]
Smeef has joined #openscad
deathonater has joined #openscad
<teepee> I suppose running the "viewAll" might also be an option, that would change the distance to cover the whole object by default
<teepee> that's also in Camera.cc
<teepee> also see comment on the PR, I've added some pointers for the filename info
Smeef has quit [Ping timeout: 252 seconds]
<teepee> guso78k98: your 3mf code, was that for lib3mf-v1 or v2?
<f0lkert> teepee: thanks, added
<teepee> cool, with the coordinates and rotation fixed, I'd say we can merge. all the other good ideas we can do along the way
<gbruno> [github] folkertvanheusden synchronize pull request #5288 (PovRay export) https://github.com/openscad/openscad/pull/5288
guso78k98 has quit [Ping timeout: 256 seconds]
pbsds37 has joined #openscad
pbsds3 has quit [Ping timeout: 265 seconds]
pbsds37 is now known as pbsds3
<teepee> not sure where that build error is coming from
UltimateCodeWarr has joined #openscad
paddymahoney has quit [Ping timeout: 245 seconds]
paddymahoney has joined #openscad
mmu_man has quit [Ping timeout: 252 seconds]
mmu_man has joined #openscad