openscad: Remove multi-line comments to simplify

This commit is contained in:
Tom Preston 2022-07-23 23:05:01 +01:00
parent 7654e1c6b6
commit 68e71d00ff

View File

@ -2,42 +2,38 @@
language: openscad language: openscad
filename: learnopenscad.scad filename: learnopenscad.scad
contributors: contributors:
- ["Thomas Preston", "https://github.com/tompreston/"] - ["Tom Preston", "https://github.com/tompreston/"]
--- ---
Draw 3D models with code using [OpenSCAD](https://openscad.org/). Draw 3D models with code using [OpenSCAD](https://openscad.org/).
```openscad ```openscad
// Single-line comments start with // // Comments look like this
/* // 3D Primitives
Multi-line comments look like this.
*/
/* 3D Primitives */
cube(10); cube(10);
cube([5, 10, 20]); cube([5, 10, 20]);
sphere(10); sphere(10);
/* Transformations */ // Transformations
translate([20, 0, 0]) cube(10); translate([20, 0, 0]) cube(10);
rotate([0, 20, 30]) cube(10); rotate([0, 20, 30]) cube(10);
translate([20, 0, 0]) rotate([0, 20, 30]) cube(10); translate([20, 0, 0]) rotate([0, 20, 30]) cube(10);
rotate([0, 20, 30]) translate([20, 0, 0]) cube(10); rotate([0, 20, 30]) translate([20, 0, 0]) cube(10);
/* Modifiers // Modifiers
* * disable //
* ! show only // * disable
* # highlight / debug // ! show only
* % transparent / background // # highlight / debug
*/ // % transparent / background
/* For example, show only the rotated cube at the origin, before we translate it. */ //
// For example, show only the rotated cube at the origin, before we translate it.
translate([20, 0, 0]) !rotate([0, 20, 30]) cube(10); translate([20, 0, 0]) !rotate([0, 20, 30]) cube(10);
/* Formatting // Formatting
* The following models are the same. The official docs prefer the second. // The following models are the same. The official docs prefer the second.
*/
rotate([0, 20, 30]) translate([20, 0, 0]) cube(10); rotate([0, 20, 30]) translate([20, 0, 0]) cube(10);
rotate([0, 20, 30]) rotate([0, 20, 30])
@ -50,7 +46,7 @@ rotate([0, 20, 30]) {
} }
} }
/* Loops */ // Loops
num_cubes = 5; num_cubes = 5;
r = 20; r = 20;
cube_len = 5; cube_len = 5;
@ -62,11 +58,12 @@ for (i = [0:num_cubes]) {
cube(cube_len, center=true); cube(cube_len, center=true);
} }
/* Boolean operations. // Boolean operations
* union() - the sum of both shapes //
* difference() - the first shape, minus the second shape // union() - the sum of both shapes
* intersection() - only parts of both shapes which intersect // difference() - the first shape, minus the second shape
*/ // intersection() - only parts of both shapes which intersect
//
cube_l = 20; cube_l = 20;
cube_w = 10; cube_w = 10;
cube_h = 10; cube_h = 10;
@ -82,12 +79,12 @@ difference() {
cylinder(cube_w, r=hole_r); cylinder(cube_w, r=hole_r);
} }
/* Functions calculate values. */ // Functions calculate values
function inch2mm(i) = i * 25.4; function inch2mm(i) = i * 25.4;
cube(inch2mm(2)); cube(inch2mm(2));
/* Modules create objects you want to use later. */ // Modules create objects you want to use later
module house(roof="flat", paint=[1,0,0]) { module house(roof="flat", paint=[1,0,0]) {
color(paint) color(paint)
if (roof=="flat") { if (roof=="flat") {
@ -101,7 +98,7 @@ module house(roof="flat", paint=[1,0,0]) {
translate([0,-1,0]) { translate([0,-1,0]) {
translate([0.5,0.5,1]) translate([0.5,0.5,1])
sphere(r=0.5,$fn=20); sphere(r=0.5,$fn=20);
cube(); cube();
} }
} }
} }
@ -109,9 +106,9 @@ module house(roof="flat", paint=[1,0,0]) {
house("pitched"); house("pitched");
translate([2, 0, 0]) house("domical"); translate([2, 0, 0]) house("domical");
/* Import modules and function from other files. */ // Import modules and function from other files
include <filename> /* Import the content of the file as if they were written in this file. */ include <filename> // Import the content of the file as if they were written in this file
use <filename> /* Import modules and functions, but do not execute any commands. */ use <filename> // Import modules and functions, but do not execute any commands
``` ```
## Further Reading ## Further Reading