Releases: jsconan/camelSCAD
Version 0.12.0
Improve the render script utils:
scripts/utils/slic3r.sh
: set of function to apply Slic3r on model files.scripts/slice.sh
: slices each model file contained in a folder.
Pull requests:
Full Changelog: v0.11.1...v0.12.0
Version 0.11.1
Fixes:
- Use of
buildBox()
andbuildPlate()
in samples - Missing history in previous releases
Pull requests:
Full Changelog: v0.11.0...v0.11.1
Version 0.11.0
Add core functions:
getChordHeight()
: Gets the height of a chord given the radius and the anglegetChordDistance()
: Gets the distance to a chord given the radius and the length
Improve the render script utils:
- spawn several processes when rendering multiple files
- add function
scadprocesses()
: set and display the number of parallel processes to spawn when rendering multiple files
Rework the build box shapes, making them more consistent. They now offer a center
option, false
by default so that the build box will have its origin at [0, 0, 0]
.
Breaking change: the buildBox()
shape does not apply the render mode anymore.
Pull requests:
- Feature/Improved build box by @jsconan in #75
- Features/chord height by @jsconan in #76
- Feature/parallel rendering by @jsconan in #77
- Release 0.11.0 by @jsconan in #78
Full Changelog: v0.10.1...v0.11.0
Version 0.10.1
Fixes:
- Fix the planarity of faces generated by the function
simplePolyhedronFaces()
. Generate triangles instead of rectangles. - Fix typos in annotations.
Pull requests:
Full Changelog: v0.10.0...v0.10.1
Version 0.10.0
Improvements:
- Add the sinusoid command to the
path()
function. - Allow drawing sinusoid and co-sinusoid in reverse (from right to left instead of left to right).
- Allow adding an initial translation to sinusoid and co-sinusoid.
- add function
tolower()
in render script utils: print the value to lower case - add function
toupper()
in render script utils: print the value to upper case - add function
scadformat()
in render script utils: set the output format for rendered files
Breaking changes:
scadtostl()
renamed toscadrender()
scadtostlall()
renamed toscadrenderall()
- add a
suffix
parameter toscadrender()
andscadrenderall()
Pull requests:
- Feature/script render format by @jsconan in #70
- Feature/sinusoid path by @jsconan in #71
- Release 0.10.0 by @jsconan in #72
Full Changelog: v0.9.0...v0.10.0
Version 0.9.0
Add operators:
repeatMap(map, offset, x, y, z)
: Repeats the children modules on every position given in themap
.repeatRotateMap(map, offset, x, y, z)
: Repeats the children modules on every angle given in themap
.
Improvements:
- Add an option to center the repeated shapes in
repeat*
,mirror*
,rotate*
, anddistributed*
operators,false
by default.
Pull requests:
- Feature/translate center by @jsconan in #67
- Feature/repeat map by @jsconan in #68
- Release 0.9.0 by @jsconan in #69
Full Changelog: v0.8.0...v0.9.0
Version 0.8.0
Add core functions:
getArcLength()
: Gets the length of an arc given the radius and the anglegetArcAngle()
: Gets the angle of an arc given the radius and the lengthgetChordLength()
: Gets the length of a chord given the radius and the anglegetChordAngle()
: Gets the angle of a chord given the radius and the length
Add shapes:
ringSegment(r, w, a=RIGHT, d, a1, a2, rx, ry, dx, dy, wx, wy)
: Creates a ring section at the origin.pipeSegment(r, h, w=0.1, a=90, d, a1, a2, rx, ry, dx, dy, wx, wy, center)
: Creates a pipe segment at the origin.
Fixes:
- Fixed wrong parameter name used in
chord()
shape
Pull requests:
- Feature/arc values by @jsconan in #63
- Feature/ring segment by @jsconan in #64
- Feature/chord values by @jsconan in #65
- Release 0.8.0 by @jsconan in #66
Full Changelog: v0.7.0...v0.8.0
Version 0.7.0
Add core functions:
times()
: fills an array by repeating a value N times. Arrays will be concatained. The result will be a flatten array.isNAN()
: Checks if the value is NAN (Not A Number).isInfinity()
: Checks if the value is infinite.
Fixes:
- Fix warnings that occurs when using
sinusoid()
orcosinusoid()
with an empty length. - Ignore empty var definitions in additional params for
scadcall()
- Missing parameter in
drawPlate()
. - Fix compatibility issue with camelSCAD and OpenSCAD 2019.05 due to change in strings management.
- check array of strings in
flatten()
- check string in
vadd()
,vsub()
,vmin()
,vmax()
,vpow()
,vabs()
,vsign()
- fix stricness issue in unit test for
apothem()
- improve detection of numbers
- check array of strings in
- Fix context initialization in unit tests, as a lot of warnings regarding context variables were displayed with OpenSCAD 2019.05.
Improvements:
- Improve the core function
path
by adding commands to nest or repeat a subpath. - Improve types management in core functions.
- Add constant
INFINITY
. - Add constant
NAN
. - Refactoring on the scripts side, adding some shared utils:
scripts/test.sh
: unit tests the project using thetest
folder. By default target the file namessuite.scad
.scripts/render.sh
: renders each OpenSCAD file contained in a folder.
Pull requests:
- Feature/scripts by @jsconan in #52
- Fix/warnings by @jsconan in #53
- Feature/numbers by @jsconan in #54
- Fix/script scad by @jsconan in #55
- Fix/string array by @jsconan in #56
- Fix/unit test context by @jsconan in #57
- Fix/draw plate by @jsconan in #58
- Fix/type management by @jsconan in #59
- Feature/improve path by @jsconan in #60
- Feature/times by @jsconan in #61
- Release 0.7.0 by @jsconan in #62
Full Changelog: v0.6.0...v0.7.0
Version 0.6.0
Add core functions:
vangle()
: Computes the angle between two vectors.getAngle()
: Computes the angle of a point on a circle.vertexAngle2D()
: Computes the vertex angle given three 2D points.vertexAngle3D()
: Computes the vertex angle given three 3D points.vertexOutline2D()
: Computes the outline of a vertex at the given distance from the edges.outline()
: Computes the outline of a polygon. The outline can be at a particular distance.getPolygonAngle()
: Gets the angle value at a particular index in a regular polygon.lineAdd()
: Adds a value to each point of a line.simplePolyhedronFaces()
: Builds a vector of faces to be used in a polyhedron. The function accepts the number of points defining one main face of the polyhedron, then returns the faces vector that contains the indices of each face enclosing the solid. This only apply on simple polyhedron where two opposite faces share the same number of points.simplePolyhedronPoints()
: Composes a list of points to be used in a simple polyhedron.sizeCross()
: Computes the size of a cross shape.sizeCrossBox()
: Computes the size of a cross shape.drawCross()
: Computes the points that draws the sketch of a cross shape.quadrant()
: gets a point on a particular quadrant.
With the add of vangle()
and getAngle()
, the following functions have beed updated:
angle2D()
andangle3D()
now make use ofvangle()
to compute the angle instead of directly applying the formula.tangent2D()
,isosceles2D()
,protractor()
now make use ofgetAngle()
to compute the angles. The biggest change is on theprotractor()
that should always return a positive value within the0..360
range.
Add 2D shapes:
regularCross
: Creates a cross at the origin.
Add 3D shapes:
regularCrossBox()
: Creates a cross box at the origin.simplePolyhedron
: Creates a simple polyhedron, where only two opposite faces are defined by a list of points.
Add operators:
repeatShape2D(size, count=1)
: Repeats horizontally a shape on two directions, the interval is set by the shape size. An option allows to center the repeated shapes in repeatShape operators,false
by default.repeatShape3D(size, count=1)
: Repeats a shape on three directions, the interval is set by the shape size. An option allows to center the repeated shapes in repeatShape operators,false
by default.
Features:
- Filter the extension from the name of the package to test. Now the test script accept the name of a package with or without the extension. So both commands are now equivalent:
./scripts/test.sh core/vector-2d
./scripts/test.sh core/vector-2d.scad
Fixes:
- Fix non manifold issue in simplePolyhedron. The issue was due to a counter clock wise order used to define faces.
- Fix typo in the name of function
pythagoras()
(waspythagore()
before)
Pull requests:
- Feature/Test script accept file extension by @jsconan in #42
- Feature/outline by @jsconan in #43
- Feature/polygon angle by @jsconan in #44
- Feature/cross by @jsconan in #45
- Fix/non manifold polyhedron by @jsconan in #46
- Feature/repeat shape by @jsconan in #47
- Feature/repeat shape by @jsconan in #48
- Feature/quadrant by @jsconan in #49
- Fix/typo in function name by @jsconan in #50
- Release 0.6.0 by @jsconan in #51
Full Changelog: v0.5.0...v0.6.0
Version 0.5.0
Add core functions:
parallel2D()
: computes a parallel line.intersect2D()
: computes the point at the intersection of two lines defined by four points.tangent2D()
: computes the point at the tangent between a circle and a line passing through a particular point.isosceles2D()
: computes the third edge of an isosceles triangle defined by the two other edges and either the height or the angle.protractor()
: computes the angle of a line defined by two points.extend2D()
: computes the 2D point at the wanted distance from the origin on the defined 2D line.extend3D()
: computes the 3D point at the wanted distance from the origin on the defined 3D line.apothem()
: Computes the apothem of a regular N-sides polygon. An apothem is a line from the center of a regular polygon at right angles to any of its sides.circumradius()
: Computes the radius of a circle circumscribing a regular N-sides polygon.quadraticEquation()
: Resolve a quadratic equation given the A, B and C terms.circleLineIntersect2D()
: Computes the points at the intersection of a circle and a line.circleIntersect2D()
: Computes the points at the intersection of two circles.
Add shapes:
chamferedRectangle(size, chamfer, l, w, cl, cw)
: Creates a chamfered rectangle at the origin.chamferedBox(size, chamfer, l, w, h, cl, cw, center)
: Creates a chamfered box at the origin.
Improvements on the core function path()
:
- accept either points or separated coordinates in commands
P
,L
, andT
. - added commands to compute intersection and tangent lines from the last point.
Fixes:
- Fix an issue occurring with the function
arc()
, when the provided angles are descending. - Fix misuse of cat command, that could lead to a performance issue.
Pull requests:
- Feature/intersect 2d by @jsconan in #32
- Feature/protractor by @jsconan in #33
- Feature/improve path by @jsconan in #34
- Fix/arc points order by @jsconan in #35
- Feature/extend point by @jsconan in #36
- Fix/test script by @jsconan in #37
- Feature/maths polygon by @jsconan in #38
- Feature/circle intersect by @jsconan in #39
- Feature/chamfered shape by @jsconan in #40
- Release 0.5.0 by @jsconan in #41
Full Changelog: v0.4.0...v0.5.0