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
<a6-webm> has anyone messed with in-code documentation (a la rust's "///")? I was looking at the GSOC for adding more help info, and thought this would be a pretty neat tie in (but if my last msg is anything then some has already done it lol)
<a6-webm> (I'm checking logs btw)
<a6-webm> anything to go by* someone*
a6-webm has quit [Quit: Client closed]
<JordanBrown1> Don't expect sub-minute reply times :-)
<JordanBrown1> I'm not aware of anybody doing anything formal with that sort of thing.
<JordanBrown1> I guess they gave up in <7m.
a6-webm has joined #openscad
<a6-webm> I said I was checking logs lmao
<a6-webm> and it's like midnight where I am, I'm snug as a bug in a rug one could say
<a6-webm> but fair good to know
a6-webm has quit [Client Quit]
<JordanBrown1> I'm not aware of anybody doing anything formal with in-source documentation. There is certainly no standard.
<JordanBrown1> (and gone again; maybe they will come back)
a6-webm has joined #openscad
<JordanBrown1> But I bet that you could use something like Doxygen.
<a6-webm> (read in spy's voice) suprise
<JordanBrown1> Nope, not surprised :-)
<a6-webm> ah yeah forgot abt doxygen
<a6-webm> very real
<JordanBrown1> Those tools don't tend to be all that sensitive to the syntax of the language that they're processing.
<a6-webm> though I was more thinking of the code documentation showing up in the openscad editor on hover
<a6-webm> so I think doxygen compliance is a free win rather than a solution
<a6-webm> free extra win*
<JordanBrown1> Indeed, Doxygen would get you generate "paper" documentation, but wouldn't help with in-editor documentation.
<JordanBrown1> s/get/help/
<JordanBrown1> Still, probably best to pick some standard and emulate it, rather than making something up.
<JordanBrown1> That is, confirm that Doxygen (or whatever) can produce reasonable documentation, and then add stuff to process Doxygen comments and display them.
<a6-webm> very real
<a6-webm> I love giving myself work to do with 2 days to spare 🙃🙃🙃
<a6-webm> thanks for the hints, I go slerjy need sleep so catch you laterssssss
a6-webm has quit [Quit: Client closed]
<JordanBrown1> Later
<teepee> doxygen seems quite tied to c++ which probably is going to be trouble
<JordanBrown1> I thought we used it at work for some project, and we don't do any C++.
<JordanBrown1> Would have been either C or Java.
kintel has joined #openscad
extor has joined #openscad
<kintel> a6-webm: I think someone did a in-source documentation thing a long time ago
<kintel> ..but I can't remember if they got anywhere on the tooling side
<kintel> This could have been the one: https://github.com/BelfrySCAD/openscad_docsgen
<teepee> the gsoc topic is more about integrated documentation, not so much generating external stuff though
hyvoid has joined #openscad
<gbruno> [github] kintel closed issue #3189 (Release snapshot from CircleCI build) https://github.com/openscad/openscad/issues/3189
mmu_man has quit [Ping timeout: 256 seconds]
mmu_man has joined #openscad
<gbruno> [github] kintel closed issue #3324 (OFF Export Texture (UV) Coordinates) https://github.com/openscad/openscad/issues/3324
LordOfBikes has quit [Ping timeout: 268 seconds]
<gbruno> [github] kintel closed issue #3368 (Crashes when trying to render STL file on headless system) https://github.com/openscad/openscad/issues/3368
LordOfBikes has joined #openscad
<gbruno> [github] kintel closed issue #3397 (CGAL error in CGAL_Nef_polyhedron3()) https://github.com/openscad/openscad/issues/3397
<gbruno> [github] kintel closed issue #3436 (GGAL Error when using BOSL gear library. ) https://github.com/openscad/openscad/issues/3436
GNUmoon2 has quit [Remote host closed the connection]
califax has quit [Remote host closed the connection]
TheAssassin has quit [Remote host closed the connection]
aiyion3 has quit [Read error: Connection reset by peer]
TheAssassin has joined #openscad
califax has joined #openscad
aiyion3 has joined #openscad
GNUmoon2 has joined #openscad
califax has quit [Remote host closed the connection]
GNUmoon2 has quit [Remote host closed the connection]
califax has joined #openscad
GNUmoon2 has joined #openscad
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<gbruno> [github] kintel closed issue #3472 (incorrect rendering) https://github.com/openscad/openscad/issues/3472
mmu_man has quit [Ping timeout: 252 seconds]
<JordanBrown1> InPhase, guso78k: Updated that imgur post https://imgur.com/a/2xwRmtp with the final(?) images.
<JordanBrown1> https://bpa.st/MILA is the program
<InPhase> That looks more leveled...
<InPhase> i.e., blanaced.
<JordanBrown1> I tried to make it fully general for the case of three axis-aligned edges, isolate out the key parameters, usable with customizer
<JordanBrown1> InPhase it probably isn't; I haven't changed the actual logic.
<InPhase> lol, well the output looks more balanced than your whitespaces.
<JordanBrown1> And remember I'm not generating the patches - it's BOSL2
<JordanBrown1> Oh, you mean of the coordinate lists
<JordanBrown1> ?
<InPhase> Yeah. :)
<JordanBrown1> Yeah, they were all nicely aligned when they were all small integers.
<JordanBrown1> I forgot to go back and try to clean them up now that they are all variables.
<InPhase> Ah, I guess that approach still has a point where the lines all come together like an OpenSCAD sphere. Just now it's hidden in the shadows beneath the model.
<JordanBrown1> Yes, I had to pick which corner was degenerate, and picked the Z=0 corner.
<InPhase> But I stipulate it looks good, even if I know it has this strong bias point.
<JordanBrown1> Not particularly to hide it, but because it seemed like the most special corner.
<JordanBrown1> They'
<InPhase> Yes, that is the right one to choose.
<InPhase> Had we done this with a sphere hull, you'd have the same effect.
<JordanBrown1> They've got a function specifically for degenerate patches, but it doesn't seem to have a debug variant, and I wanted to retain debug as an option.
<JordanBrown1> (debug gives you a version with the control points marked.)
<JordanBrown1> https://bpa.st/VF7A cleaned up
<JordanBrown1> Bézier patches make my head hurt.
<JordanBrown1> This made my head hurt doubly, because there are four Bézier patches that share various points.
<JordanBrown1> And several times I realized that I had something backwards, either in terms of having the yellow side out or in terms of being easy(ier) to understand, and when I rearranged things of course I broke them.
<JordanBrown1> And if you've ever played with Bézier curves you know that if you have the CPs in the wrong place you can get all kinds of deranged stuff, and that's squared for patches.
<JordanBrown1> I had basically this shape a long time ago, but with constant integers.
<JordanBrown1> I wanted to isolate down which coordinates needed to be the same, or needed to share X and Y with one coordinate and Z with another.
<JordanBrown1> And that made my head hurt more.
J24k84 has joined #openscad
<JordanBrown1> And I had assumed that there would be constraints on the relationships between the three axes, more than that the three corners had to meet.
<JordanBrown1> I thought that the X and Y patches needed to have their top at the same Z value, and so on. But that turns out not to be really necessary.
J24k62 has quit [Ping timeout: 250 seconds]
califax_ has joined #openscad
califax has quit [Remote host closed the connection]
califax_ is now known as califax
<JordanBrown1> Adrian points out that the degenerate variant generates the same shape, just with different triangulation, so the same debug scaffolding applies; all I needed to do was to tell the debug variant *not* to generate the patch itself.
<JordanBrown1> I've updated the imgur post to show the difference. https://imgur.com/a/2xwRmtp
<JordanBrown1> New snapshot of the program: https://bpa.st/I6JA
<JordanBrown1> Inphase, guso78k^
analoq has quit [Ping timeout: 252 seconds]
analoq has joined #openscad
<InPhase> guso78k: JordanBrown1: Well... I hate writing tesselating code, but I did it. Here's the code, and the image: https://bpa.st/POEA https://imgur.com/a/6vSpNY5
zl2tod has joined #openscad
<JordanBrown1> It's very pretty. And I really shouldn't say things about reinventing wheels, since I do it all the time, but...
<JordanBrown1> I am duly impressed that you made it work.
<JordanBrown1> Are you sure you have the control points on the curve along Z=0 right?
<JordanBrown1> It looks like the line starts pulling away from straight pretty fast.
<JordanBrown1> like maybe it was never straight in the first place
<JordanBrown1> I'm not as familiar with quadratic Bézier curves as I am with cubic. (And Adrian likes quartic!)
<JordanBrown1> But looking at the examples on the Wikipedia page, it sure seems like the line starts out pointed straight at the control point.
califax has quit [Remote host closed the connection]
califax has joined #openscad
<JordanBrown1> And your control point for the XY curve is out at [X,Y,0] where it belongs.
<JordanBrown1> Your Bezier function produces the right shape.
<JordanBrown1> It seems quite suspicious that points_xy is almost unused.
<JordanBrown1> Here's the correction, I think. At line 31, you have
<JordanBrown1> points = [points_xz[i], points_mid[i], points_yz[i]]
<JordanBrown1> that control point is in the middle of the curve, I think, which isn't what you want.
<JordanBrown1> You want a control point out at the opposite side of the diagonal.
<JordanBrown1> points = [points_xz[i], [points_xz[i].x, points_yz[i].y, points_xz[i].z], points_yz[i]]
<JordanBrown1> See the third image at https://imgur.com/a/Lah6dTm
<JordanBrown1> Note that points_xy remains almost unused, as is points_mid.
<JordanBrown1> at line 28 you have
<JordanBrown1> i == (N-1) ? [points_mid[N-1]] :
<JordanBrown1> That is, I believe, yielding the top point.
<JordanBrown1> If you replace it with
<JordanBrown1> i == (N-1) ? [[0,0,dims[2]]] :
<JordanBrown1> then you can eliminate points_mid and points_xy.
<InPhase> JordanBrown1: Yes, that is improved.
<InPhase> And that shaves off a lot of lines too.
<JordanBrown1> 3am?
<InPhase> Yeah... :) Trying again to sleep now. :)
guso78k92 has joined #openscad
<guso78k92> Jordan, It wold be great to see the work combined ...
<JordanBrown1> You're have to talk to the BOSL2 guys about that.
<JordanBrown1> I'm just a user, and a newbie at that.
<JordanBrown1> (WRT BOSL2, that is.)
<JordanBrown1> Bedtime.
hyperair has quit [Ping timeout: 260 seconds]
a6-webm has joined #openscad
<a6-webm> yeah from what I read doxygen's parser is one massive state machine for all the languages it supports, so probably not gonna hit that lol
<a6-webm> but yeah while the gsoc proposal is for showing some of the stock scad information/cheatsheet, I feel like if you can hover something and get a pop up, it'll make people go "dang i wish my functions had these handy pop ups"
<a6-webm> and then if the implementation of the pop ups don't assume their info is coming straight from deep in the scad source code, someone could merge a documentation generator and bob could be your uncle
a6-webm has quit [Quit: Client closed]
<pca006132> feel that it would be more useful to support that in a language server instead of openscad GUI
<pca006132> feel that most people are working on vscode or some other editor now
L29Ah has quit [Ping timeout: 268 seconds]
mmu_man has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
mmu_man has quit [Ping timeout: 255 seconds]
hyperair has joined #openscad
L29Ah has joined #openscad
<teepee> LSP would be great and a prototype does exist, but that's probably too big a topic for gsoc
<pca006132> true
mmu_man has joined #openscad
mmu_man has quit [Ping timeout: 252 seconds]
<InPhase> guso78k: Making sure you got the final result of the discussion JordanBrown1 and I were having last night: https://bpa.st/SHLQ
teepee_ has joined #openscad
teepee has quit [Remote host closed the connection]
teepee_ is now known as teepee
mmu_man has joined #openscad
kdc has joined #openscad
J24k84 has quit [Ping timeout: 250 seconds]
<gbruno> [github] kintel closed issue #3610 ("double free or corruption (!prev)" error on rendering) https://github.com/openscad/openscad/issues/3610
RoyK has quit [Ping timeout: 272 seconds]
RoyK has joined #openscad
mmu_man has quit [Ping timeout: 260 seconds]
mmu_man has joined #openscad
<guso78> Inphase thank you. I will try to adopt latest Code
<JordanBrown1> pca006132 data point: I use the internal editor. (But also I've never really felt the need for this kind of dynamic documentation.)
mmu_man has quit [Ping timeout: 272 seconds]
mmu_man has joined #openscad
mmu_man has quit [Ping timeout: 256 seconds]
<JordanBrown1> In fact, when I install OpenSCAD on a new computer, one of the first things I do (as soon as I notice it) is to turn off the existing hover-popup documentation, so that it stops popping up and obscuring what I'm looking at.
guso78k92 has quit [Quit: Client closed]
mmu_man has joined #openscad
TheAssassin has quit [Ping timeout: 260 seconds]
TheAssassin has joined #openscad
teepee_ has joined #openscad
mmu_man has quit [Ping timeout: 252 seconds]
teepee has quit [Ping timeout: 260 seconds]
teepee_ is now known as teepee
mmu_man has joined #openscad
qeed_ has joined #openscad
qeed has quit [Ping timeout: 260 seconds]
mmu_man has quit [Ping timeout: 260 seconds]
snaked has quit [Quit: Leaving]
mmu_man has joined #openscad
kdc has quit [Quit: Leaving]
mmu_man has quit [Ping timeout: 264 seconds]
mmu_man has joined #openscad
guso78k has quit [Quit: Client closed]
marcus has quit [Remote host closed the connection]
marcus has joined #openscad
zl2tod has quit [Remote host closed the connection]
zl2tod has joined #openscad
Yossi has joined #openscad
<gbruno> [github] kintel closed issue #3756 (Crash during rendering on macos 11.3) https://github.com/openscad/openscad/issues/3756