omdl
v0.6.1
OpenSCAD Mechanical Design Library
Main Page
Related Pages
Modules
Files
File List
Globals
mainpage.scad
Go to the documentation of this file.
1
//! Documentation main page.
2
/***************************************************************************/
/**
3
\file mainpage.scad
4
\author Roy Allen Sutton
5
\date 2015-2017
6
7
\copyright
8
9
This file is part of [omdl] (https://github.com/royasutton/omdl),
10
an OpenSCAD mechanical design library.
11
12
The \em omdl is free software; you can redistribute it and/or modify
13
it under the terms of the [GNU Lesser General Public License]
14
(http://www.gnu.org/licenses/lgpl.html) as published by the Free
15
Software Foundation; either version 2.1 of the License, or (at
16
your option) any later version.
17
18
The \em omdl is distributed in the hope that it will be useful,
19
but WITHOUT ANY WARRANTY; without even the implied warranty of
20
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
Lesser General Public License for more details.
22
23
You should have received a copy of the GNU Lesser General Public
24
License along with the \em omdl; if not, write to the Free Software
25
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26
02110-1301, USA; or see <http://www.gnu.org/licenses/>.
27
28
*******************************************************************************/
29
30
/***************************************************************************/
/**
31
\mainpage omdl
32
\tableofcontents
33
34
\section introduction Introduction
35
36
[omdl] is an [OpenSCAD] mechanical design library that provides
37
open-source high-level design primitives with coherent
38
documentation generated by [Doxygen] using [openscad-amu].
39
40
With Doxygen, the code documentation is written within the code
41
itself, and is thus easy to keep current. Moreover, it provides a
42
standard way to both write and present OpenSCAD design
43
documentation, compilable to common output formats (html, pdf,
44
etc). With [omdl], all library primitives are \em parametric with
45
minimal, mostly zero, global variable dependencies and all library
46
API's include [markups] that describe its parameters, behavior, and
47
use.
48
49
[Validation] scripts are used to verify that the core operations
50
work as expected across evolving [OpenSCAD] versions (validation
51
performed when building the documentation). The library uses a
52
common set of conventions for specifying [data types] and is
53
divided into individual component modules of functionality,
54
organized into groups, that may be included as desired.
55
56
\section starting Getting Started
57
58
\b Example:
59
60
\dontinclude mainpage_quickstart.scad
61
\skip include
62
\until valign="center" );
63
64
\amu_make png_files (append=quickstart extension=png)
65
\amu_make eps_files (append=quickstart extension=png2eps)
66
\amu_make stl_files (append=quickstart extension=stl)
67
68
\htmlonly
69
\amu_image_table
70
(
71
type=html columns=4 image_width="200" table_caption="Example Result"
72
cell_captions="Bottom^Diagonal^Right^Top"
73
cell_files="${png_files}"
74
cell_urls="${stl_files} ${stl_files} ${stl_files} ${stl_files}"
75
)
76
\endhtmlonly
77
\latexonly
78
\amu_image_table
79
(
80
type=latex columns=4 image_width="1.25in" table_caption="Example Result"
81
cell_captions="Bottom^Diagonal^Right^Top"
82
cell_files="${eps_files}"
83
)
84
\endlatexonly
85
86
\subsection setup Setup
87
88
To use [omdl], the library files must be copied to an OpenSCAD
89
[library location]. This can be done manually or can be done using
90
using [openscad-amu].
91
92
The ladder has several advantages and is recommended. When using
93
[openscad-amu], the library documentation is installed together
94
with the library source code. This documentation is also added to a
95
local browsable index, which facilitates reference use. Moreover,
96
with [openscad-amu] installed, one can develop documentation for
97
other [OpenSCAD] design scripts.
98
99
See the recommended [installation] method for more information.
100
101
\section contributing Contributing
102
103
[omdl] uses [git] for development tracking, and is hosted on
104
[GitHub] following the usual practice of [forking] and submitting
105
[pull requests] to the source repository.
106
107
As it is released under the [GNU Lesser General Public License],
108
any file you change should bear your copyright notice alongside the
109
original authors' copyright notices typically located at the top of
110
each file.
111
112
Ideas, requests, comments, contributions, and constructive
113
criticism are welcome.
114
115
\section support Support
116
117
In case you have any questions or would like to make feature
118
requests, you can contact the maintainer of the project or file an
119
[issue].
120
121
122
[GNU Lesser General Public License]: https://www.gnu.org/licenses/lgpl.html
123
124
[omdl]: https://royasutton.github.io/omdl
125
[omdl repository]: https://github.com/royasutton/omdl
126
[issue]: https://github.com/royasutton/omdl/issues
127
128
[Validation]: \ref validation
129
[data types]: \ref dt
130
[installation]: \ref install
131
132
[openscad-amu]: https://royasutton.github.io/openscad-amu
133
134
[Doxygen]: http://www.stack.nl/~dimitri/doxygen/index.html
135
[markups]: http://www.stack.nl/~dimitri/doxygen/manual/commands.html
136
137
[OpenSCAD]: http://www.openscad.org
138
[library location]: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries
139
140
[git]: http://git-scm.com
141
[GitHub]: http://github.com
142
[forking]: http://help.github.com/forking
143
[pull requests]: https://help.github.com/articles/about-pull-requests
144
*******************************************************************************/
145
146
//----------------------------------------------------------------------------//
147
// conventions.
148
//----------------------------------------------------------------------------//
149
150
/***************************************************************************/
/**
151
\page conventions Conventions
152
\li \subpage dt
153
*******************************************************************************/
154
155
/***************************************************************************/
/**
156
\page dt Data types
157
\tableofcontents
158
159
\section dt_builtin Built-in
160
161
[omdl] assumes a [value] is either a number, a boolean, a string, a
162
list, a range, or the undefined value. What is called a vector in
163
the [OpenSCAD types] documentation is refereed to as a \em list
164
here in order to distinguish between sequential lists of values and
165
[Euclidean vectors].
166
167
| type | description |
168
|:---------:|:----------------------------------------------------|
169
| [value] | any valid OpenSCAD storable datum |
170
| number | an arithmetic value |
171
| boolean | a binary logic value (true or false) |
172
| string | a sequential list of of character values |
173
| list | a sequential list of arbitrary values |
174
| range | an arithmetic sequence |
175
| undef | the undefined value |
176
177
\subsection dt_special Special numerical values
178
179
| value | description |
180
|:---------:|:----------------------------------------------------|
181
| [nan] | a numerical value which is not a number |
182
| [inf] | a numerical value which is infinite |
183
184
\section dt_additions Additional conventions
185
186
When a list has an expected number of elements 'n', the \em count
187
is appended following a '-'. When there is a range of expected
188
elements, the lower and upper bounds are separated by a ':' and
189
appended (order of bounds may be reversed). When the elements
190
values are of an expected type, that \em type is prepended.
191
Combinations are used as needed as in the following table:
192
193
| name | description |
194
|:-----------:|:--------------------------------------------------|
195
| list-n | a list of of n elements |
196
| list-l:u | a list of l to u elements |
197
| type-list | a list of elements with an expected type |
198
| type-list-n | a list of n elements with an expected type |
199
200
\subsection dt_distinctions Distinctions
201
202
[omdl] make the following distinctions on variable types.
203
204
| name | description |
205
|:-----------:|:--------------------------------------------------|
206
| [scalar] | a single non-iterable value |
207
| [iterable] | a multi-part sequence of values |
208
| [empty] | an iterable value with zero elements |
209
| [even] | an even numerical value |
210
| [odd] | an odd numerical value |
211
212
\subsection dt_general General
213
214
From the fixed built-in set of [data types], [omdl] adds the
215
following general type specifications and conventions.
216
217
| name | description |
218
|:-------------:|:------------------------------------------------|
219
| [bit] | a binary numerical value (0 or 1) |
220
| [integer] | a positive, negative, or zero whole number |
221
| [decimal] | integer numbers with a fractional part |
222
| [index] | a list index sequence |
223
| [datastruct] | a defined data structure |
224
| [data] | an arbitrary data structure |
225
226
\subsubsection dt_index Index sequence
227
228
The data type \b index refers to a specified sequence of list
229
element indexes. A list index sequence may be specified in one of
230
the following forms.
231
232
| value / form | description |
233
|:---------------:|:----------------------------------------------|
234
| \b true | All index positions of the list [0:size-1] |
235
| \b false | No index positions |
236
| "all" | All index positions of the list [0:size-1] |
237
| "none" | No index positions |
238
| "rands" | Random index selection of the list [0:size-1] |
239
| "even" | The even index of the list [0:size-1] |
240
| "odd" | The odd index of the list [0:size-1] |
241
| <integer> | The single position given by an <integer> |
242
| <range> | The range of positions given by a <range> |
243
| <integer-list> | The list of positions give in <integer-list> |
244
245
The function get_index() can be used to convert a value of this
246
data type into a sequence of list element indexes.
247
248
\b Example
249
250
\code{.c}
251
// list
252
l1 = [a,b,c,d,e,f]
253
254
// index sequence
255
get_index(l1) = [0,1,2,3,4,5]
256
get_index(l1, "rands") = [0,2,5]
257
\endcode
258
259
\subsection dt_geometric Geometric
260
261
For [geometric] specifications and [geometric algebra], [omdl] adds
262
the following type specifications and conventions.
263
264
| name | description |
265
|:-----------:|:--------------------------------------------------|
266
| [point] | a list of numbers to identify a location in space |
267
| [vector] | a direction and magnitude in space |
268
| [line] | a start and end point in space ([line wiki]) |
269
| [normal] | a vector that is perpendicular to a given object |
270
| [pnorm] | a vector that is perpendicular to a plane |
271
| [plane] | a flat 2d infinite surface ([plane wiki]) |
272
| [coords] | a list of points in space |
273
| [matrix] | a rectangular array of values |
274
275
When a particular dimension is expected, the dimensional
276
expectation is appended to the end of the name after a '-' dash as
277
in the following table.
278
279
| name | description |
280
|:-----------:|:--------------------------------------------------|
281
| point-Nd | a point in an 'N' dimensional space |
282
| vector-Nd | a vector in an 'N' dimensional space |
283
| line-Nd | a line in an 'N' dimensional space |
284
| coords-Nd | a coordinate list in an 'N' dimensional space |
285
| matrix-MxN | a 'M' by 'N' matrix of values |
286
287
\subsubsection dt_line Lines and vectors
288
289
The data type \b line refers to a convention for specifying a line
290
or a vector. A vector is a direction and magnitude in space. A
291
line, too, has direction and magnitude, but also has location, as
292
it starts at one point in space and ends at another. Operators in
293
[omdl] make use of a common convention for specifying Euclidean
294
vectors and straight lines as summarized in the following table:
295
296
Given two points \c 'p1' and \c 'p2', in space:
297
298
| no. | form | description |
299
|:---:|:---------:|:----------------------------------------------|
300
| 1 | p2 | a line or vector from the origin to 'p2' |
301
| 2 | [p2] | a line or vector from the origin to 'p2' |
302
| 3 | [p1, p2] | line or vector from 'p1' to 'p2' |
303
304
The functions get_line_dim(), get_line_tp(), get_line_ip(), and
305
get_line2origin(), are available to identify the dimension of and
306
convert a line into a vector or point.
307
308
\b Example
309
310
\code{.c}
311
// points
312
p1 = [a,b,c]
313
p2 = [d,e,f]
314
315
// lines and vectors
316
v1 = p2 = [d,e,f]
317
v2 = [p2] = [[d,e,f]]
318
v3 = [p1, p2] = [[a,b,c], [d,e,f]]
319
320
v1 == v2
321
v1 == v2 == v3, iff p1 == origin3d
322
\endcode
323
324
\subsubsection dt_plane Planes
325
326
Operators in [omdl] use a common convention for specifying planes.
327
A \b plane is identified by a [point] on its surface together with
328
its [normal] vector specified by [pnorm], which is discussed in the
329
following section. A list with a point and normal together specify
330
the plane as follows:
331
332
| name | form |
333
|:-------:|:-------------------:|
334
| [plane] | [[point], [pnorm]] |
335
336
\subsubsection dt_pnorm Planes' normal
337
338
The data type \b pnorm refers to a convention for specifying a
339
direction vector that is perpendicular to a plane. Given three
340
points \c 'p1', \c 'p2', \c 'p3', and three vectors \c 'v1',
341
\c 'v2', \c 'vn', the planes' [normal] can be specified in any of
342
the following forms:
343
344
| no. | form | description |
345
|:---:|:-------------:|:----------------------------------------------|
346
| 1 | vn | the predetermined normal vector to the plane |
347
| 2 | [vn] | the predetermined normal vector to the plane |
348
| 3 | [v1, v2] | two distinct but intersecting vectors |
349
| 4 | [p1, p2, p3] | three (or more) non-collinear coplanar points |
350
351
The function get_pnorm2nv() can be used to convert a value of this
352
data type into a normal vector.
353
354
\b Example
355
356
\code{.c}
357
// points
358
p1 = [a,b,c];
359
p2 = [d,e,f];
360
p3 = [g,h,i];
361
362
// lines and vectors
363
v1 = [p1, p2] = [[a,b,c], [d,e,f]]
364
v2 = [p1, p3] = [[a,b,c], [g,h,i]]
365
vn = cross_ll(v1, v2)
366
367
// planes' normal
368
n1 = vn = cross_ll(v1, v2)
369
n2 = [vn] = cross_ll(v1, v2)
370
n3 = [v1, v2] = [[[a,b,c],[d,e,f]], [[a,b,c],[g,h,i]]]
371
n4 = [p1, p2, p3] = [[a,b,c], [d,e,f], [g,h,i]]
372
373
n1 || n2 || n3 || n4
374
375
// planes
376
pn1 = [p1, n1]
377
pn2 = [p2, n2]
378
pn3 = [p3, n3]
379
pn4 = [n4[0], n4]
380
pn5 = [mean(n4), n4]
381
382
pn1 == pn4
383
\endcode
384
385
[omdl]: https://royasutton.github.io/omdl
386
[Data types]: https://en.wikipedia.org/wiki/Data_type
387
[value]: https://en.wikipedia.org/wiki/Value_(computer_science)
388
[Euclidean vectors]: https://en.wikipedia.org/wiki/Euclidean_vector
389
390
[OpenSCAD types]: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#Values_and_Data_Types
391
[nan]: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#Infinities_and_NaNs
392
[inf]: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#Infinities_and_NaNs
393
394
[scalar]: https://en.wikipedia.org/wiki/Variable_(computer_science)
395
[iterable]: https://en.wikipedia.org/wiki/Iterator
396
[empty]: https://en.wikipedia.org/wiki/Empty_set
397
[even]: https://en.wikipedia.org/wiki/Parity_(mathematics)
398
[odd]: https://en.wikipedia.org/wiki/Parity_(mathematics)
399
400
[bit]: https://en.wikipedia.org/wiki/Bit
401
[integer]: https://en.wikipedia.org/wiki/Integer
402
[decimal]: https://en.wikipedia.org/wiki/Decimal
403
[index]: \ref dt_index
404
[datastruct]: https://en.wikipedia.org/wiki/Data_structure
405
[data]: https://en.wikipedia.org/wiki/Data
406
407
[geometric]: https://en.wikipedia.org/wiki/Geometry
408
[geometric algebra]: https://en.wikipedia.org/wiki/Geometric_algebra
409
410
[point]: https://en.wikipedia.org/wiki/Point_(geometry)
411
[vector]: https://en.wikipedia.org/wiki/Euclidean_vector
412
[line wiki]: https://en.wikipedia.org/wiki/Line_(geometry)
413
[line]: \ref dt_line
414
[normal]: https://en.wikipedia.org/wiki/Normal_(geometry)
415
[pnorm]: \ref dt_pnorm
416
[plane wiki]: https://en.wikipedia.org/wiki/Plane_(geometry)
417
[plane]: \ref dt_plane
418
[coords]: https://en.wikipedia.org/wiki/Coordinate_system
419
[matrix]: https://en.wikipedia.org/wiki/Matrix_(mathematics)
420
*******************************************************************************/
421
422
//----------------------------------------------------------------------------//
423
// validation results.
424
//----------------------------------------------------------------------------//
425
426
/***************************************************************************/
/**
427
\page validation Validation
428
\li \subpage tv_datatypes
429
\li \subpage tv_math
430
*******************************************************************************/
431
432
/***************************************************************************/
/**
433
\page tv_datatypes Datatypes
434
\li \subpage tv_datatypes_identify
435
\li \subpage tv_datatypes_operate
436
437
\page tv_datatypes_identify Identification
438
\li \subpage tv_datatypes_identify_scalar
439
\li \subpage tv_datatypes_identify_iterable
440
\li \subpage tv_datatypes_identify_list
441
442
\page tv_datatypes_operate Operations
443
\li \subpage tv_datatypes_operate_scalar
444
\li \subpage tv_datatypes_operate_iterable
445
\li \subpage tv_datatypes_operate_list
446
*******************************************************************************/
447
448
/***************************************************************************/
/**
449
\page tv_math Math
450
\li \subpage tv_math_vector_algebra
451
\li \subpage tv_math_bitwise
452
*******************************************************************************/
453
454
//----------------------------------------------------------------------------//
455
// group categories.
456
//----------------------------------------------------------------------------//
457
458
/***************************************************************************/
/**
459
\defgroup constants Constants
460
\brief Design constant definitions.
461
*******************************************************************************/
462
463
/***************************************************************************/
/**
464
\defgroup database Database
465
\brief Design specification data.
466
@{
467
468
\defgroup database_component Component
469
\brief Component specifications.
470
471
\defgroup database_electrical Electrical
472
\brief Electrical specifications.
473
474
\defgroup database_geometry Geometry
475
\brief Predefined geometry.
476
477
\defgroup database_material Material
478
\brief Material specifications.
479
480
@}
481
*******************************************************************************/
482
483
/***************************************************************************/
/**
484
\defgroup datatypes Datatypes
485
\brief Data type definitions and operators.
486
@{
487
488
See \ref dt for nomenclature, assumptions, and conventions used to
489
specify values and data types throughout the library.
490
491
\defgroup datatypes_identify Identification
492
\brief Compile-time data type identification and tests.
493
494
\defgroup datatypes_operate Operations
495
\brief Data type operation.
496
497
@}
498
*******************************************************************************/
499
500
/***************************************************************************/
/**
501
\defgroup math Math
502
\brief Mathematical functions.
503
*******************************************************************************/
504
505
/***************************************************************************/
/**
506
\defgroup parts Parts
507
\brief Parametric parts and assemblies.
508
*******************************************************************************/
509
510
/***************************************************************************/
/**
511
\defgroup shapes Shapes
512
\brief 2d and 3d shapes.
513
*******************************************************************************/
514
515
/***************************************************************************/
/**
516
\defgroup tools Tools
517
\brief Design tools and techniques.
518
*******************************************************************************/
519
520
/***************************************************************************/
/**
521
\defgroup units Units
522
\brief Units and unit conversions.
523
*******************************************************************************/
524
525
/***************************************************************************/
/**
526
\defgroup utilities Utilities
527
\brief General utilities.
528
*******************************************************************************/
529
530
//----------------------------------------------------------------------------//
531
// Installing.
532
//----------------------------------------------------------------------------//
533
534
/***************************************************************************/
/**
535
\page install Installing
536
\tableofcontents
537
538
\section install_prerequisites Prerequisites
539
540
First install [openscad-amu]. A build script exists for \em Linux
541
and \em Cygwin (pull requests for \em macos are welcome). If \c wget
542
is not available, here is a downloadable link to the [bootstrap]
543
script.
544
545
If the last step below reports the tool version, then the install
546
likely completed successfully and the temporary directory may be
547
removed as desired. Dependent on your operating system, file
548
system, and/or user credentials, the install may or may not require
549
elevated privileges as indicated by \c sudo:
550
551
\verbatim
552
$ mkdir tmp && cd tmp
553
554
$ wget https://raw.githubusercontent.com/royasutton/openscad-amu/master/snapshots/bootstrap.{bash,conf} .
555
$ chmod +x bootstrap.bash
556
557
$ sudo ./bootstrap.bash --yes --install
558
559
$ openscad-seam -v -V
560
\endverbatim
561
562
More information can be found in the GitHib [amu repository], where
563
the source is maintained, and at [amu on Thingiverse].
564
565
\section install_omdl omdl
566
567
Now [omdl] can be compiled, verified, and installed. First download
568
the source from the GitHub [omdl repository], select the branch
569
version, and start the install as follows:
570
571
\verbatim
572
$ git clone https://github.com/royasutton/omdl.git
573
$ cd omdl
574
$ git checkout v0.6.1
575
576
$ make scopes_exclude="manifest" all
577
$ make install
578
\endverbatim
579
580
By default, some things are not built, as controlled by the design
581
flow variable \c scopes_exclude. To build everything, use the
582
following:
583
584
\verbatim
585
$ make list-scopes_exclude
586
587
$ make scopes_exclude="" all
588
\endverbatim
589
590
Now the library should have been installed to the OpenSCAD
591
\em built-in library location along with the documentation that can
592
be views with a web browser. Multiple versions can be installed
593
simultaneously.
594
595
Have a look in:
596
\li \b Linux: $HOME/.local/share/OpenSCAD/libraries
597
\li \b Windows: My Documents\\\\OpenSCAD\\\\libraries
598
599
You may include the desired library component from your project
600
as follows, replacing the version number as needed:
601
602
\verbatim
603
include <omdl-v0.6/shapes/shapes2de.scad>;
604
include <omdl-v0.6/shapes/shapes3d.scad>;
605
...
606
\endverbatim
607
608
\subsection snapshots Snapshots
609
610
Library source release [snapshots] are periodically made available
611
in the repository and at [omdl on Thingiverse].
612
613
614
[omdl]: https://royasutton.github.io/omdl
615
[omdl repository]: https://github.com/royasutton/omdl
616
617
[snapshots]: https://github.com/royasutton/omdl/tree/master/snapshots
618
619
[amu on Thingiverse]: http://www.thingiverse.com/thing:1858181
620
[omdl on Thingiverse]: http://www.thingiverse.com/thing:1934498
621
622
[openscad-amu]: https://royasutton.github.io/openscad-amu
623
[amu repository]: https://github.com/royasutton/openscad-amu
624
[bootstrap]: https://raw.githubusercontent.com/royasutton/openscad-amu/master/snapshots/bootstrap.bash
625
*******************************************************************************/
626
627
//----------------------------------------------------------------------------//
628
// openscad-amu auxiliary scripts
629
//----------------------------------------------------------------------------//
630
631
/*
632
BEGIN_SCOPE logo;
633
BEGIN_OPENSCAD;
634
include <shapes/shapes2de.scad>;
635
include <shapes/shapes3d.scad>;
636
637
$fn = 36;
638
639
frame = triangle_lp2ls( [ [30,0], [0,40], [30,40] ] );
640
core = 2 * frame / 3;
641
vrnd = [1, 2, 4];
642
643
cone( h=20, r=10, vr=2 );
644
rotate([0, 0, 360/20])
645
radial_repeat( n=5, angle=true )
646
etriangle_ls_c( vs=frame, vc=core, vr=vrnd, h=10 );
647
END_OPENSCAD;
648
649
BEGIN_MFSCRIPT;
650
include --path "${INCLUDE_PATH}" {config_base,config_png}.mfs;
651
652
views name "views" distance "250" views "top";
653
images name "slogo" aspect "1:1" xsizes "55";
654
variables set_opts_combine "views slogo";
655
656
include --path "${INCLUDE_PATH}" script_std.mfs;
657
END_MFSCRIPT;
658
END_SCOPE;
659
660
BEGIN_SCOPE quickstart;
661
BEGIN_OPENSCAD;
662
include <omdl-base.scad>;
663
664
$fn = 36;
665
666
frame = triangle_lp2ls( [ [30,0], [0,40], [30,40] ] );
667
core = 2 * frame / 3;
668
vrnd = [1, 2, 4];
669
670
cone( h=20, r=10, vr=2 );
671
rotate([0, 0, 360/20])
672
radial_repeat( n=5, angle=true )
673
etriangle_ls_c( vs=frame, vc=core, vr=vrnd, h=10 );
674
675
translate([0, -50,0])
676
linear_extrude(height=10)
677
text( text="omdl", size=20, halign="center", valign="center" );
678
END_OPENSCAD;
679
680
BEGIN_MFSCRIPT;
681
include --path "${INCLUDE_PATH}" {config_base,config_png}.mfs;
682
683
views name "views" views "top bottom right diag";
684
variables add_opts_combine "views";
685
variables add_opts "--viewall --autocenter";
686
687
include --path "${INCLUDE_PATH}" script_new.mfs;
688
689
include --path "${INCLUDE_PATH}" config_stl.mfs;
690
include --path "${INCLUDE_PATH}" script_app.mfs;
691
END_MFSCRIPT;
692
END_SCOPE;
693
*/
694
695
//----------------------------------------------------------------------------//
696
// end of file
697
//----------------------------------------------------------------------------//
mainpage.scad
Generated on Fri Apr 7 2017 13:28:41 for omdl by
doxygen
with
openscad-amu