omdl  v0.9.8
OpenSCAD Mechanical Design Library
docs_start.scad
Go to the documentation of this file.
1 //! Library documentation start page.
2 /***************************************************************************//**
3  \file
4  \author Roy Allen Sutton
5  \date 2015-2025
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 // introduction.
32 //----------------------------------------------------------------------------//
33 
34 /***************************************************************************//**
35  \mainpage Introduction
36  \tableofcontents
37 
38  \anchor introduction
39 
40  [omdl] is an [OpenSCAD] mechanical design library that provides
41  open-source high-level design primitives with coherent
42  documentation generated by [Doxygen] using [openscad-amu].
43 
44  With Doxygen, the code documentation is written within the code
45  itself, and is thus easy to keep current. Moreover, it provides a
46  standard way to both write and present OpenSCAD design
47  documentation, translatable to common output formats (html, pdf,
48  etc). With [omdl], all library operations are \em parametric with
49  minimal, mostly zero, global variable dependencies and all library
50  API's include [markups] that describe its parameters, behavior, and
51  use.
52 
53  [Validation] scripts are used to verify that the core operations
54  work as expected across evolving [OpenSCAD] versions. This
55  validation is performed when building and [installing] the library
56  documentation). The library uses a common set of conventions for
57  specifying [data types] and is divided into individual component
58  modules of functionality, organized into groups, that may be
59  included as desired.
60 
61  \section starting Getting Started
62 
63  \amu_define title (Hello world)
64  \amu_define image_views (right top front diag)
65  \amu_define image_size (sxga)
66  \amu_define image_columns (4)
67  \amu_define scope_id (quickstart)
68  \amu_define notes_scad
69  ( In this example, make_bearing_linear_rod() is used to construct
70  a custom linear bearing for fabrication on a 3D-printer. )
71  \amu_define notes_diagrams
72  ( The dimension operations in the above example can be found near
73  the end of ${FILE_NAME} within the \em scope \c ${scope_id}. )
74 
75  \amu_include (include/amu/scope_diagrams_3d.amu)
76 
77  \section contributing Contributing
78 
79  [omdl] uses [git] for development tracking, and is hosted on
80  [GitHub] following the usual practice of [forking] and submitting
81  [pull requests] to the source repository.
82 
83  As it is released under the [GNU Lesser General Public License],
84  any file you change should bear your copyright notice alongside the
85  original authors' copyright notices typically located at the top of
86  each file.
87 
88  Ideas, requests, comments, contributions, and constructive
89  criticism are welcome.
90 
91  \section support Support
92 
93  In case you have any questions or would like to make feature
94  requests, you can contact the maintainer of the project or file an
95  [issue].
96 
97 
98  [GNU Lesser General Public License]: https://www.gnu.org/licenses/lgpl.html
99 
100  [omdl]: https://royasutton.github.io/omdl
101  [omdl repository]: https://github.com/royasutton/omdl
102  [issue]: https://github.com/royasutton/omdl/issues
103 
104  [Validation]: \ref tv
105  [data types]: \ref dt
106  [installing]: \ref lb
107 
108  [openscad-amu]: https://royasutton.github.io/openscad-amu
109 
110  [Doxygen]: http://www.doxygen.nl
111  [markups]: http://www.doxygen.nl/manual/commands.html
112 
113  [OpenSCAD]: http://www.openscad.org
114 
115  [git]: http://git-scm.com
116  [GitHub]: http://github.com
117  [forking]: http://help.github.com/forking
118  [pull requests]: https://help.github.com/articles/about-pull-requests
119 *******************************************************************************/
120 
121 //----------------------------------------------------------------------------//
122 // openscad-amu auxiliary scripts
123 //----------------------------------------------------------------------------//
124 
125 /*
126 BEGIN_SCOPE logo;
127  BEGIN_OPENSCAD;
128  include <omdl-base.scad>;
129  include <models/3d/misc/omdl_logo.scad>;
130 
131  $fn = 36;
132 
133  omdl_logo(d=10, c=false, b=true, t=false);
134  END_OPENSCAD;
135 
136  BEGIN_MFSCRIPT;
137  include --path "${INCLUDE_PATH}" {var_init,var_gen_png2eps}.mfs;
138 
139  views name "views" distance "25" views "top";
140  images name "slogo" aspect "1:1" xsizes "55";
141  variables set_opts_combine "views slogo";
142 
143  include --path "${INCLUDE_PATH}" scr_make_mf.mfs;
144  END_MFSCRIPT;
145 END_SCOPE;
146 
147 BEGIN_SCOPE quickstart;
148  BEGIN_OPENSCAD;
149  include <omdl-base.scad>;
150  include <tools/operation_cs.scad>;
151  include <tools/drafting/draft-base.scad>;
152  include <parts/3d/motion/bearing_linear_rod.scad>;
153 
154  $fn = 36;
155 
156  p = [length(0.706, "in"), length(0.622, "in")];
157  b = length(6, "mm");
158 
159  r = 21.5; c = 6; a = 85;
160  h = [b*8, undef, false];
161 
162  v = is_undef ( __mfs__diag ) ? 2: undef;
163 
164  make_bearing_linear_rod(pipe=p, ball=b, count=c, angle=a, h=h, align=4, view=v)
165  minkowski() {cylinder(r=r-b*2/3, h=first(h)-b*3/2, center=true); sphere(r=r/5);};
166 
167  // end_include
168 
169  if ( !is_undef(__mfs__top) ) color("brown"){
170  draft_dim_center(r=r);
171  draft_dim_radius(r=r, v=[+1,-1], u="mm");
172  draft_dim_line(p1=[-r,0], p2=[+r,0], d=r*1.25, u ="mm");
173  draft_dim_line(p1=[-first(p)/2,0], p2=[+first(p)/2,0], d=r*3/4, u ="mm");
174  }
175 
176  if ( !is_undef(__mfs__front) ) color("brown") rotate([90,0,0]) {
177  draft_dim_line(p1=[-r,0], p2=[+r,0], d=r*3/4, u ="mm");
178  draft_dim_line(p1=[-first(p)/2,0], p2=[+first(p)/2,0], u ="mm");
179  draft_dim_line(p1=[0,0], p2=[0,-first(h)], d=+r*1.25, u ="mm");
180  draft_dim_leader(p=[-r+r/20,-r/15], v1=135, v2=180, l1=7, l2=7, t="r/5", tr=0, s=2);
181  }
182 
183  END_OPENSCAD;
184 
185  BEGIN_MFSCRIPT;
186  include --path "${INCLUDE_PATH}" {var_init,var_gen_png2eps}.mfs;
187  table_unset_all sizes;
188 
189  images name "sizes" types "sxga";
190  views name "views" views "diag front right top";
191 
192  variables set_opts_combine "sizes views";
193  variables add_opts "--viewall --autocenter --view=axes";
194 
195  include --path "${INCLUDE_PATH}" scr_make_mf.mfs;
196  END_MFSCRIPT;
197 END_SCOPE;
198 */
199 
200 //----------------------------------------------------------------------------//
201 // end of file
202 //----------------------------------------------------------------------------//