<teepee>
you could try with the export LIBGL_ALWAYS_SOFTWARE=1
<teepee>
why is there a sudo?
<teepee>
that probably drops the display variable
<teepee>
it should work fine without
<teepee>
you may need to check if it created some files that are owned by root now and delete those
<sublim8>
yup, will do
<teepee>
you should be able to run both application and test suite just from the build/test folder
<teepee>
no need to install or anything after building
<teepee>
I need to drop off, get some sleep. early review meeting tomorrow morning
<sublim8>
I'll figure it out. It might be the sudo thing.
<teepee>
(with tomorrow already in progress :)
<sublim8>
ok c ya, goodnight.
<peepsalot>
sublim8, can you run glxgears?
<sublim8>
yeap, my system has no issues. GPU working fine. All 3d programs work fine.
<sublim8>
Fine, meaning hardware accelerated and fast.
<peepsalot>
does openscad that you built run in gui?
<sublim8>
It must be the permissions thing teepee mentioned.
<sublim8>
yes it runs great
<peepsalot>
yeah sudo could have caused any number of weird issues
<sublim8>
I know, It's just that the first time I was trying to built it something wouldn't work right and I tried to sudo and it worked. After that it wouldn't build if I didn't sudo and I was too lazy to fix the permissions. Everything seemed to work so I went with it.
<peepsalot>
did you create a subdirectory to build in? like openscad/build (ie you didn't build directly from the project root dir?)
<sublim8>
But it might just be what the issue here. So, I'll fix that and see.
<sublim8>
I cloned the repo
<sublim8>
entered openscad, created build, run cmake, run make
<InPhase>
sublim8: I build with that so I don't make mistakes as I repeatedly check out different versions.
<sublim8>
thx
<InPhase>
sublim8: Just go into the top level of a fresh clone, and run that. Note that if you have fewer than 8 cores, maybe drop -j8 to -j4 or whatever you have.
<sublim8>
yup
<InPhase>
I have a partnered incremental rebuild script, although I most often do the clean build. The rebuild is only if I'm actively editing code myself. https://bpa.st/F2KQ
<InPhase>
The cp at the end is so you can run out of the repository without and install step. Dropping it there lets it pick up the libraries directory and other files straight from the repository.
<InPhase>
s/and install/an install/
<sublim8>
I'm at about 80%. Btw I made the changes to swizzle.
<sublim8>
That's weird. It failed at Compiling language files.
<Alicia>
that would explain why it works with sudo
<InPhase>
sublim8: Can you run this? which sh; which bash; echo $SHELL
<InPhase>
And: lsb_release -d
<InPhase>
(The clean build worked fine for me.)
<InPhase>
In translate-update.sh there is a then which is hovering at the end of an if instead of on a subsequent line. Off the top of my head I don't know if there is a shell variant that will choke on that.
<InPhase>
sublim8: Although hold-up a second... Your error is on line 19 of an 18 line file.
<InPhase>
Ah, end of file, right.
<sublim8>
$SHELL is /bin/bash
<sublim8>
release is Linux Mint 20.1
<InPhase>
sublim8: So your error message kicked out "not found" on all the blank lines of that file.
<InPhase>
From the base directory of the repository, try manually running: scripts/translation-make.sh
<InPhase>
That should execute it in /bin/sh
<InPhase>
If this fails either your /bin/sh is pointing at something whacky or the translation-make.sh got corrupted somehow.
<InPhase>
Figured it out. :)
<sublim8>
Hehe, will do. Thanks.
<InPhase>
I reproduced your error by running unix2dos on transcript-make.sh and then manually running it as /bin/sh scripts/translation-make.sh
<InPhase>
Somehow you corrupted this file into having Windows line-endings on a Linux system.
<sublim8>
but I just cloned the repo
<InPhase>
Plus one point for a good hunch.
<sublim8>
I was having some issues with CRLFs...
<sublim8>
I'll try creating a fresh VM just for building.
<InPhase>
Either set it to false or delete the line and the default of false should take over.
<InPhase>
You can verify correct operation with: hexdump -Cv translation-make.sh
<InPhase>
The first line should read: 23 21 2f 62 69 6e 2f 73 68 0a 0a 23 20 53 63 72 |#!/bin/sh..# Scr|
<sublim8>
Thanks
<InPhase>
The 0a 0a is \n\n
<sublim8>
yeap i know
<InPhase>
Ok.
<sublim8>
thanks
Jack21 has quit [Quit: Client closed]
Jack21 has joined #openscad
<InPhase>
First time I saw that lead to a build error.
<sublim8>
It's not the first time atom has betrayed me this way.
<peepsalot>
oh, i tried to like atom for a long time, but eventually switched over to vscode
<InPhase>
atom meddles with the git settings?
<sublim8>
no,
<sublim8>
But somehow it has decided that it should default on CRLF in linux.
LordOfBikes has joined #openscad
<InPhase>
I have vim set to silently open CRLF files and look normal, so I wouldn't have noticed it on my system from the editor either. But I have the habit of hex-dumping files that give me confusing behavior. I actually hex-dumped my copy of that right away after seeing your error, but it took my brain longer to get around to your copy being different in this manner.
<sublim8>
I stopped using microsoft products after discovering that when developing with their products the compiler would output executables that send telemetry to microsoft.
<sublim8>
That was many years ago. I don't know it still is being done.
<sublim8>
I know, I' do hex dumps too sometimes in similar cases :) , I just hadn't gotten to it yet.
<InPhase>
If the random articles I found are to believed, it sounds like these are hooks to enable adding telemetry routines to your own code. But Visual Code definitely sends telemetry data by default.
<sublim8>
Yes that's what I remember reading.
<sublim8>
But it looks bad.
snaked has joined #openscad
<sublim8>
Not that microsoft needs to put anything in executables to gain access to windows machines.
<sublim8>
heh
<InPhase>
Many of the files I end up editing are confidential. No editor I use can be allowed to send crash reports back with data I haven't completely inspected in a readable form.
<sublim8>
right!
<sublim8>
:p
default_ has joined #openscad
sublim8 has quit [Killed (NickServ (GHOST command used by default_))]
<ccox_>
Profiling snowballs is a bit different: lots of time in std::hash_const_terator, some time in allocations - mostly due to ContextFrame, ContextHandle, and Context.
<ccox_>
ValueMap, boost::variant, and murmur2_or_cityhash also make a strong showing (over 1 sec each of total time)
<ccox_>
hmm, FunctionCall::evaluate shows up mostly due to cache misses
<ccox_>
Looks like a suballocator could cut 15 to 20% of the time.
<ccox_>
But the biggest time sink is all the hash map usage.
Jack21100 has joined #openscad
Jack21 has quit [Ping timeout: 256 seconds]
<ccox_>
Next big question is why is the std::unordered_map spending any time at all hashing a std::string (strings are unique, it's supposed to just hash the pointer - but that isn't what it's doing)
<ccox_>
ah, the hash doesn't make much time, but cache misses and construction of the const_iterator take time
<knielsen>
cbmuser: We can see that a number of applications are in the "approved" state since a couple weeks, I was told that at some point the keyring team will update the keyring causing them all to complete
<cbmuser>
OK
<cbmuser>
Debian admin stuff can be slow sometimes
GNUmoon has quit [Ping timeout: 276 seconds]
arebil has joined #openscad
GNUmoon has joined #openscad
mhroncok has joined #openscad
<Scopeuk>
isn't that the debian motto, we'll get there eventually?
arebil has quit [Quit: Bye]
arebil has joined #openscad
PovilasCNC_ has quit [Read error: Connection reset by peer]
<InPhase>
Scopeuk: Perhaps if they just consider the maintainers unstable for a few years they could eventually mark them as stable individuals.
<Scopeuk>
only via a stint as tested
<InPhase>
I used to deal with Debian's timeline by running testing all the time, during which I learned a lot about Linux. But I fell into a point in my life where I needed a different balance of current and reliability, hence now being a xubuntu user. But philosophically speaking, I'm still a Debian person at heart.
mhroncok has quit [Quit: Leaving.]
<Scopeuk>
yeh I started with debian
<Scopeuk>
and ended up on unstable because I wanted to be running a 64 bit os on my new 64 bit cpu
<Scopeuk>
but domestic machines end up on ubuntu or derivatives usually
<InPhase>
Jack21100: Saw your email btw. Interesting content it appears, but that looks like a weekend project for me to evaluate. :)
<InPhase>
I marked it with a flag.
<Jack21100>
Ü
<teepee>
not naming the flag seems suspicious ;-)
<Jack21100>
"spam"
kyki has joined #openscad
peeps[win] has quit [Read error: Connection reset by peer]
Administrator_ has joined #openscad
Administrator_ has quit [Quit: Leaving]
kyki has quit [Read error: Connection reset by peer]
<InPhase>
Speaks suspiciously to the UI design. I pushed the unnamed thingy that makes it red, which probably has another name somewhere. :)
Alicia has joined #openscad
willmore has joined #openscad
Alicia has quit [Ping timeout: 250 seconds]
<willmore>
Hello, everyone! I'm trying to design a cam for a toy my son is making. I have an arbitrary pathway I want the cam follower to effect. Is there a normal way to go about making a cam out of that? Sadly, googling for 'cam' in relation to openscad is heavily poisoned by Computer Aided Manufacturing links. :(
<willmore>
I can express the desired movement of the follower with a simple equation, so I was wondering if I can make a volume of revolution with the follower shape--offsetting it by the desired amount at the desired angle and then subtract that from a disc.
<willmore>
Does that sound like a good path to go down? I fear I'll end up using minkowski(). :)
<teepee>
cam as in a disc with changing diameter?
<Jack21100>
willmore hi, you can either 6dof the object or the view
ur5us has joined #openscad
<willmore>
teepee, yes.
<willmore>
Jack21100, I'm sorry, I don't understand what you're saying.
<Jack21100>
so create a polygon with that equation and extrude it
<Jack21100>
.. yeah sorry was thinking of an animation with a camera following a path
<willmore>
The device my son made is a box with a shaft through the middle. There's a crank on one side. Along the shafe are cams. Above the cams are a set of 'followers' which have a head that rides on the cam. The followers are constrained to only move up and down. They have a little indicator on the top of them. The idea is to get the indicator to move in a desired path as the handle is rotated.
<Jack21100>
is your equation describing polar coordinates or linear .. the later need to be converted to form a circular polygon
<willmore>
He's calling it a 'wave machine' and there is a row of followers all on cams of the same profile--but rotated relative to each other. The desired outcome is to have the indicators move up and down in a sine wave pattern that moves from side to side as the handle is cranked.
<willmore>
It's just a sine wave in radial coordinates, Jack21100.
<teepee>
function r(a) = 20 + sin(8 * a);
<teepee>
linear_extrude(2) polygon([for (a = [0:1:359]) r(a) * [sin(a), cos(a)]]);
<Jack21100>
are you just using excentric circles?
<teepee>
would that work?
<teepee>
giving radius by angle?
<willmore>
teepee, that gives the position of the *follower*, but the head of the follower rides on the cam and that offsets that. The head shape--I have to check--may not be all that uniform.
<willmore>
Jack21100, except for the need to compensate for the follower's head shape, yes, I think.
<teepee>
well, that sin() would be just the example
<teepee>
if your formula can give radius based on the angle you can just replace that
<teepee>
function r(a) = 30 + 4 * sin(10 * a) + 7 * cos(5 * a);
<willmore>
teepee, I understand that. The problem is that the follower will not always touch the cam on a line between the cam center and the follower head center.
<teepee>
I'm not sure I will understand that without a picture ;-)
ur5us has quit [Remote host closed the connection]
<willmore>
Depending on the slope of the cam at any point, the follower head will touch the cam at an angle away from the centerline.
ur5us has joined #openscad
<willmore>
teepee, understood, it's not intuitive and I had to think about it a bit to grasp it. I'll see if I can find an animation.
<othx>
willmore linked to YouTube video "Cam-Follower Animation" => 1 IRC mentions
<willmore>
Watch how the point of contact between the head of the follower and the cam moves around.
<willmore>
It's not always in a line between the axis of movement of the follower and the center of the cam.
<willmore>
axis of revolution of the cam...
<willmore>
So, the cam shape has to be altered to compensate for the follower's head shape.
<willmore>
An idea follower would have a point shape that always touched the cam in a direct line between the axis of rotation of the cam and the followers centerline.
<teepee>
right, no idea how that works, but there's probably some formula someone made already :)
<willmore>
But, reality doesn't like points. :)
<teepee>
true, but if you make it big enough, it would not matter :P
<teepee>
that creates other problems though
<willmore>
That's what I figured, teepee, I just wan't aware of it and though I'd ask before I tried to come up with my own stupid idea. :)
<willmore>
teepee, yes. :(
<Jack21100>
what kind of motion you want? a wave is a sinus motion so you just take an circle off center .. how many waves per rotation?
<othx>
Jack21100 linked to YouTube video "Caterpillar Automata" => 1 IRC mentions
<willmore>
Jack21100, yep, that's it. I dont think that used followers.
<willmore>
Jack21100, that used the waves as the followers meaning they had a little (predicatble) sin error.
<Jack21100>
the follower is a circle .. if the other shape is also a circle the position doesn't matter
<willmore>
Sorry for being slow to respond, my song just got home and he's asking questions.
<willmore>
teepee, it's a bit painful to do mathematically, that's why I was hoping to do it with physical modeling in OpenSCAD. :)
<Jack21100>
physical models are math
<willmore>
Jack21100, some of us think better with physical models than mathamatical ones.
<willmore>
Jack21100, that caterpiller is just like what we're looking for. Note how tiny his followers so the error is tiny. But the friction is really high.
<willmore>
There's a tradeoff between follower head size, tangent error, and friction.
<willmore>
You can make the follower head really small and get lower tangent error, but friction goes way up.
<willmore>
We're using a larger head to get lower friction, but that means more tangent error. You can remove tangent error for some cam profiles by altering the cam shape to compensate. Obviously not for all cam profiles, but we're just looking for a sin() shaped cam with one cycle/revolution.
<Jack21100>
if it is lined up with the axis there is no error - you can make the follower twice the size of the cam circle
<willmore>
Our cam function is just r(theta)=sin(theta)
<willmore>
Jack21100, yes, you can do like that wave machine did and make the follower infinitely large.
<willmore>
That may work with out cam profile come to think of it.
<Jack21100>
if you need a precise motion you may worry about this .. but not for a toy
<willmore>
I'll have to think on it.
ur5us has quit [Ping timeout: 265 seconds]
<willmore>
Sure, but part of the point of this is to teach him to think about how things are non-ideal and how to compensate for them. It started as a project for his engineering class. And engineering is all about "when errors go to zero, but don't quite make it and how that makes things hard(tm)"
<willmore>
Not all cows are spherical and homogeneous.
<Jack21100>
well that is why i linked to algodoo it is a physics simulator where you can test all ideas and see how they work out
<willmore>
Once we find a cam shape, that's probably a good way to test it. Thank you.
ur5us has joined #openscad
<willmore>
Hmm, the more I think of it, an infinite sized follower maximizes the tangent error. But might be easiest to compensate for....
<Jack21100>
in scad you can do the other way .. you model your linear motion and rotate a cylinder and creating the cam shape by that motion
<willmore>
That's what I was looking to do in the first place.
<Jack21100>
just make a difference with rotating the circle with the linear motion of another circle
<willmore>
I proposed making a volume of revolution by revolving the shape of the follower along the linear motion path and then difference() to cut that off of a disc.
<willmore>
I can replace circle(2) with my constructor for the follower shape.
<Jack21100>
yes
<Jack21100>
you may need to add a rotation though
<willmore>
Thank you. I'll convert the follower to openscad and give it a shot. Yes, I'll need to do that. Otherwise it's going to look really wierd. :)
<willmore>
I was thinking I should use rotate_extrude() to make the shape.
<willmore>
But for() works, too.
<willmore>
For reasonably smooth and continuous shapres.
<willmore>
shapes..
<Jack21100>
keep in mind that in reality a follower will slip on the surface so you should only use circular follower
<willmore>
That's roughly what he designed. We need to redesign the follower as well, so making an openscad model of it is a necessary step anyway.
<willmore>
He's been using Fusion360 for class as that's what the teacher wants. But this is his project, now, so that's not a requirement.
<Jack21100>
good luck and have fun with playing around
<willmore>
Thanks for your help! You, too, teepee! :)
default__ has joined #openscad
default_ has quit [Ping timeout: 268 seconds]
tcurdt has joined #openscad
default__ is now known as sublim8
GNUmoon has joined #openscad
lastrodamo has quit [Quit: Leaving]
ur5us has quit [Ping timeout: 250 seconds]
<LeviHarris-Brown>
Does anyone have any recommendations on libraries for threads? Or libraries in general
TheAssassin has quit [Remote host closed the connection]
<LeviHarris-Brown>
teepee: thanks, I had tried the git one, but it always seems to crash OpenSCAD? I also found this one, but even with one thread made in a cube it drops to like 5fps when previewing it? https://dkprojects.net/openscad-threads/
TheAssassin has joined #openscad
<teepee>
I've never used that one. my current project uses the OpenSCAD threads.scad Module
<teepee>
which at least on the dev snapshot version with the display improvements works quite well
<teepee>
I'm only using printable non-standard threads
Jack21100 has quit [Quit: Client closed]
Jack2110034 has joined #openscad
<Jack2110034>
LeviHarris-Brown what kind do you need
<LeviHarris-Brown>
Jack2110034: I want to print a bunch of metric threads in a cube, so I can test my 3d printer, see what threads I can get away with and what I can't. I only have a resin printer
<teepee>
those results would be interesting to hear, I've never used a resin printer myself so far
<othx>
Jack2110034 linked to "Screw Threads, Holes, Bolts, Nuts, and Rods Library by rcolyer" on thingiverse => 38 IRC mentions
<Jack2110034>
however i preferer my library which makes more detailed threads
<teepee>
that's the same lib as I mentioned :)
<teepee>
but yes, you can have a look at the UB.scad library too, it has threads aswell
ferdna has joined #openscad
<Jack2110034>
i have presets for M1 M1.2 M1.6 M2 M2.5 M3 .. but you can also make more or less every thread you need
<teepee>
Jack2110034: oh, I used the WStar() suggestion for M2 self cutting screws and that worked nicely
<Jack2110034>
glad to hear
<InPhase>
willmore: For this project you want to use linear_extrude on a polygon with list comprehension generated points. It will be super easy that way.
<LeviHarris-Brown>
Jack2110034: Which one is yours?
<LeviHarris-Brown>
<teepee> "those results would be interesti..." <- Once I get it to print some I'll report back and give you an update. For reference I have an Anycubic Photon
<InPhase>
willmore: Inside list comprehension, you loop over angle a around a circle, you do a let(r=...your formula), and you use the circle formula [r*cos(a), r*sin(a)] for your points. As r varies, so will the points.
<InPhase>
s/Inside/Inside the/
<LeviHarris-Brown>
ahh cheers, I'll give that one a go
<Jack2110034>
usage would be Gewinde(preset="M3",h=10,help=0); (help =true for more info in "console" window)
<Jack2110034>
but you only get a thread .. not a complete screw
<teepee>
as we talked about using the LED ring, this is how it looks driven by WLED from an ESP32 - https://imgur.com/a/swHqHT8
<Jack2110034>
teepee very nice
<Jack2110034>
do you use any diffusor on top of the ring ?
<teepee>
yes
<Jack2110034>
looks like some cone
<InPhase>
willmore: Here's one example of a randomly interesting shape: linear_extrude(10) polygon([for (a=[0:0.1:359.999]) let(r=5*(4+cos(a+2*a))) [r*cos(a), r*sin(a)]]);
<teepee>
Jack2110034: interestingly it's not a cone diffuser, it's just that "screw" which holds it in place printed in transparent PLA too like the case
<teepee>
I've added an image to the imgur post
ur5us has joined #openscad
<Jack2110034>
unexpected so all about reflection
<teepee>
yep
<LeviHarris-Brown>
<Jack2110034> "usage would be Gewinde(preset=..." <- thank you, yours takes a very long time to compile though? And yeah sadly I don't speak German. I did just get the first library recommended working though, turns out I had a silly mistake, I was writing a positional argument in the function as an optional one and it had a slight spelling mistake, which caused the program to freeze on loading it
<LeviHarris-Brown>
and I mean preview compile, not main one