{{ message }}

Instantly share code, notes, and snippets.

# Hans Loeblichthehans

Created Nov 13, 2011
FreeCAD script for generating parametric project enclosures
View ProjectEnclosure.py
 from __future__ import division # allows floating point division from integers from FreeCAD import Base import Part import math # Run this macro to create a generic project enclosure box # You can change all the parameters by selecting the object in the tree view and tweaking values in the "Data" tab # Possible additions/improvements # counterbore bridging .4mm
Created Nov 26, 2011
Parametric Aluminum Extrusion Module
View Extrusions.py
 from math import sqrt from FreeCAD import Base #Main class for general extrusion related methods class ExtrusionProfile(): def __init__(self, profile): self.profile = profile def makeExtrusion(self, p1, p2, rotateAngle=0): """Generates an extrusion which connects between two points,
Created Nov 30, 2011
A FreeCAD script for the purpose of inspecting the radius and center of circles in 3D models
View MeasureCircle.py
 from FreeCAD import Base class MeasureCircle: """This class will report the computed radius and center of a circle or arc given 3 vertices. A line is drawn from the first vertex to the center of the circle, which may be used for future measurements. Just select the vertices and the result will be shown in Report View Edges may also be selected and count as two vertices. If two edges are selected one of the vertices in the second edge is not used in the calculation""" def __init__(self): self.points = []
Created Dec 1, 2011
View Protractor.py
 from FreeCAD import Base import math class Protractor: """Reports the angle between two edges. Select the edges and the result will be shown in Report View""" def __init__(self): self.firstEdge = None Gui.Selection.addObserver(self) FreeCAD.Console.PrintMessage("Select any 2 edges\n")
Created Feb 11, 2012
Helper functions for improving FreeCAD's Python API
View EasyPart.py
 import math as _math from math import ceil, exp, floor, log as ln, log10 as log, pow, sqrt from FreeCAD import Base import Part # Trigonometric wrappers def acos(x): """Return the arc cosine of x, in degrees.""" return _math.degrees(_math.acos(x))
Last active Jan 18, 2017
View gist:c30c259e83da4e89ccbd975a511dab68
 // shear such that point will translate by [p.x,p.y] as z-axis is traversed by p.z units module shearAlongZ(p) { multmatrix([ [1,0,p.x/p.z,0], [0,1,p.y/p.z,0], [0,0,1,0] ]) children(); } rotate([0,0,0])
Created Mar 14, 2017
Userspace functions to replicate basic 2d modules as functions over point vectors, plus path drawing
 // enable View->Animate (FPS = 60, Steps = 300, for example), // to see function behavior at different angles p0 = [-4,0]; p1 = [4,0]; angle = 360*\$t+90; profile = [p0+polar(3,180+angle), p0, p1, p1+polar(3,-angle)]; \$fn=100; drawPath(profile, 1, false);
Last active Nov 28, 2017
Alternative sphere implementations in OpenSCAD userspace