Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

missing functions #2

Closed
malv-c opened this issue Dec 16, 2019 · 10 comments
Closed

missing functions #2

malv-c opened this issue Dec 16, 2019 · 10 comments

Comments

@malv-c
Copy link

malv-c commented Dec 16, 2019

hi
PGDemo(); give :Module cache size: 2 modules
Compiling design (CSG Tree generation)...
WARNING: Ignoring unknown function 'assert'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_undef'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
WARNING: Ignoring unknown function 'is_list'.
Rendering Polygon Mesh using CGAL...
Started 4 worker threads
ERROR: Unable to convert point at index 0 to a vec3 of numbers
ERROR: Unable to convert point at index 0 to a vec3 of numbers
Geometries in cache: 103
Geometry cache size in bytes: 58680
CGAL Polyhedrons in cache: 8
CGAL cache size in bytes: 469696
Total rendering time: 0 hours, 0 minutes, 2 seconds
Top level object is a 3D object:
Simple: yes
Vertices: 34
Halfedges: 102
Edges: 51
Halffacets: 38
Facets: 19
Volumes: 2
Rendering finished.

@dpellegr
Copy link
Owner

Can you please update OpenSCAD to v2019.05?

@malv-c
Copy link
Author

malv-c commented Dec 16, 2019 via email

@malv-c
Copy link
Author

malv-c commented Dec 16, 2019 via email

@dpellegr
Copy link
Owner

I don't have easy access to older versions, but could you please try adding these three lines at the top of PolyGear.scad (before the include):

module assert(cond, msg) {if (!cond) echo(str("ASSERT FAILED: ",msg));}
function is_undef(var) = var==undef;
function is_list(var) = len(var)!=undef;

@malv-c
Copy link
Author

malv-c commented Dec 17, 2019 via email

@dpellegr
Copy link
Owner

Sorry, my bad. Just remove line 157 of PolyGear.scad (where assert is used) and add only

function is_undef(var) = var==undef;
function is_list(var) = len(var)!=undef;

at the beginning.

I gave you a module implementation of assert, which however is and is used as a function. Therefore the syntax error. Since is not that important you can just get rid of it to avoid headaches.

@malv-c
Copy link
Author

malv-c commented Dec 17, 2019 via email

@dpellegr
Copy link
Owner

Interior gears are easy: just use OpenSCAD's difference().
For spherical if you mean something like this https://www.sciencedirect.com/science/article/abs/pii/S0924013602000675 probably never, if you mean something like this https://www.shapeways.com/forum/attachments/gear-ball-jpg.558/ you just need bevel gears, you can give spherical external/internal faces by intersect()/difference() with a sphere.
Racks maybe, as soon as I need one or as I receive a good pull request!

@malv-c
Copy link
Author

malv-c commented Dec 18, 2019 via email

@dpellegr
Copy link
Owner

  1. I think so, as long as the contact radii match (by default they do since they are half of the tooth height) there should be no problem. Eventually one can also adjust addendum and dedendum. For 3D printing there is also the possibility to adjust the backlash by trial and error according to the printer settings.

  2. Yes, they are quite interesting mechanical pieces, but I feel that they are out of scope. Plenty of the code in this library would be of no use in modelling them. I would probably start from scratch. Clearly if one comes up with a good module, it's ok for me to include and shipping it with PolyGear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants