GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SolidCode/MCAD: OpenSCAD Parametric CAD Library (LGPL 2.1) Maintained fork: https://github.com/openscad/MCAD

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

189 Commits
189 Commits

Folders and files

NameName
Last commit message
Last commit date
SolidPython @ ecf1c08
SolidPython @ ecf1c08
 
 
ThingDoc @ 54c83e5
ThingDoc @ 54c83e5
 
 
bitmap
bitmap
 
 
.gitmodules
.gitmodules
 
 
2Dshapes.scad
2Dshapes.scad
 
 
3d_triangle.scad
3d_triangle.scad
 
 
README.markdown
README.markdown
 
 
TODO
TODO
 
 
__init__.py
__init__.py
 
 
bearing.scad
bearing.scad
 
 
boxes.scad
boxes.scad
 
 
constants.scad
constants.scad
 
 
curves.scad
curves.scad
 
 
fonts.scad
fonts.scad
 
 
gears.scad
gears.scad
 
 
get_submodules.py
get_submodules.py
 
 
gridbeam.scad
gridbeam.scad
 
 
hardware.scad
hardware.scad
 
 
involute_gears.scad
involute_gears.scad
 
 
layouts.scad
layouts.scad
 
 
lego_compatibility.scad
lego_compatibility.scad
 
 
lgpl-2.1.txt
lgpl-2.1.txt
 
 
libtriangles.scad
libtriangles.scad
 
 
linear_bearing.scad
linear_bearing.scad
 
 
materials.scad
materials.scad
 
 
math.scad
math.scad
 
 
metric_fastners.scad
metric_fastners.scad
 
 
motors.scad
motors.scad
 
 
multiply.scad
multiply.scad
 
 
nuts_and_bolts.scad
nuts_and_bolts.scad
 
 
openscad_testing.py
openscad_testing.py
 
 
openscad_utils.py
openscad_utils.py
 
 
polyholes.scad
polyholes.scad
 
 
regular_shapes.scad
regular_shapes.scad
 
 
screw.scad
screw.scad
 
 
servos.scad
servos.scad
 
 
shapes.scad
shapes.scad
 
 
stepper.scad
stepper.scad
 
 
teardrop.scad
teardrop.scad
 
 
test_docs.py
test_docs.py
 
 
test_mcad.py
test_mcad.py
 
 
transformations.scad
transformations.scad
 
 
triangles.scad
triangles.scad
 
 
trochoids.scad
trochoids.scad
 
 
units.scad
units.scad
 
 
unregular_shapes.scad
unregular_shapes.scad
 
 
utilities.scad
utilities.scad
 
 

Repository files navigation

OpenSCAD MCAD Library

This library contains components commonly used in designing and moching up mechanical designs. Looking for active co-maintainers: #22

This library is licensed under the LGPL 2.1 See http://creativecommons.org/licenses/LGPL/2.1/ or the included file, lgpl-2.1.txt.

Usage

You can import these files in your scripts with use <MCAD/filename.scad>, where 'filename' is one of the files listed below like 'motors' or 'servos'. Some files include useful constants which will be available with include <MCAD/filename.scad>, which should be safe to use on all included files (ie. no top level code should create geometry). (There is a bug/feature that prevents including constants from files that "include" other files - see the openscad mailing list archives for more details. Since the maintainers aren't very responsive, may have to work around this somehow)

If you host your project in git, you can do git submodule add URL PATH in your repo to import this library as a git submodule for easy usage. Then you need to do a git submodule update --init after cloning. When you want to update the submodule, do cd PATH; git checkout master; git pull. See git help submodule for more info. "./get_submodules.py" is shortcut that initializes and updates submodules.

Currently Provided Tools:

  • regular_shapes.scad

    • regular polygons, ie. 2D
    • regular polyhedrons, ie. 3D
  • involute_gears.scad (http://www.thingiverse.com/thing:3575):

    • gear()
    • bevel_gear()
    • bevel_gear_pair()
  • gears.scad (Old version):

    • gear(number_of_teeth, circular_pitch OR diametrial_pitch, pressure_angle OPTIONAL, clearance OPTIONAL)
  • motors.scad:

    • stepper_motor_mount(nema_standard, slide_distance OPTIONAL, mochup OPTIONAL)

Other tools (alpha and beta quality):

  • nuts_and_bolts.scad: for creating metric and imperial bolt/nut holes
  • bearing.scad: standard/custom bearings
  • screw.scad: screws and augers
  • materials.scad: color definitions for different materials
  • stepper.scad: NEMA standard stepper outlines
  • servos.scad: servo outlines
  • boxes.scad: box with rounded corners
  • triangles.scad: simple triangles
  • 3d_triangle.scad: more advanced triangles

Very generally useful functions and constants:

  • math.scad: general math functions
  • constants.scad: mathematical constants
  • curves.scad: mathematical functions defining curves
  • units.scad: easy metric units
  • utilities.scad: geometric funtions and misc. useful stuff
  • teardrop.scad (http://www.thingiverse.com/thing:3457): parametric teardrop module
  • shapes.scad: DEPRECATED simple shapes by Catarina Mota
  • polyholes.scad: holes that should come out well when printed

External utils that generate and and process openscad code:

  • openscad_testing.py: testing code, see below
  • openscad_utils.py: code for scraping function names etc.
  • SolidPython: An external Python library for solid cad

Development

You are welcome to fork this project in github and request pulls. I will try to accomodate the community as much as possible in this. If for any reason you want collaborator access, just ask. Looking for new co-maintainers, there are lots of fixes and additions spread in different forks, would be nice to have have the best of them consolidated here. See: #22

Github is fun (and easy), but I can include code submissions and other improvements directly, and have already included code from various sources (thingiverse is great :)

Code style

I'd prefer to have all included code nicely indented, at least at the block level, and no extraneous whitespace. I'm used to indent with four spaces as opposed to tabs or other mixes of whitespace, but at least try to choose a style and stick to it.

Testing

I've started a minimal testing infrastucture for OpenSCAD code. It's written in python and uses py.test (might be compatible with Nose also). Just type py.test inside the lib dir in a terminal and you should see a part of the tests passing and tracebacks for failing tests. It's very simplistic still, but it should test that no syntax errors occur at least.

The code is included in openscad_testing.py, and can be imported to be used in other codebases.

About

OpenSCAD Parametric CAD Library (LGPL 2.1) Maintained fork: https://github.com/openscad/MCAD

reprap.org/wiki/MCAD

Resources

Readme
Activity
Custom properties

Stars

220 stars

Watchers

31 watching

Forks

51 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.