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
<InPhase> joseph_: Ok. :)
<InPhase> peeps[zen]: https://bpa.st/GY2Q
<InPhase> peeps[zen]: To be used with View, Animate.
<InPhase> peeps[zen]: Essentially, rather than do the hard math, just let the language do the work.
<peeps[zen]> nice, very concise. but its only for robot arm style or "chain-like" linkages, where one end is fixed. the challenge would be something that understands arbitrary links between movable parts
<InPhase> It follows the same recursive principle of course, just with some other cases to support.
<peeps[zen]> how do you recurse through a linkage with potential loops?
<InPhase> Including axial rotational joints (wrists), that's just one more case. The logic works from the outside in.
<InPhase> Well this is not for loops.
<peeps[zen]> right, its for chains only
<peeps[zen]> or directed graph more technically?
<peeps[zen]> directed acyclic graph
<InPhase> The problem with loops is that to do it, you need to define what's a driver angle and what the free-floating angles are.
<InPhase> And if you do too many free-floating angles, it's not single-valued.
<InPhase> For some of those the value is only defined as a function of the history.
<InPhase> Sometimes you need inertia tracking, for example, to get the valid value.
<peeps[zen]> er, i guess not DAGs but only trees, if making analogies to graph theory
<InPhase> So it becomes viable when you lock down the constraints a little better. :)
<peeps[zen]> as a first step, i was trying to think if i could calculate the degrees of freedom which some arbitrary planar linkage system would have
<peeps[zen]> InPhase: inertia tracking sounds like something that would be necessary only if the system exhibited some singularity
<ali1234> if you have linkages between multiple objects and nothing is fixed, that's rigid body dynamics
<ali1234> aka "game engine physics"
<peeps[zen]> i think i would require at least one fixed point for a connected system
<ali1234> and we know how notorious those are for exploding and just generally acting weird
<ali1234> having a fixed point makes it much simpler
<ali1234> then it is just IK
<peeps[zen]> is it inverse though?
<ali1234> well, it's like scope said
<ali1234> it's inverse if you know where you want the not-fixed end to be, and you want to calculate all the rotations required to get there
<peeps[zen]> right, i want to be able to input an angle to some linkage as a function of $t and just draw where the effector goes.
<ali1234> well that's just a matter of nesting the transformations, which is easy in openscad
<ali1234> or any 3d tool really
<peeps[zen]> no i need to solve if the motion is constrained by some of the linkages though
<ali1234> constrained by the environment, or by the range of motion?
<peeps[zen]> and some systems may be more than a single input angle
<peeps[zen]> range of motion
<ali1234> so you just clamp the input to the range
<ali1234> or raise/return an error if it is out of range
<ali1234> hmm okay this is a bit more complicated because it isn't a tree :)
<peeps[zen]> that's what I've been saying!
<ali1234> for this you do need a solver similar to what IK does
<ali1234> an important point about that example is that it has multiple results depending on the starting configuration
<ali1234> for example the rotation around A can be anything as shown in the image
<ali1234> but the rotation shown at B isn't the full story, C could go down, which would make another, disconnected pink blob
<ali1234> there is no way to move between those configurations. and they can even overlap
ur5us has quit [Ping timeout: 250 seconds]
LordOfBikes has quit [Ping timeout: 250 seconds]
walterwhip has joined #openscad
LordOfBikes has joined #openscad
ur5us has joined #openscad
<InPhase> peeps[zen]: For the example in your last link, that's fairly well constrained because position D is direct from the rotation, but in fact, point C is double-valued. You have to additionally constrain it to only be above AB. If it starts above AB, it can never move below, but if it starts below, it can never move above (i.e., history matters).
<InPhase> peeps[zen]: Hopefully that illustrates what I was trying to say above about needing a way to specify additional constraints. This will impede the desire to make a fully generalized solution in a history-free language.
<InPhase> You can still do it, but you need some probably sloppy way to write it out, or your generalization will involve something like function literals so you can process those sorts of constraints.
lf94 has left #openscad [WeeChat 3.5]
lf94 has joined #openscad
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
walterwhip has joined #openscad
<peeps[zen]> InPhase: i was reading this page https://www.diywalkers.com/linkage-simulation.html they solve the multiple position issue with a dead simple choice of Low/High Y, or Left/Rightmost X
ccox has quit [Ping timeout: 260 seconds]
<peeps[zen]> there's also a link to some python code which I haven't tried yet
<InPhase> That will do it for some arrangements.
<InPhase> It will fail you for complicated assemblies where the consistent trajectory case flips between those conditions because the whole apparatus to which it must be applied is rotating around due to motion of the pieces to which it is attached.
<InPhase> But again, whenever you lock down the problem space, it gets easier to specify.
<InPhase> Also, that's a very nice looking walker. :)
J1A8450 has joined #openscad
J1A84 has quit [Ping timeout: 252 seconds]
foul_owl has quit [Ping timeout: 240 seconds]
foul_owl has joined #openscad
<InPhase> peeps[zen]: Worth it. :) https://bpa.st/BIOQ
<InPhase> I really like the designs that come alive. :)
<peeps[zen]> oh, you made a wacky waving inflatable arm flailing tube man :D
<InPhase> :)
<peeps[zen]> for the reference https://www.youtube.com/watch?v=rHXvMcLrLSY
<074AAF3B8> peeps[zen] linked to YouTube video "Family Guy - Wacky Waving Inflatable Arm Flailing Tubemen" => 1 IRC mentions
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
ccox has joined #openscad
ur5us has quit [Ping timeout: 255 seconds]
ur5us has joined #openscad
ur5us has quit [Ping timeout: 255 seconds]
<J1A8450> it's planter time https://pasteboard.co/vQs2m5EAXqIy.png
teepee_ has joined #openscad
teepee has quit [Ping timeout: 240 seconds]
teepee_ is now known as teepee
<Scopeuk> J1A8450 neat
<J1A8450> Ü thx
lastrodamo has joined #openscad
Junxter has quit [Quit: Leaving]
ur5us has joined #openscad
ur5us has quit [Ping timeout: 248 seconds]
Colere has quit [Ping timeout: 260 seconds]
Colere has joined #openscad
J1A8450 has quit [Quit: Client closed]
J1A8450 has joined #openscad
snakedGT has joined #openscad
snaked has quit [Ping timeout: 244 seconds]
snakedGT has quit [Quit: Leaving]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 240 seconds]
teepee_ is now known as teepee
KimK has quit [Ping timeout: 260 seconds]
KimK has joined #openscad
qeed_ has quit [Quit: qeed_]
qeed has joined #openscad
noonien has quit [Quit: The Lounge - https://thelounge.chat]
noonien has joined #openscad
noonien has quit [Quit: The Lounge - https://thelounge.chat]
noonien has joined #openscad
noonien has quit [Client Quit]
noonien has joined #openscad
snaked has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 240 seconds]
teepee_ is now known as teepee
peeps[zen] has quit [Ping timeout: 276 seconds]
<teepee> joseph_: how's the dev env working? do you think it makes sense to integrate this into the main docker repo, or maybe have a separate pointer to this setup?
juri_ has quit [Ping timeout: 250 seconds]
<joseph_> teepee: Thanks for asking. Actually I have encountered one issue so far. Upon previewing/rendering any model, I get "ERROR: boost::filesystem::create_directories: Invalid argument\nWARNING: Cannot create backup path:"
<teepee> hmm, that uses the XDG setup, maybe that's not configured
<teepee> ah, no, just using $HOME
peepsalot has joined #openscad
<joseph_> teepee: I have a partial memory that maybe I dealt with this type of issue before in a different project. But I do not remember the solution. Perhaps it was a package to install inside the container, or a new volume that needs to be created. The error does not prevent rendering, but we would want to fix it before making my configuration official
<Scopeuk> worth checking the enviroment has set up a home enviromental variable?
<peepsalot> joseph_: backups go into the path ~/.local/share/OpenSCAD/backups
<peepsalot> i would guess there's some permissions issue involved. eg you ran it as root once, then not as root
<teepee> right, it could be either missing $HOME or permissing problem
<peepsalot> 1. see if that path exists, 2. see who owns it and what the permissions are
<teepee> if the env variable is not set, it might try to use /.local/... which would be a problem
<peepsalot> or maybe [working directory]/.local ? just a wild guess
juri_ has joined #openscad
ali1234 has quit [Remote host closed the connection]
ali1234 has joined #openscad
snakedGT has joined #openscad
snaked has quit [Read error: Connection reset by peer]
ur5us has joined #openscad
lastrodamo has quit [Quit: Leaving]
ecraven- has joined #openscad
Ultrasauce has joined #openscad
ali1234 has quit [Ping timeout: 250 seconds]
ecraven has quit [Ping timeout: 250 seconds]
wed has quit [Ping timeout: 250 seconds]
sauce has quit [Ping timeout: 250 seconds]
ali1234 has joined #openscad
wed has joined #openscad
juri_ has quit [Ping timeout: 256 seconds]
Colere has quit [Ping timeout: 246 seconds]
juri_ has joined #openscad
Colere has joined #openscad