{"id":13578667,"url":"https://github.com/openscad/MCAD","last_synced_at":"2025-04-05T19:33:27.092Z","repository":{"id":1476134,"uuid":"1718910","full_name":"openscad/MCAD","owner":"openscad","description":"OpenSCAD Parametric CAD Library (LGPL 2.1)","archived":false,"fork":true,"pushed_at":"2024-02-03T16:10:11.000Z","size":558,"stargazers_count":583,"open_issues_count":33,"forks_count":193,"subscribers_count":49,"default_branch":"master","last_synced_at":"2024-11-05T16:47:37.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://reprap.org/wiki/MCAD","language":"OpenSCAD","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"SolidCode/MCAD","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openscad.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-05-08T15:13:53.000Z","updated_at":"2024-11-02T18:05:35.000Z","dependencies_parsed_at":"2023-02-10T23:15:30.641Z","dependency_job_id":null,"html_url":"https://github.com/openscad/MCAD","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openscad%2FMCAD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openscad%2FMCAD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openscad%2FMCAD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openscad%2FMCAD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openscad","download_url":"https://codeload.github.com/openscad/MCAD/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393095,"owners_count":20931804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:01:32.707Z","updated_at":"2025-04-05T19:33:26.105Z","avatar_url":"https://github.com/openscad.png","language":"OpenSCAD","funding_links":[],"categories":["OpenSCAD","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"OpenSCAD MCAD Library\n=====================\n\nThis library contains components commonly used in designing and mocking up\nmechanical designs. It is currently unfinished and you can expect some API\nchanges, however many things are already working.\n\nThis library was created by various authors as named in the individual\nfiles' comments. All the files are licensed under the LGPL 2.1 (see\nhttp://creativecommons.org/licenses/LGPL/2.1/ or the included file\nlgpl-2.1.txt), some of them allow distribution under more permissive\nterms (as described in the files' comments).\n\n## Usage ##\n\nYou can import these files in your scripts with `use \u003cMCAD/filename.scad\u003e`, \nwhere 'filename' is one of the files listed below like 'motors' or \n'servos'. Some files include useful constants which will be available \nwith `include \u003cMCAD/filename.scad\u003e`, which should be safe to use on all \nincluded files (ie. no top level code should create geometry). (There is \na bug/feature that prevents including constants from files that \n\"include\" other files - see the openscad mailing list archives for more \ndetails. Since the maintainers aren't very responsive, may have to work \naround this somehow)\n\nIf you host your project in git, you can do `git submodule add URL PATH` in your\nrepo to import this library as a git submodule for easy usage. Then you need to do\na `git submodule update --init` after cloning. When you want to update the submodule,\ndo `cd PATH; git checkout master; git pull`. See `git help submodule` for more info.\n\nCurrently Provided Tools:\n\n* regular_shapes.scad\n    - regular polygons, ie. 2D\n    - regular polyhedrons, ie. 3D\n\n* involute_gears.scad (http://www.thingiverse.com/thing:3575):\n    - gear()\n    - bevel_gear()\n    - bevel_gear_pair()\n\n* gears.scad (Old version):\n    - gear(number_of_teeth, circular_pitch OR diametrial_pitch, pressure_angle OPTIONAL, clearance OPTIONAL)\n\n* motors.scad:\n    - stepper_motor_mount(nema_standard, slide_distance OPTIONAL, mochup OPTIONAL)\n\nTools (alpha and beta quality):\n\n* nuts_and_bolts.scad: for creating metric and imperial bolt/nut holes\n* bearing.scad: standard/custom bearings\n* screw.scad: screws and augers\n* materials.scad: color definitions for different materials\n* stepper.scad: NEMA standard stepper outlines\n* servos.scad: servo outlines\n* boxes.scad: box with rounded corners\n* triangles.scad: simple triangles\n* 3d_triangle.scad: more advanced triangles\n\nVery generally useful functions and constants:\n\n* math.scad: general math functions\n* constants.scad: mathematical constants\n* curves.scad: mathematical functions defining curves\n* units.scad: easy metric units\n* utilities.scad: geometric funtions and misc. useful stuff\n* teardrop.scad (http://www.thingiverse.com/thing:3457): parametric teardrop module\n* shapes.scad: DEPRECATED simple shapes by Catarina Mota\n* polyholes.scad: holes that should come out well when printed\n\nOther:\n\n* alphabet_block.scad\n* bitmap.scad\n* letter_necklace.scad\n* name_tag.scad\n* height_map.scad\n* trochoids.scad\n* libtriangles.scad\n* layouts.scad\n* transformations.scad\n* 2Dshapes.scad\n* gridbeam.scad\n* fonts.scad\n* unregular_shapes.scad\n* metric_fastners.scad\n* lego_compatibility.scad\n* multiply.scad\n* hardware.scad\n\nExternal utils that generate and process openscad code:\n\n* openscad_testing.py: testing code, see below\n* openscad_utils.py: code for scraping function names etc.\n\n## Development ##\n\nYou are welcome to fork this project in github and request pulls. I will try to\naccomodate the community as much as possible in this. If for some reason you\nwant collaborator access, just ask.\n\nGithub is fun (and easy), but I can include code submissions and other\nimprovements directly, and have already included code from various sources\n(thingiverse is great :)\n\n### Code style ###\nI'd prefer to have all included code nicely indented, at least at the block\nlevel, and no extraneous whitespace. I'm used to indent with four spaces as\nopposed to tabs or other mixes of whitespace, but at least try to choose a style\nand stick to it.\n\n### Testing ###\nI've started a minimal testing infrastucture for OpenSCAD code. It's written in\npython and uses py.test (might be compatible with Nose also). Just type `py.test`\ninside the lib dir in a terminal and you should see a part of the tests passing\nand tracebacks for failing tests. It's very simplistic still, but it should test\nthat no syntax errors occur at least.\n\nThe code is included in openscad_testing.py, and can be imported to be\nused in other codebases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenscad%2FMCAD","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenscad%2FMCAD","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenscad%2FMCAD/lists"}