#qi-hardware IRC log for Sunday, 2017-01-08

wpwrakwhitequark: having a bit of fun with solvespace: https://github.com/wpwrak/3dstuff/tree/master/scrnsup/00:47
wpwrakwhitequark: i like the tangent arc feature. makes all these rounded corners of real-life design so much easier (even if i didn't do them perfectly)00:48
wpwrakwhitequark: there's still no way to have a table with "global" variables, to use for dimensions and such, is there ?00:50
wpwrakwhitequark: also, how would i do (straight-line) chamfers instead of (rounded) fillets ? it seems that i could accomplish them with "split lines", but not as nicely as tangent arcs00:52
wpwrakwhitequark: just drawing a line across a corner doesn't seem to make solvespace consider it a chamfer00:55
wpwrakintersting ... chromium (resolver ?) now looks up CNAME records through /etc/hosts. and of course, i had an old name that was only used as alias "target" and that has changed in DNS but not in my local /etc/hosts ...01:29
whitequarkwpwrak: nope not implemented yet02:33
whitequarkwpwrak: as for chamfers can you show me a sketch tht doesn't work for you?02:33
wpwrakwhitequark: maybe i should ask what would be the best way to do chamfers. is there something like the tangent arcs ? or do i have to turn the lines leading to the corner into "construction" lines, then put together the chamfer piece by piece ?05:14
wpwrakwhitequark: with the tangents (for fillets), i'm basically placing a modifier on the straight lines, without destroying them. but i don't see a comparable operation for chamfers.05:16
wpwrakhmm no, the tangent arc actually changes things, too. thought it didn't, but now i tried to delete one, and the corner it had modified was damaged05:21
whitequarkwpwrak: there's an issue where the constraints do not preserve chirality09:23
whitequarkso you can flip the sketch across discontiguities09:24
whitequarkthis is the usual cause of such 'damage'09:24
whitequarkas for chamfers, no, not really, I would just sketch them by hand since you don't need as much construction geometry as for tangent arcs09:24
whitequarkoh, hm09:25
whitequarkyou want to constrain the non-chamfered dimension, right?09:25
whitequarkI see why that would call for a chamfer tool...09:25
wpwrakwhitequark: yes, i'd want to start with the basic geometry, then refine it with fillets and chamfers14:31
wpwraklike here: https://github.com/wpwrak/3dstuff/blob/master/scrnsup/scrnsup.slvs14:32
wpwrakor http://www.almesberger.net/misc/scrnsup.pdf14:32
wpwraki first made the basic thingie without cut-out or smoothing of corners, then added the cut-out (nice and easy, since i had clearly defined edges to keep a distance from), and rounded most of the corners.14:33
wpwrakthe use of the 32.0 constraint on the large diagonal at the bottom to control the width of the large vertical element is sub-optimal. i did it that way because things kept on flipping when i specified the width of that vertical element directly. but i may have been able to find a better dimension.14:35
wpwrakand yes, that problem was chirality. the left and right side of the vertical element would invert when making unrelated changes. i tried to use a negative width, but that didn't convince solvespace.14:37
wpwrakis there some way to give solvespace "hints" how to resolve such issues ? there's "show degrees of freedom", but that just gives me lots of points without too clear an idea of what to do with them.14:38
whitequarkwpwrak: https://github.com/solvespace/solvespace/issues/76 15:14
whitequarkthis is however blocked on the new file format, as the existing one is really hostile to any kind of evolution15:14
whitequarkmind filing a bug about the chamfer tool?15:14
whitequarkwpwrak: also let me download your models...15:18
whitequarkwpwrak: is there a reason you've assembled your entire thing totally unhinged from origin?15:19
whitequarkhehe, I forgot about this feature15:20
whitequarkwpwrak: this usually results in annoyance during assembly15:20
whitequarkwpwrak: further. why are you using so much distance constraints?15:21
wpwrakoh, i hadn't decided on a good origin at the beginning. and when i tried to anchor it, solvespace didn't like the idea. i think it complained about conflicting constraints or such.15:21
whitequarke.g. I would use a radius equality constraint every time you have a symmetric rounded edge15:21
wpwrakah yes, i could have used equality in a few cases15:22
whitequarkyou're losing out on much of the parametricity15:22
wpwrakthough many radii are slightly different15:22
whitequarkis this why you wanted global parameter tables?15:22
wpwrakyup :)15:22
whitequark(those are also blocked on the new file format)15:22
whitequark(basically everything interesting is)15:23
whitequarkok, about the origin: the lack of chirality preserving constraints strikes again15:23
whitequarkselect all, then move it about where you want it15:23
whitequarkthen constrain it15:23
whitequarkI just put the top right circle center at origin and constrained it there, that worked15:23
whitequarkthe chirality issue is really troublesome.15:24
whitequarkwpwrak: negative width generally flips the constraint15:24
wpwraki just get a red screen if i try that15:24
wpwrak(that = center the center of the circle)15:24
whitequarkwpwrak: how close did you move that point near the origin first?15:25
whitequarkit has to be well within the circle15:25
wpwraki selected both, then constrained them to be the same15:25
wpwrakah, moving it close does indeed help ;-))15:26
whitequarkyes. that's not enough, because solvespace tried to move the circle way out of the rest of the sketch, inverted a few things then promptly got into a numeric instbility15:26
whitequarklike I said, I know how annoying it is:)15:26
whitequarkthat's very high on my list of things to do15:26
wpwrakkewl :)15:27
whitequarkbtw I would appreciate if you went through https://github.com/solvespace/solvespace/issues and voted for the things you need15:27
wpwrakbtw, with the recent requirement for gtkmm >= 3.22 (or such), you cut out even ubuntu users who update frequently. let's hope the distro moves this along soonish, too.15:28
whitequarkwpwrak: yes, I understand that, and that's why it was done only in the 3.0 branch and quite late15:29
whitequarkI do not expect a 3.0 stable release until the end of 201715:29
whitequarkthere's a lot of work to be done to justify it15:29
wpwrakyes, i appreciated that i could find the version to go back to fairly easily :)15:29
whitequarkthe benefits of gtkmm>=3.22 are rather significant as the old rendering pipeline is awful in so many ways15:30
whitequarkopengl immediate mode rendered to an offscreen buffer and then flipped onto the screen using X primitives15:30
whitequarkthis is slow in more than one way, it has tearing, it really likes to glitch out, it doesn't play nice with compositing and doesn't work on wayland at all15:31
whitequarkwpwrak: that said I *thiiink* I might be able to lower the gtkmm requirement a bit15:32
whitequarkto 3.18 perhaps if that helps?15:32
whitequarkI'm not sure if it's worth the effort given how buggy early gtk3 is15:32
whitequarkwpwrak: hm, scratch that, gtkmm 3.22 is in stretch right now, so it will be in the next debian stable15:33
whitequarkI think that qualifies as widely supported enough, and I'll stay on it for rather a while then15:33
wpwrakfor chamfers: https://github.com/solvespace/solvespace/issues/14915:35
whitequarkscheduled for 3.015:36
wpwrakthanks ! :)15:37
whitequarkthat should be quite easy to do, I think it could get done in a few days once I empty my merge queue15:37
wpwrakgtkmm ... my ubuntu 16.10 now has 3.20.115:37
whitequarkmhmm, that *is* quite recent15:37
whitequarkI am certain 17.04 will include 3.22+ though15:38
Action: whitequark grumbles15:38
whitequarkgtk includes glarea for quite a while but gtkmm only exposes it since 3.18 and the function to request a GL ES context since 3.2215:38
whitequarkwe use GL ES in SolveSpace exclusively because that's the least painful cross-platform solution15:39
whitequarkthe only sane way to get GL >1 to reliably work on Windows is to pipe it through ANGLE, which emulates GL ES 215:39
whitequarkon Linux and macOS that involves asking for either a GL ES context or a GL core 4.0+ context due to a sequence of idiotic decisions by khronos15:40
wpwrakmeh. just defenestrate :)15:40
whitequarkdespite the fact that we only actually use functions from the common subset of gl *2* and gl es *2*15:40
whitequarkmost users of solvespace are on windows.15:40
whitequarkif I had to leave one platform it would be windows.15:40
Action: whitequark shrugs15:42
whitequarkit's not particularly bad?15:42
whitequarkactually the most frustrating platform to support was GTK without any doubt15:43
wpwrakheh :)15:43
whitequarkanyway, now that the new rendering pipeline is in, you'll find that solvespace handles millions of triangles without much trouble15:45
whitequarkand lots of entities too15:45
wpwrakah, what would be nice is if the text window could be launched from a separate process. that way, one could just have it on another screen, without having to worry about how windowing system and window manager manage things. (e.g., my multihead is :0, :0.1, not one large "merged" screen)15:45
whitequarkthat is really not going to happen15:45
wpwraki will find that, once ubuntu has caught up with your build requirements ;-)15:45
wpwraktoo tight integration needed ?15:46
whitequarkdealing with multiprocessing on multiple platforms is nasty.15:46
whitequarkand I would also like to have e.g. android and webgl ports, eventually15:46
wpwrakhmm, getting tricky :)15:46
whitequarkbut I think this is an XY problem.15:47
whitequarkwhy not ask for proper multi-monitor support?15:47
whitequarkthat's implemented on Windows.15:47
wpwrakright now, i send the text window to another virtual screen. so i can flip back and forth relatively quickly. but it would be nicer if i could have have both visible at the same time.15:47
whitequarkI take it your issue is that the window position is not restored correctly?15:47
wpwrakyes, if you can do that, why not15:47
whitequarkor something else?15:47
wpwraknot sure if it's not harder in the end15:47
whitequarkoh, wait, I think I realize now15:48
whitequarkyou don't use xrandr/xinerama?15:48
wpwraki just have 1920x1080 screens. so already the real estate is kinda tight.15:48
wpwraki just use separate screens. without things (except for the window manager itself) moving between them.15:49
whitequarkyou have to use different DISPLAY variables, right?15:49
wpwrakthat prevents all sort of things from misbehaving. but the downside is that i can't just drag a window to another screen.15:49
whitequarkwell, in my opinion that kind of setup is horrifying15:50
whitequarkbut let me see if something can be done about it.15:50
wpwrakworks pretty well for most things :)15:50
whitequarkas far as I know X11 is the only relatively common platform to use this15:51
whitequark... and in general I make no effort to accomodate the specialness of X1115:51
wpwrake.g., i can have my usual 4x3 array of virtual screens on each physical screen, and select them independently. also, if an application wants to go full-screen, it will never go full-all-screens15:51
whitequarkthat seems like purely a window manager issue15:52
whitequarkwpwrak: anyway, i will accept a patch that implements this functionality15:53
whitequarkI think you'll need to use https://developer.gnome.org/gtk3/stable/GtkWindow.html#gtk-window-set-screen and...15:53
wpwrakthis one looks interesting: https://github.com/solvespace/solvespace/issues/8515:53
wpwrakthere is no comparable "list of items" anywhere now, right ?15:53
whitequarkhttps://developer.gnome.org/gdk3/stable/GdkDisplay.html#gdk-display-open with your "DISPLAY2" env variable and...15:53
whitequarkthen https://developer.gnome.org/gdk3/stable/GdkDisplay.html#gdk-display-get-screen15:53
whitequarkI have no idea whether this will work and I won't have a setup where I can verify that it works even any time soon, I don't think15:54
whitequarksince in my laptop the nvidia card isn't connected to any actual outputs15:54
whitequarkwpwrak: indeed15:55
whitequarkthat *also* has to wait until the new file format :)15:55
whitequarkthe existing file format doesn't really have any hierarchy in the assembly tree15:55
whitequarkwpwrak: overall, do you feel solvespace is saving your time? or is it not there yet?15:56
wpwrakis there any non-hierarchical list of items ?15:56
whitequarkwell, there's the list of imported groups15:56
wpwrakthis "hook" was the first design where i thought my very basic understanding of solvespace would be sufficient to get the thing done, and i wasn't disappointed.15:57
wpwrakand i especially liked how easy it was to add those pesky fillets. with my usual workflow (python-script freecad) that sort of thing is a nightmare15:58
wpwrakmy biggest problem are the chirality surprises (and perhaps some other effects of under-defined sketches). especially when you don't have a clear idea from the beginning, it can get pretty messy to do a partial cleanup and try something else.16:00
wpwrakfor the ui, perhaps the best would be a unified window as suggested in https://github.com/solvespace/solvespace/issues/3916:02
wpwrakbut with the possibility of having multiple viewports (in separate windows)16:02
wpwrakkinda pitaish to implement, i'd guess, though16:03
wpwrakoh, and it the dialog that tells me that deleting this will also delete a bunch of other things (usually constraints) meant to be anything more than to instill a vague feeling of fear and uncertainty ? :) i.e., at that point, some sort of way to explore what exactly if being deleted may be useful. that it, unless one is expected to accept whatever the outcome on good faith16:05
wpwrak(imported groups) yeah, i still have to wrap my head around these. once i leave the 2D plane, my understanding of solvespace gets increasingly cargo-cultish :)16:07
wpwrakmy hope is that some day i'll be able to do things like the anelok case with solvespace. with freecad, i manage, but every little quirk and wrinkle i add makes the design more obscure. i.e., that scripted design process doesn't scale nicely.16:19
whitequarkwpwrak: the unified window is in my queue, in fact there is a partial implementation16:24
whitequarkthe good news is the gtk3 migration made that much easier in some ways16:24
whitequarkbut I'll have to rework quite a bit of the platform code to make that elegant16:25
whitequarkwpwrak: (dialog) well uh... you could say "no" :)16:26
whitequarkthere isn't really anything better that can be done at that point because leaving the entities in the sketch would cause a crash16:26
whitequarkit could give you the names of the entities that are removed but those aren't super informative16:26
whitequarkin general its purpose is to tell you that there were 'some' dependent entities or constraints16:27
whitequark(imported groups) those are conceptually very simple. when you import a group you get a 'snapshot' of the geometry in that file, as a single 'thing'16:27
wpwraka list of them, with the option to highlighting them would be neat16:27
wpwrakof course, wildly incompatible with a modal dialog ;-)16:27
whitequarknothing in that snapshot can be modified anymore. the mesh won't get regenerated, the entities won't budge16:28
whitequarkyou can rotate it though16:28
whitequarkalso, when you update the file you've imported and reload, the imported geometry automatically updates.16:28
whitequark(highlighting) how? they're dead.16:28
wpwraki mean before deletion, while you're still trying to make up you mind about whether to say yes or no16:29
whitequarkthat's not really how the UI is structured, solvespace never asks you if you really want to do something16:29
whitequarkinstead it implements reliable undo16:29
whitequarkI have an idea16:30
wpwrakyes, reliable undo is very good to have16:30
whitequarkok, so the idea16:37
whitequarkthe 1st time you delete something you get a screen in a text window showing dependents16:37
whitequarkthat will highlight them as usual16:37
whitequarkthe 2nd time you hit delete after that does the deletion16:37
whitequarkcan you file a bug requesting for this improvement?16:38
whitequarkit will likely dpeend on https://github.com/solvespace/solvespace/issues/9016:38
wpwraksuggested a non-modal way to do this: https://github.com/solvespace/solvespace/issues/15016:48
--- Mon Jan 9 201700:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!