Skip to content

Releases: jsconan/camelSCAD

Version 0.12.0

27 Mar 20:45
e5702b1
Compare
Choose a tag to compare

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

08 Mar 19:48
21ee609
Compare
Choose a tag to compare

Fixes:

  • Use of buildBox() and buildPlate() in samples
  • Missing history in previous releases

Pull requests:

Full Changelog: v0.11.0...v0.11.1

Version 0.11.0

08 Mar 19:00
2d9faca
Compare
Choose a tag to compare

Add core functions:

  • getChordHeight(): Gets the height of a chord given the radius and the angle
  • getChordDistance(): 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:

Full Changelog: v0.10.1...v0.11.0

Version 0.10.1

28 Feb 21:37
316c8a1
Compare
Choose a tag to compare

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

20 Feb 21:28
a748b12
Compare
Choose a tag to compare

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 to scadrender()
  • scadtostlall() renamed to scadrenderall()
  • add a suffix parameter to scadrender() and scadrenderall()

Pull requests:

Full Changelog: v0.9.0...v0.10.0

Version 0.9.0

31 Jan 21:00
214f808
Compare
Choose a tag to compare

Add operators:

  • repeatMap(map, offset, x, y, z): Repeats the children modules on every position given in the map.
  • repeatRotateMap(map, offset, x, y, z): Repeats the children modules on every angle given in the map.

Improvements:

  • Add an option to center the repeated shapes in repeat*, mirror*, rotate*, and distributed* operators, false by default.

Pull requests:

Full Changelog: v0.8.0...v0.9.0

Version 0.8.0

25 Jan 12:20
01f316f
Compare
Choose a tag to compare

Add core functions:

  • getArcLength(): Gets the length of an arc given the radius and the angle
  • getArcAngle(): Gets the angle of an arc given the radius and the length
  • getChordLength(): Gets the length of a chord given the radius and the angle
  • getChordAngle(): 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:

Full Changelog: v0.7.0...v0.8.0

Version 0.7.0

16 Aug 16:08
38004d1
Compare
Choose a tag to compare

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() or cosinusoid() 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
  • 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 the test folder. By default target the file names suite.scad.
    • scripts/render.sh: renders each OpenSCAD file contained in a folder.

Pull requests:

Full Changelog: v0.6.0...v0.7.0

Version 0.6.0

28 May 15:36
e536ce0
Compare
Choose a tag to compare

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() and angle3D() now make use of vangle() to compute the angle instead of directly applying the formula.
  • tangent2D(), isosceles2D(), protractor() now make use of getAngle() to compute the angles. The biggest change is on the protractor() that should always return a positive value within the 0..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() (was pythagore() before)

Pull requests:

Full Changelog: v0.5.0...v0.6.0

Version 0.5.0

24 Dec 16:42
f84b13e
Compare
Choose a tag to compare

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, and T.
  • 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:

Full Changelog: v0.4.0...v0.5.0