Home
OpenSCAD User Manual/Print version Table of Contents
Contents
1. OpenSCAD will need to be restarted to recognise any change to the OPENSCADPATH Environment Variable Where you specify a non fully qualified path filename in the use lt gt Or include lt gt Statement that path file is checked against the directory of the main scad file the User Defined library paths oPENScADPATH the Built In library i e the O S dependent locations above and the Installation library in that order For example with the following locations amp files defined with OPENSCADATH usr lib home lib_os I i I lt installation library gt lib1 scad 1 lt built in library gt lib2 scad i lt built in library gt sublib lib2 scad i I I I I I I I use lib lib2 scad 1 2 3 4 lt built in library gt sublib lib3 scad 5 6 home lib_os sublib lib3 scad l 1 1 1 l l i include lt lib1 scad gt 1 i include lt lib2 scad gt 5 i include lt sublib lib2 scad gt 3 i include lt sublib lib3 scad gt 6 1 1 l 1 l l The currently active list of locations can be verified in the Help gt Library Info dialog 121 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Note Requires version 2014 03 The details info shows both the content of the openscappatH variable and the list of all library locations The locations will be searched in the order they appear in thi
2. Ignore CSG of this subtree and draw it in transparent gray HL Use this subtree as usual but draw it in transparent pink 1 Modules Poop SoA ee eg A O A a a iS eee eee Se 1 module name lt var1 gt lt var2 gt lt module code gt i Variables can be default initialized lt var1 gt lt defaultvalue gt In module you can use children to refer to all child nodes or children i where i is between 0 and children Include Statement After 2010 02 PO ma io a ee ee ee en ee Re a a ae a a 1 tinclude lt filename scad gt appends whole file ae ae a akc a rr r rr AA a 1 use lt filename scad gt appends ONLY modules and functions filename could use directory with char separator Prior to 2010 02 126 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA E RR Pe ee an a ey ak ap Get Bp ae Bg Gav ing Savy ating Swag OMe RU AUN ge pg age eS NY pee yee eye ARG EE aR Gk Me gil OR ph od gl gt pak pd Ge GE Ge GL PE GA GL ES EEE Spt sagan Nope OEM 1 filename scad gt Other Language Features DRAG ASIEN Bet NEES NS I ONE OEY NE BS BPE DRY ORANG SAAN Ga GIG Se AFG TANG AO NN RC N Ge Te Ge Tt GE TE EE Tt GS Ee Ge Tt TS Ft Ye ee a Ng 1 sta is the minimum angle for a fragment The default value is 12 degrees E E a a Re ay SFE Ge SE S ONAE a A EN e 1 Sf is the minimum size of a fragment The default value is 1 A E bos ll a a a aaa Ea a 1
3. OpenSCAD does not focus on the artistic aspects of 3D modelling but instead focuses on the CAD aspects So it might be the application you are looking for when you are planning to create 3D models of machine parts but probably is not what you are looking for when you are more interested in creating computer animated movies OpenSCAD is not an interactive modeller Instead it is something like a 3D interpreter that reads in a script file that describes the object and renders the 3D model from the script file This gives you the designer full control over the modelling process and enables you to easily change any step in the modelling process or even to produce designs that are defined by configurable parameters OpenSCAD provides two main modelling techniques First constructive solid geometry CSG and second extrusion of 2D outlines Autocad DXF files are used as the data exchange format for the 2D outlines In addition to 2D paths for extrusion it is also possible to read design parameters from DXF files In addition to reading DXF files OpenSCAD can also read and create 3D models in the STL and OFF file formats OpenSCAD can be downloaded from http openscad org You may find extra information in the mailing list http rocklinux net mailman listinfo openscad People who don t want to or can t install new software on their computer may be able to use OpenJSCAD http OpenJSCAD org a port of OpenSCAD that runs in a web bro
4. Libraries Library Locations OpenSCAD uses three library locations the installation library built in library and user defined libraries 1 The Installation library location is the libraries directory under the directory where 120 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA OpenSCAD is installed 2 The Built In library location is O S dependent It can be opened in the system specific file manager using the File gt Show Library Folder menu entry Windows My Documents OpenSCAD libraries m Linux HOME local share OpenSCAD libraries m Mac OS X HOME Documents OpenSCAD libraries 3 The User Defined library path can be created using the oPENSCADPATH Environment Variable to point to the library s OPENSCADPATH Can contain multiple directories in case you have library collections in more than one place separate directories with a semi colon for Windows and a colon for Linux Mac OS For example Windows C Users A_user Documents OpenSCAD MyLib C Thingiverse Stuff OpenSCAD Things D test_stuff Note For Windows in versions prior to 2014 02 22 there is a bug preventing multiple directories in OPENSCADPATH as described above it uses a colon to separate directories A workaround if your libraries are on C is to leave off the drive letter amp colon e g Thingiverse Stuff OpenSCAD Things stuff Linux Mac OS usr lib home mylib
5. m http www damonkohler com 2010 11 inkscape dxf openscad makerbot html Better Better DXF Plugin for Inkscape Description of extrude parameters Extrude parameters for all extrusion modes scale FIXME convexity See 2D to 3D Extrusion file The name of the DXF file to extrude DEPRECATED layer The name of the DXF layer to extrude DEPRECATED iii x y coordinates to use as the drawing s center in the units specified in the 8 DXF file DEPRECATED Extrude parameters for linear extrusion only 86 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa height The extrusion height center lf true extrusion is half up and half down If false the section is extruded up twist The extrusion twist in degrees slices FIXME Currently OpenSCAD only supports DXF as a graphics format for 2D graphics Other common formats are PS EPS and SVG PS EPS The pstoedit http www pstoedit net program can convert between various vector graphics formats OpenSCAD needs the polyaslines option passed to the dxf output plugin to understand the file The dt options instructs pstoedit to render texts which is usually what you want if you include text If the rendered text s resolution in terms of polygon count is too low the easiest solution is to scape up the eps before converting if you know a more elegant solution please add it to the example
6. sqrt lt value gt round lt value gt ceil lt value gt floor lt value gt Lookup lt in_value gt lt vector_of_vectors gt Primitive Solids 124 sur 128 http en wikibooks org w index php title O0penSCA 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa AA E E l Raia ae aa i SSeS A O O Se ye ps a T 1 isphere r lt radius gt A E E E E E E E O O E O O O A O O al ope ee aie ee me he a A A A A OA k cylinder h lt height gt r1 lt bottomRadius gt r2 lt topRadius gt center lt boolean gt cylinder h lt height gt r lt radius gt TS A A A A A AS 1 pol yhedron points x y 21 triangles p1 p2 p3 convexity N A O E A E E E E O O O E O E O O O O al Transformations a e a 1 iscale v x y 21 y i E dee op O a a ate ea each che ch cy E A n A A RA nA RR Rp Ree ey ee wd E In versions gt 2013 03 1 resize newsize x y z auto true false i iresize newsize x y z auto xaxis yaxis zaxis axis is true false l resize x y Z xaxis yaxis zaxis Lu resize x y 21 AS An E E E E A E E E O E O O O O Ba et ee A E jrotate a deg v X y z 1 i irotate a x_deg y_deg z_deg Eh AE O E O E E E O A E E O E E O A O O IN A A 1 itranslate v x y 21 i A RAE A O PERRERA LEE E E EY E E E a EST SEE ANA f ASAS AS NS NS
7. pstoedit does not understand SVG but EPS can be converted from an SVG inkscape http inkscape org an SVG editor can be used for conversion I inkscape E intermediate eps infile svg pstoedit dt f dxf polyaslines intermediate eps outfile dxf I Makefile automation The conversion can be automated using the make system put the following lines in your Makefile all my_first_file dxf my_second_file dxf another_file dxf inkscape E lt dxf eps I l I I I l I eps svg I I pstoedit dt f dxf polyaslines lt I I The first line specifies which dxf files are to be generated when make is called in the current directory The second paragraph specifies how to convert a file ending in svg to a file 87 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa ending in eps and the third from eps to dxf STL Import and Export Import and Export A prime ingredient of any 3D design flow is the ability to import from and export to other tools The STL file format http en wikipedia org wiki STL_ file_format is currently the most common format used Import import Imports a file for use in the current OpenSCAD model Parameters lt file gt A string containing the path to the STL or DXF file Usage examples Notes In the latest version of OpenSCAD import is now used for importing both 2D
8. 0 1 2 3 etc Each triangle in the triangle list is defined by selecting 3 of the points using the point identifier out of the point list e g triangles 0 1 2 defines a triangle from the first point points are zero referenced to the second point and then to the third point 43 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA When looking at any triangle from the outside the triangle must list their 3 points in a clockwise order Transformation affect the child nodes and as the name implies transforms them in various ways such as moving rotating or scaling the child Cascading transformations are used to apply a variety of transforms to a final child Cascading is achieved by nesting statements Le I transform e g rotate 45 45 45 transform translate 10 20 30 i 1 child cube 10 i I Li Note child is deprecated by children in master 2013 06 still uses child Transformations can be applied to a group of child nodes by using amp to enclose the subtree e g SLRS Te Cpe Ee ce Gee ee Srey ey dey ear See oye ap pet gy ey T pee Sesion ep oper were fee peo te Teh AAN ON are pie ey 1 l translate 0 0 5 or the more compact translate 0 0 5 1 cube 10 i y cube 10 cylinder r 5 h 10 i cylinder r 5 h 10 1 1 l Advanced concept As OpenSCAD uses different libraries to
9. By default the view is in Perspective mode meaning that distances far away from the viewer will look shorter as it is common with eyes or cameras When the view mode is changed to Orthogonal visible distances will not depend on the camera distance the view will simulate a camera in infinite distance with infinite focal length This is especially useful in combination with the Top etc options described above as this will result in a 2D image similar to what one would see in an engineering drawing The OpenSCAD Language Comments OpenSCAD uses a programming language to create the models that are later displayed on the screen Comments are a way of leaving notes within the code either to yourself or to future programmers describing how the code works or what it does Comments are not evaluated by the compiler and should not be used to describe self evident code OpenSCAD uses C style comments This is a comment myvar 10 The rest of the line is a comment Multi line comments can span multiple lines Variables Variables in OpenSCAD are simply a name followed by an assignment via an expression but see below for an important note about variables Example 9 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Currently it s not possible to do assignments at any place the only places are file top level and module top level
10. DXF for extrusion and 3D STL files If you want to render the imported STL file later you have to make sure that the STL file is clean This means that the mesh has to be manifold and should not contain holes nor self intersections If the STL is not clean you might get errors like CGAL error in CGAL_Build_PolySet CGAL ERROR assertion violation Expr check_protocoll File nhome don openscad_deps mxe usr i686 pc mingw32 include CGAL Polyhedron_incremental_builder_3 h Line 199 or 88 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa CGAL error in CGAL_Nef_polyhedron3 CGAL ERROR assertion violation Expr pe_prev gt is_border internal Plane_constructor lt Plane gt get_plane pe_prev gt facet pe_prev gt facet gt plane File home don openscad_deps mxe usr i686 pc mingw32 include CGAL Nef_3 polyhedron_3_to_nef_3 h Line 253 In order to clean the STL file you have the following options use http wiki netfabb com Semi Automatic_Repair_Options This will repair the holes but not the self intersections use netfabb basic This free software doesnt have the option to close holes nor can it fix the self intersections use MeshLab This free software can fix all the issues Using MeshLab you can do Render Show non Manif Edges Render Show non Manif Vertices if found use Filters Selectio
11. base name for each of these files an scad file has to be generated This is done in the scad paragraph my_example scad Will be a very simple OpenSCAD file l use lt base scad gt my_example l The seconpary line is there to keep make from deleting the generated scad files If it deleted it it would not be able to automatically determine which files need no rebuild any more please post ideas about what exactly goes wrong there or how to fix it better on the talk page Windows notes On Windows openscad com should be called from the command line as a wrapper for openscad exe This is because Openscad uses the devenv solution to the Command Line GUI output issue Typing openscad at the cmd exe prompt will by default call the com program wrapper Building OpenSCAD from Sources Prebuilt binary packages As of 2013 prebuilt OpenSCAD packages are available on many recent Linux and BSD distributions including Debian Ubuntu Fedora Arch NetBSD and OpenBSD Check your system s package manager for details For Ubuntu systems you can also try chrysn s Ubuntu packages at his launchpad PPA https launchpad net chrysn archive openscad or you can just copy paste the following onto the command line 102 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA sudo add apt repository ppa chrysn openscad sudo apt get update i s
12. for xpos 0 3 ypos 2 4 6 do twelve iterations using each xpos with each ypos I I I l Intersection For Loop Iterate over the values in a vector or range and take an intersection of the contents Note intersection_for is a work around because of an issue that you cannot get the expected results using a combination of the standard for and intersection statements The reason is that foro do a implicit uniono of the contents Parameters lt loop variable name gt Name of the variable to use within the for loop Usage example 1 loop over a range I er a ie E E TE 1 I l 1 l I l L intersection_for n 1 61 1 l l rarasati 0 n 60 I l i translate 5 0 0 sphere r 12 E I i 1 1 1 1 1 1 17 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA OpenSCAD Intersection for Usage example 2 rotation 1 l 1 l Li I l intersection_for i 0 0 0 i 10 20 300 i 200 40 57 i 20 88 571 1 i l l l Li l I Li l Li l Li Li l I rotate i cube 100 20 20 center true A E E ee nae 7 OpenSCAD Intersection for rotation If Statement Conditionally evaluate a sub tree Parameters The boolean expression that should be used as condition NOTE Do not confuse the assignment operator with the equal operator 1 if a b dosomething WRONG
13. lt do_something gt Range lt start gt lt end gt iterate from start to end inclusive with a fixed increment of 1 Both start and end can be fractions It also works if end is smaller than start but as of Version 2014 03 this usage is deprecated and will produce a warning message 14 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA Range lt start gt lt increment gt lt end gt iterate from start to end with the given increment The increment can be a fraction It s valid to use a negative increment in this case end must be smaller than or equal to start Warning Ifthe increment is not an even divider of lt end gt lt start gt the iterator value for the last iteration will be lt end gt lt end gt lt start gt mod lt increment gt Note for Version lt 2014 03 The increment is given as an absolute value and cannot be negative If lt end gt is smaller than lt start gt the increment should remain unchanged Nested loops for variable1 lt range or vector gt variable2 lt range or vector gt lt do something using both variables gt for loops can be nested just as in normal programs A shorthand is that both iterations can be given in the same for statement Usage example 1 iteration over a vector for z 1 1 two iterations z 1 z 1 translate 0 0 z cube size 1 center false
14. ordinary projection which gives a sort of shadow of the object onto the xy plane A O EEE O EEE O MNR RN AIN NN ACTO SR i 1 projection cut false example002 74 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Another Example You can also use projection to get a side view of an object Let s take example002 and move it up out of the X Y plane and rotate it Fa mie Now we can get a side view with projection 75 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Links example021 scad from Clifford Wolf s site http svn clifford at openscad trunk examples example021 scad More complicated example http www gilesbathgate com 2010 06 extracting 2d mendel outlines using openscad from Giles Bathgate s blog It is possible to use extrusion commands to convert 2D objects to 3D objects This can be done with the built in 2D primitives like squares and circles but also with arbitrary polygons Linear Extrude Linear Extrusion is a modeling operation that takes a 2D polygon as input and extends it in the third dimension This way a 3D shape is created Usage oss sss Ss SS SS SS SS Sse es SSeS A SSS SSeS SSS SS SS eS SS SSS SSeS A SSS SSeS 1 l lLinear_extrude height fanwidth center true convexity 10 twist fanrot
15. slices 20 scale 1 0 i I You must use parameter names due to a backward compatibility issue If the extrusion fails for a non trival 2D shape try setting the convexity parameter the default is not 10 but 10 is a good value to try See explanation further down Twist Twist is the number of degrees of through which the shape is extruded Setting the parameter twist 360 will extrude through one revolution The twist direction follows the left hand rule 76 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA 0 of Twist Pg ae ne en eg ge le Na EI I RII A Rey ee ge ee Ga 1 linear_extrude height 10 center true convexity 10 twist 0 ttranslate 2 0 01 icircle r 1 100 of Twist A A A ee ee ee ee 1 Linear_extrude height 10 center true convexity 10 twist 100 l ttranslate 2 0 0 i icircle r 1 A 1 I 77 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA 100 of Twist Linear_extrude height 10 center true convexity 10 twist 100 ttranslate 2 0 0 icircle r 1 A l i 500 of Twist Linear_extrude height 10 center true convexity 10 twist 500 ttranslate 2 0 0 icircle r 1 A I I 78 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikib
16. which have to be escaped from the shell To render a model that takes a quality parameter with the value production one has to run Command to build required files In a complex build process some files required by an OpenSCAD file might be currently missing but can be generated for example if they are defined in a Makefile If OpenSCAD is given the option m make it will start make file the first time it tries to access a missing file Makefile example The d and m options only make sense together m without d would not consider modified dependencies when building exports d without m would require the files to be already built for the first run that generates the dependencies Here is an example of a basic Makefile that creates an stl file from an scad file of the same name 1 explicit wildcard expansion suppresses errors when no files are found tinclude wildcard deps 1 I w stl scad 1 openscad m make o d deps lt When make my_example st1 is run for the first time it finds no deps files and will just depend ON my_example scad SINCE my_example st1 is not yet preset it will be created unconditionally If OpenSCAD finds missing files it will call make to build them and it will list all used files in my_example stl deps When make my_example st1 is called subsequently it will find and include my_example st1 deps and check if any of the files listed there including my_example scad changed
17. 1 center true mirror Mirrors the child element on a plane through the origin The argument to mirrord is the 48 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa normal vector of a plane intersecting the origin through which to mirror the object Bp I ea ee eee Usage example mirror 0 1 01 i mirror 1 0 0 mirror 1 1 0 mirror 1 1 1 o yg RR irotate 0 0 10 cube 3 2 1 mirror 1 0 0 translate 1 0 0 rotate 0 0 10 cube 3 2 1 multmatrix Multiplies the geometry of all child elements with the given 4x4 transformation matrix Usage multmatrix m f Example translates by 10 20 30 multmatrix m 1 0 0 10 E 0 1 o N o La 49 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA 0 0 1 30 0 0 0 1 cylinder i Example rotates by 45 degrees in XY plane and translates by 10 20 30 PO E E al a EE E 1 angle 45 i multmatrix m cos angle sin angle 0 10 1 sin angle cos angle 0 20 0 0 1 301 0 0 O 1 i union i i cylinder r 10 0 h 10 center false 1 cube size 10 10 10 center false i y i color Displays the child elements using the specified RGB color alpha value This is only used for the F5 pre
18. 20Installer mingw get inst mingw get inst 20110316 mingw get inst 20110316 exe Installing Install Visual Studio No need for siverlight or mssql express You can use a virtual CD program like MagicDisc to mount the ISO file and install without using a CD Install QT Install to default location c 10t1W4 7 21 Install Git m Click Run Git and included Unix tools from the Windows Command Prompt despite the big red letters warning you not to Install Cmake m Check the Add cmake to the system path for the current user checkbox 113 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Install to default location c Program Files CMake 2 8 Install Boost m Select the VC 9 0 vs2008 radio Check the multithreaded static runtime checkbox only Install into c boost_1_46_1 Install CGAL Note CGAL 3 9 fixes several bugs in earlier versions of CGAL but CGAL 3 9 will not compile under MSVC without extensive patching Please keep that in mind when compiling OpenSCAD with MSVC there may be bugs due to the outdated version of CGAL required to use MSVC Note its not a binary distribution just an installer that installs the source No need for CGAL Examples and Demos Make sure mpfr and gmp precompiled libs is checked The installer wants you to put this in c Program Files CGAL 3 7 I used C CGAL 3 7 Make sure CGAL_DIR environment ch
19. 3 3 Search on list of values m 5 17 48 3 4 Search on list of strings m 5 17 48 3 5 Getting the right results m 5 17 49 OpenSCAD Version m 5 17 50 parent_module n and parent_modules 6 Using the 2D Subsystem 6 1 square 6 2 circle 6 3 polygon 6 4 import_dxf 6 5 Linear Extrude m 6 5 1 Usage m 6 5 2 Twist m 6 5 3 Center m 6 5 4 Mesh Refinement m 6 5 5 Scale 6 6 Rotate Extrude 6 6 1 Examples m 6 6 2 Mesh Refinement 6 6 3 Extruding a Polygon 6 7 Description of extrude parameters 6 7 1 Extrude parameters for all extrusion modes 6 7 2 Extrude parameters for linear extrusion only 6 8 Linear Extrude 6 9 Rotate Extrude 6 10 Getting Inkscape to work 6 11 Description of extrude parameters 6 11 1 Extrude parameters for all extrusion modes 6 11 2 Extrude parameters for linear extrusion only m 6 12 PS EPS m 6 13 SVG 6 14 Makefile automation 7 STL Import and Export 8 Import and Export 8 1 Import 8 1 1 import 24 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa 25 sur 128 8 1 2 import_stl m 8 2 STL Export m 8 2 1 STL Export 8 2 2 import 8 2 3 import_stl m 8 2 4 STL Export 8 3 Dodecahedron 8 4 Bounding Box 8 4 1 Export options 8 4 1 1 Camera and image output m 8 4 2 Constants 8 4 3 Command to build required files 8 4 4 Makefile example 8 4 4 1 Automatic targets 8 4 5 Windows notes
20. 6 7 produces ECHO techo cross 2 1 31 0 4 5 produces ECHO recho cross 2 3 4 5 produces ECHO undef l exp Mathematical exp function Returns the base e exponential function of x which is the number e raised to the power x See Exponent floor Mathematical floor function floor x is the largest integer not greater than x See Floor Function 29 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA In Mathematical natural logarithm See Natural logarithm len Mathematical length function Returns the length of an array a vector or a string parameter Usage examples EE ee ene 1 istri abcdef len_str1 len str1 i recho str1 len_str1 i 1a 6 len_a len a i echo a len_a i jarray1 1 2 3 4 5 6 7 8 len_array1 len array1 i echo array1 len_array1 i jarray2 0 0 0 1 1 0 1 1 len_array2 len array2 i recho array2 len_array2 i ylen_array2_2 len array2 2 recho array2 2 len_array2_2 i Results E A A O RR IR RL RI A gg 4a A Go 4 A AA EI CA Ca UNO TY CIS ERA CRo CYA OSTEA Ea EYA SAIYA e DNO GI C RE O A a be 1 ECHO abcdef 6 i ECHO 6 undef i ECHO 1 2 3 4 5 6 7 8 8 ECHO O 0 0 1 1 0 1 1 4 1 ECHO 1 0 2 f This function allows e g the parsing of an array a vector or a string Usage examples TOR eh ee ee RSS ee EE ES BE S SO RODS S A A A
21. 6 atan 5 16 7 atan2 5 17 Other Mathematical Functions 5 17 1 abs 5 17 2 ceil 5 17 3 cross 5 17 4 exp 22 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa 5 17 5 floor 5 17 6 In 5 17 7 len 5 17 8 log 5 17 9 lookup 5 17 10 max 5 17 11 min 5 17 12 norm 5 17 13 pow 5 17 14 rands 5 17 15 round 5 17 16 sign 5 17 17 sqrt 5 17 18 str 5 17 19 Also See searchQ 5 17 20 cube 5 17 21 sphere 5 17 22 cylinder 5 17 23 polyhedron 5 17 24 scale 5 17 25 resize 5 17 26 rotate 5 17 27 translate 5 17 28 mirror 5 17 29 multmatrix 5 17 30 color 5 17 31 minkowski 5 17 32 hull 5 17 33 union 5 17 34 difference 5 17 35 intersection 5 17 36 render 5 17 37 Background Modifier 5 17 38 Debug Modifier 5 17 39 Root Modifier 5 17 40 Disable Modifier 5 17 41 usage 5 17 42 children previously child 5 17 43 arguments 5 17 44 Special variables 5 17 44 1 fa fs and fn mw 5 17 44 2 t m 5 17 44 3 vpr and vpt 5 17 45 Echo Statements 23 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA m 5 17 46 Render m 5 17 47 Surface m 5 17 48 Search m 5 17 48 1 Search Usage m 5 17 48 2 Search Arguments m 5 17 48 3 Search Usage Examples m 5 17 48 3 1 Index values return as list 5 17 48 3 2 Search on different column return Index values m 5 17 48
22. De OpenSCAD iteration over a vector for i 0 5 translate 0 10 0 E l i l l l E l E l l l l l rotate i 360 6 1 0 07 l l sphere r 1 i l 1 l Y 1 15 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA OpenSCAD iteration over a range Usage example 2b iteration over a range specifying an increment Note The middle parameter in the range designation 0 2 in this case is the increment by value Warning Depending on the increment by value the real end value may be smaller than the given one tor 1 0 2 0 2 7057 rotate i 360 6 1 0 0 translate 0 10 0 sphere r 1 Usage example 3 iteration over a vector of vectors rotation for i tE 0 0 0 i 1 10 20 300 i H 200 40 57 l i 20 68 S71 1 i rotate i cube 100 20 20 center true OpenSCAD for loop rotation Usage example 4 iteration over a vector of vectors translation 16 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA EVO MZ TOI 20 24 20 30 36 301 20 48 401 10 60 50 X lt gt translate i cube 50 15 10 center true OpenSCAD for loop translation translate xpos ypos ypos 0 cube 0 5 0 5 0 5 I I
23. F6 found in the Design menu To combine the benefits of those two display methods you can selectively wrap parts of your program in a render function and force them to be baken into a mesh even with OpenCSG mode enabled Implementation Details 7 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa The acronym CGAL refers to The Open Source Computational Geometry Algorithms Library In CGAL mode the CGAL library is used to compute the mesh of the root object which is then displayed using simple OpenGL View options Show Edges Ctrl 1 If Show Edges is enabled both OpenCSG and CGAL mode will render edges as well as faces CGAL will even show vertices In CGAL grid mode this option has no effect OpenCsG Enabling this option shows the difference between OpenCSG and CGAL quite clearly While in CGAL mode you see an edge drawn everywhere it belongs OpenCSG will not show edges resulting from boolean operations this is because they were never explicitly calculated but are just where one object s Z The difference between the CGAL and clipping begins or ends OpenSCAD approaches can be seen at edges created by boolean operations Show Axes Ctrl 2 If Show Axes is enabled the origin of the global coordinate system will be indicated by an orthogonal axes indicator Additionally a smaller axes indicator with axes names will be shown in th
24. SS SS SS DS OERE A SN 1 mirror 0 1 0 1 4 pr Behe A yt ape Me ee Bn eA ec Men ng gs A A EEEE a EIA A NS A A r r 1 multmatrix m tranformationMatrix 4 y NS IN A RR ES O RI IS E REA a ARA AAN AN aa ya aaa oa a o OO O ORO OO OR NOOO o 1 icolor r g b a icolor R 255 G 255 B 255 al i icolor blue a Loi AAA O A A E A A A ANNA O A NA A AA EIA AEREA l Conditional and Iterator Functions a is 1 ifor lt loop_variable_name gt lt vector gt bee ee ee ee ee ee ee ee ee eB ee ee eB eee ee ee ee ee ee ee eB eee ee ee ee ee ee ee eB ee ee ee ee eB ee ee ee ee ee ee ee ee ee ee al Ae Be Rx MR Ra Na is 1 intersection_for lt loop_variable_name gt lt vector_of_vectors gt 4 AA E E E E O O O E O E E O A O al is 1 if lt boolean condition gt else An E E A al 125 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Peer ate ee ees Ses ee eee Fe NR ery eT eT EET RT OT E A A 1 idi f ference Lae Peer ee ae a eo Ses ee es SST ORGS See Te OR ET OP ee PT PT ETT GET ET TT he DE ee 1 intersection Porro ay Rp COIS o ee Cee eee eee a oe OL Oe eC Oe ee eee Oe 1 render convexity lt value gt i Modifier Characters PARRA REA AA ae e Se SSS SSS SSeS Sec AO E EEEE a a A SS A 1 i y Ignore the rest of the design and use this subtree as design root PE kee PE 7 Ignore this subtree i DL
25. Search Usage search match_value string_or_vector num_returns_per_match index_col num Search Arguments match_value Can be a single value or vector of values Strings are treated as vectors of characters to iterate over the search function does not search for substrings Note If match_value is a vector of strings search will look for exact string matches See Example 9 below string or_vector The string or vector to search for matches num_returns_per_match default 1 By default search only looks for one match per element of match_value to return 67 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa as a list of indices If num_returns_per_match gt 1 search returns a list of lists of up to num_returns_per_match index values for each element of match_value See Example 8 below If num_returns_per_match 0 search returns a list of lists of all matching index values for each element of match_value See Example 6 below index_col_num default 0 When string_or_vector is a vector of vectors multidimensional table or more complex list of lists construct the match_value may not be found in the first index_col_num 0 column See Example 5 below for a simple usage example Search Usage Examples See example023 scad included with OpenSCAD for a renderable example Index values return as list Exa
26. a 5 b 6 c 7 d 8 e 9 apple 10 a 11 1Search2 b zzz a c apple dog 12 search 1Search2 1Table2 echo str Default list string search lSearch2 12 al Returns A SS ka ll 1 I 1 ECHO Default list string search b zzz a c apple dog 1 1 4 2 9 3 l I e aeae E n a a aah a a aa aia at tt sh st st tah Sh She Sk ik nk nl inh nk nh sh Sh a Sank Sk ih i ht uh nh nk Si SS St Si a A ta a tt al Getting the right results 69 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o I 1 workout which vectors get the results http en wikibooks org w index php title OpenSCA WEL 0 2 p 3 e 9 n 4 S 5 C 6 A 7 D 8 recho v 0 jecho v 1 recho v 1 0 v 1 1 echo search p v echo search p v 0 iecho search 9 v 0 1 recho v search 9 v 0 1 0 echo v search 9 v 0 1 0 0 iecho v search 9 v 0 1 011 1 recho v search p v 1 0 0 1 iecho v search p v 1 0 0 0 techo v search d v 1 0 0 0 recho v search D v 1 0 0 1 OpenSCAD Version version and version_num will return OpenSCAD version number gt 0 2 gt p 3 an Se poa find p gt 1 gt 1 find 9 gt 2 gt e 9 gt a gt 9 gt 3 d not found gt undef The version function will return the OpenSCAD version as a
27. direction with respect to the axis of rotation the final solid after extrusion may end up invisible This problem can be checked for by flipping the polygon using scale 1 1 assuming that extrusion is being done about the Z axis as it is by default Notice Althought the 2D drawing commands operate in axes labeled as X and Y the extrusion commands implicitly translate these objects in X Z coordinates and rotate about the Z axis Example import_dxf DEPRECATED The import_dxfQ module will be removed in future releases Use import instead Read a DXF file and create a 2D shape Example l jLinear_extrude height 5 center true convexity 10 1 import_dxf file example009 dxf layer plate Using the projection function you can create 2d drawings from 3d models and export them to the dxf format It works by projecting a 3D model to the x y plane with z at 0 If cut true Only points with z 0 will be considered effectively cutting the object with cut false points above and below the plane will be considered as well creating a proper projection Example Consider example002 scad that comes with OpenSCAD 73 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Pa Then you can do a cut projection which gives you the slice of the x y plane with z 0 projection cut true example002 1 You can also do an
28. en wikibooks org w index php title OpenSCa polygon Create a polygon with the specified points and paths Parameters points vector of 2 element vectors ie the list of points of the polygon paths Either a single vector enumerating the point list ie the order to traverse the points or a vector of vectors ie a list of point lists for each seperate curve of the polygon The latter is required if the polygon has holes The parameter is optional and if omitted the points are assumed in order The pN components of the paths vector are 0 indexed references to the elements of the points vector convexity Integer Number of inward curves ie expected path crossings of an arbitraty line through the polygon 1 Polygon example 72 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa In this example we have 6 points three for the outer triangle and three for the inner one We connect each one with two 2 path In plain English each element of a path must correspond to the position of a point defined in the points vector e g 1 refers to 100 0 Notice In order to get a 3D object you either extrude a 2D polygon linear or rotation or directly use the polyhedron primitive solid When using extrusion to form solids its important to realize that the winding direction of the polygon is significant If a polygon is wound in the wrong
29. i fn is the number of fragments The default value is 0 When fa and fs are used to determine the number of fragments for a circle then OpenSCAD will never use less than 5 fragments OS A ON CRG ME Gy VE GRE Lee CRT GME GOMER MAG ood a neg oat g ek ga BCE Se hep igs tsp Sig oe A ue eee ae A Rg REG ee Ted A Sy 1 t The t variable is used for animation If you enable the animation frame with view gt animate and give a value for FPS and Steps the Time field shows the current value of t AAA Aa re er ap a O Ow Wa A ER AAA A NN AE EAS 1 function name lt var gt f lt var gt AAA eat A A ge ee ee eee ee eat Gl et a otal ce ad gd te WANs ah te ca ne a ae aa Ss a es NaN ne Nat Sass Wate Saw GY O O 1 iecho lt string gt lt var gt i ERRADA A e aa e araa aaa a aaa aaa BG r Bg aai aar ra a a aa a 1 render convexity lt val gt i TS O pains tgs ad ad eg tad bad og A O A CAS A ADERS e ETERS ga 4d pq EN Ogi IE N Oy PAA ESE EH ES Ca Sql es Pgo Rae Oy PYA PRASY On Rg Eu EG nen BR EY UE EQS TT tp Hy ty hy ky he ty ky 1 isurface file filename dat center lt boolean gt convexity lt val gt 2D Primitives 7 O ESA Gyles Og ey Egos By ey Bei es Se eR PES Ce Sy PA ES Se OS SHES O 1 isquare size lt val gt center lt boolean gt i isquare size x y center lt boolean gt i WE Be Tae Ga EEN EA NN CPAP EG ES SH ER ERY By CAEI A A eats Ug ts ESTA OS 1 icircle r lt val gt EFRON A A A e E o Es e
30. php title OpenSCA inmake f Makefile i I 1 This should produce a number of test exe files in your directory Now run If you have link problems see Troubleshooting below Troubleshooting Linker errors If you have errors during linking the first step is to improve debug logging and redirect to a file Open Openscad pro and uncomment this line You can use a program like less search with or wordpad to review the log To debug these errors you must understand basics about Windows linking Windows links to its standard C library with basic C functions like malloc But there are four different ways to do this as follows l compiler switch type linked runtime C library i MT Multithreaded static Release link to LIBCMT lib i MTd Multithreaded static Debug link to LIBCMTD 1lib MD Multithreaded DLL Release link to MSVCRT lib which itself helps link to the DLL 1 MDd Multithreaded DLL Debug link to MSVCRTD lib which itself helps link to the DLL l All of the libraries that are link together in a final executable must be compiled with the same type of linking to the standard C library Otherwise you get link errors like LNK2005 XXX is already defined in YYY But how can you track down which library wasn t linked properly 1 Look at the log and 2 dumpbin exe dumpbin exe dumpbin exe can help you determine what type of linking your lib or obj files were created with
31. since my_example stl was built based on their time stamps Only if that is the case it will build my_example stl again Automatic targets When building similar stl files from a single scad file there is a way to automate that too W match module foobar make me TARGETS shell sed Amodule a z0 9_ make me d s module s stl base scad all TARGETS 101 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa auto generated scad files with deps make make re build always keeping the scad files solves this problem explanations are welcome 1 SECONDARY shell echo TARGETS sed s stl scad g I I explicit wildcard expansion suppresses errors when no files are found tinclude wildcard deps l I vo scad 1 echo n use lt base scad gt n gt Li l stl scad 1 openscad m make o d deps lt All objects that are supposed to be exported automatically have to be defined in base scad in an own module with their future file name without the stl and have a comment like make me in the line of the module definition The tTarcets line picks these out of the base file and creates the file names These will be built when make a11 Or make for short is called As the convention from the last example is to create the stl files from scad files ofthe same
32. source code to see how it works if you have troubles This is a set of instructions for building OpenSCAD with the Microsoft Visual C compilers The build is as static as reasonable with no external DLL dependencies that are not shipped with Windows Note It was last tested on the Dec 2011 build Newer checkouts of OpenSCAD may not build correctly or require extensive modification to compile under MSVC OpenSCAD releases of 2012 were typically cross compiled from linux using the Mingw amp MXE system See Cross compiling for Windows on Linux or Mac OS X Downloads start by downloading m Visual Studio Express http download microsoft com download E 8 E E8EEB394 7F42 4963 A2D8 29559B738298 VS2008ExpressWithSP1ENUX1504728 iso m QT for vs2008 http get qt nokia com qt source qt win opensource 4 7 2 vs2008 exe m git http msysgit googlecode com files Git 1 7 4 preview20110204 exe m glew https sourceforge net projects glew files glew 1 5 8 glew 1 5 8 win32 zip download cmake http www cmake org files v2 8 cmake 2 8 4 win32 x86 exe boost http www boostpro com download boost_1_46_1_ setup exe m cgal https gforge inria fr frs download php 27647 CGAL 3 7 Setup exe m OpenCSG http www opencsg org OpenCSG 1 3 2 tar gz m eigen2 http bitbucket org eigen eigen get 2 0 15 zip gmp mpfr http holoborodko com pavel downloads win32_gmp_mpfr zip m MinGW http netcologne dl sourceforge net project mingw Automated 20MinGW
33. this will FAIL to be processed without any error message if a b dosomething CORRECT this will do something if a equals b l Usage example 18 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa if x gt y else cube size 2 center true i cube size 1 center false Assign Statement Set variables to a new value for a sub tree Parameters The variables that should be re assigned Usage example for i 10 50 1 1 l 1 l 1 l 1 l 1 l od i i assign angle i 360 20 distance i 10 r i 2 1 1 l l rotate angle 1 0 0 1 translate 0 distance 0 l sphere r r 1 i i 1 1 1 l i E Scalar Arithmetical Operators The scalar arithmetical operators take numbers as operands and produce a new number add subtract multiply divide modulo The can also be used as prefix operator to negate a number Relational Operators All relational operator take numbers as operands and produce a Boolean value The equal and not equal operators can also compare Boolean values 19 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA lt less than lt less equal equal l not equal gt greater equal gt greater than Logical Operators All logical operators take Boolean values as oper
34. to clean the STL file you have the following options use http wiki netfabb com Semi Automatic_Repair_Options This will repair the holes but not the self intersections use netfabb basic This free software doesnt have the option to close holes nor can it fix the self intersections use MeshLab This free software can fix all the issues Using MeshLab you can do Render Show non Manif Edges Render Show non Manif Vertices if found use Filters Selection Select non Manifold Edges or Select non Manifold Vertices Apply Close Then click button Delete the current set of selected vertices or check http www youtube com watch v oDx0Tgy0UHo for an instruction video The screen should show 0 non manifold edges 0 non manifold vertices Next you can click the icon Fill Hole select all the holes and click Fill and then Accept You might have to redo this action a few times Use File Export Mesh to save the STL import _stl lt DEPRECATED Use the command import instead gt Imports an STL file for use in the current OpenSCAD model Parameters lt file gt A string containing the path to the STL file to include lt convexity gt Integer The convexity parameter specifies the maximum number of front sides back sides a ray intersecting the object might penetrate This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron renderi
35. using I include lt ring scad gt wotate 90 0 07 ring 10 1 1 l would result in the example ring being shown in addition to the rotated ring but E A E E E E O E e E E O o E NT E TT NT TA E O 1 use lt ring scad gt i rotate 90 0 0 ring 10 1 1 i only shows the rotated ring Default variables in an include can be overridden for example lib scad G SS We OS A IA RR RR a a iat A a ee oo oS 1 d 1 k 3 module x i i echo hello world 1 t echo i i j j k k y i hello scad 7 Mg we pt pa et pe et PE me PE et we et Bt Shoat Mt ten Met tne tae SUR NN A RETO TE LEREV TERETE TERE E ee ee 1 J54 i include lt lib scad gt i x0 i i 5 1 xO i k j i xO Produces the following L AA AY P rE TN AA AA EA A MOS AI AA 1 ECHO hello world ECHO i 5 j 4 k 4 f 1ECHO hello world F ECHO i 5 j 4 k 4 1 ECHO hello world i ECHO i 5 j 4 k 4 i However placing j 4 after the include fails producing 1ECHO hello world ECHO i 5 j 4 k undef ECHO hello world ECHO i 5 j 4 k undef ECHO hello world 61 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Special variables All variables starting with a are special variables The semantic is similar to the special variables in lisp they have dynamic instead of lexical scopi
36. vector e g 2011 09 23 The version_num function will return the OpenSCAD version as a number e g 20110923 parent_module n and parent_modules parent_module contains the number of modules in the instantiation stack parent_module i returns the name of the module i levels about the current module in the instantiation stack The stack is independent on where the modules are defined It s where they re instantiated that counts This can be used to e g build BOMs Example module top children module middle children top middle echo parent_module 0 prints middle top middle echo parent_module 1 prints top Using the 2D Subsystem All 2D primitives can be transformed with 3D transformations Usually used as part of a 3D extrusion Although infinitely thin they are rendered with a 1 thickness square Creates a square at the origin of the coordinate system When center is true the square will 70 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA be centered on the origin otherwise it is created in the first quadrant The argument names are optional ifthe arguments are given in the same order as specified in the parameters Parameters size Decimal or 2 value array If a single number is given the result will be a square with sides of that length If a 2 value array is given then the va
37. would be nice to be able to get input into them instead of setting the values from code There are a few functions to read data from DXF files or you can set a variable with the D switch on the command line Getting a point from a drawing Getting a point is useful for reading an origin point in a 2D view in a technical drawing The function dxf_cross will read the intersection of two lines on a layer you specify and return the intersection point This means that the point must be given with two lines in the DXF file and not a point entity OriginPoint dxf_cross file drawing dxf layer SCAD Origin origin 0 0 scale 1 Getting a dimension value You can read dimensions from a technical drawing This can be useful to read a rotation angle an extrusion height or spacing between parts In the drawing create a dimension that does not show the dimension value but an identifier To read the value you specify this identifier from your script layer SCAD Origin origin 0 0 scale 1 l l i i TotalWidth dxf_dim file drawing dxf name TotalWidth Li l l l For a nice example of both functions see Example009 and the image on the homepage of OpenSCAD http www openscad org For Loop Iterate over the values in a vector or range Vector version for variable lt vector gt lt do_something gt lt variable gt is assigned to each successive value in the vector Range version for variable lt range gt
38. 10 30 30 10 50 30 10 50 E 1 Jliz E triangles E i 0 2 3 0 1 2 0 4 5 0 5 1 5 4 2 2 4 3 i 6 8 91 6 7 8 6 10 11 6 11 7 10 8 11 1 i 10 9 8 0 3 9 9 0 6 10 6 0 0 4 10 i 1 3 9 101 3 10 4 1 7 11 1 11 5 1 7 8 l i 1 8 2 2 8 11 2 11 5 1 1 i Li 7 l I l E 41 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Y x Polyhedron with badly oriented polygons A correct polyhedron would be the following polyhedron points 0 10 60 0 10 60 0 10 0 0 10 0 60 10 60 60 10 60 10 10 50 10 10 50 10 10 30 10 10 30 30 10 50 30 10 50 triangles 10 327 0 24 40 5 5 071 55 2 41 14 2 31 68 9 6 7 81 6 10 11 6 1 7 10 8111 10 9 8 3 0 9 9 0 6 10 6 0 0 4 10 3 9101 3 10 41 7 10 FA 11 51 61 8 7 2 8 1 182117 5 41 2 Beginner s tip If you don t really understand orientation try to identify the mis oriented pink triangles and then permute the references to the points vectors until you get it right E g in the above example the third triangle 0 4 5 was wrong and we fixed it as 4 0 5 In addition you may select Show Edges from the View Menu print a screen capture and number both the points and the triangles In our example the points are annotat
39. 17 November 2012 at 21 37 Text is available under the Creative Commons Attribution Share Alike License additional terms may apply By using this site you agree to the Terms of Use and Privacy Policy 128 sur 128 11 03 2014 10 03
40. 2 lib qnake mmake f Makefile Release Wait for the nmake to end There are usually a lot of non fatal warnings about the linker On success there will be an openscad exe file in the release folder Enjoy Building an installer Download and install NSIS from http nsis sourceforge net Download Put the FileAssociation nsh macro from http nsis sourceforge net File_Association in the NSIS Include directory C Program Files NSIS Include Run git submodule init and git submodule update to download the MCAD system https github com elmom MCAD into the openscad libraries folder Copy the OpenSCAD libraries and examples directory into the release directory Copy OpenSCAD s scripts installer nsi to the release directory m Right click on the file and compile it with NSIS It will spit out a nice easy installer Enjoy Compiling the regression tests Follow all the above steps build openscad run it and test that it basically works Install Python 2 x not 3 x from http www python org Install Imagemagick from http www imagemagick org m read openscad docs testing txt Go into your QT shell I iset PATH PATH C Python27 or your version of python icd c openscad tests cmake DCMAKE_BUILD_TYPE Release Edit the CMakeCache txt file search replace MD to MT icmake 117 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index
41. 9 Building OpenSCAD from Sources 9 1 Prebuilt binary packages 9 2 Building OpenSCAD yourself 9 2 1 Installing dependencies m 9 2 2 Building the dependencies yourself m 9 2 3 Build the OpenSCAD binary 9 3 Compiling the test suite 9 4 Troubleshooting 9 4 1 Errors about incompatible library versions m 9 4 2 OpenCSG didn t automatically build m 9 4 3 CGAL didn t automatically build 9 4 4 Compiling is horribly slow and or grinds the disk m 9 4 5 BSD issues m 9 4 6 Test suite problems 9 4 7 1 moved the dependencies I built and now openscad won t run m 9 5 Tricks and tips m 9 5 1 Reduce space of dependency build m 9 5 2 Preferences m 9 5 3 Setup environment to start developing OpenSCAD in Ubuntu 11 04 9 5 4 The Clang Compiler 9 6 Setup 9 7 Requirements 9 8 Build OpenSCAD 9 9 Downloads 9 10 Installing 9 11 Compiling Dependencies m 9 11 1 Qt m 9 11 2 CGAL 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o m 9 11 3 OpenCSG 9 11 4 OpenSCAD 9 12 Building an installer m 9 13 Compiling the regression tests 9 14 Troubleshooting m 9 14 1 CGAL m 9 14 2 References 10 Libraries 11 Library Locations 11 1 Setting OPENSCADPPATH 12 MCAD 13 Other Libraries 14 Command Glossary 14 1 Mathematical Operators 14 2 Mathematical Functions m 14 3 String Functions 14 4 Primitive Solids 14 5 Transformations 14 6 Conditional and Iterator Functions 14 7 CSG Mode
42. AA AAA A E AA E St Gh geo 1 istr2 4711 i for i 0 len str2 1 i i echo str digit i 1 str2 i i Results E EE aaa aaa NE aaa i E aa aa a 1 ECHO digit 1 4 ECHO digit 2 7 ECHO digit 3 1 1ECHO digit 4 1 Note that the len function is not defined when a simple variable is passed as the 30 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa parameter This is useful when handling parameters to a module similar to how shapes can be defined as a single number or as an x y z vector i e cube 5 or cube 5 5 5 For example 1 module dolt size I if len size undef size is a number use it for x y amp z or could be undef do size size size l i l else 1 size is a vector could be a string but that would be stupid Li Li 1 1 Li idoIt 5 equivalent to 5 5 5 l l Li l l l l l i l do size 1 l l l Li i Li doIt 5 5 5 similar to cube 5 v s cube 5 5 5 I I Mathematical logarithm See Logarithm lookup Look up value in table and linearly interpolate if there s no exact match The first argument is the value to look up The second is the lookup table a vector of key value pairs Parameters key A lookup key lt key value gt array keys and values Notes There is a bug where out of range keys will return the first value
43. AD_User_Manual Other_Language_Features Decimal This is the diameter of the sphere Note Requires version 2014 03 see 2 http www openscad org news htm fa Fragment angle in degrees fs Fragment size in mm fn Resolution Usage Examples isphere r isphere r isphere r nou ou uw 37 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa isphere d 2 i isphere d 10 i sphere d 20 I this will create a high resolution sphere with a 2mm radius isphere 2 fn 100 I will also create a 2mm high resolution sphere but this one does not have as many small triangles on the poles of the sphere isphere 2 fa 5 fs 0 1 Li Li sphere r 10 sphere r 5 sphere r 1 cylinder Creates a cylinder or cone at the origin of the coordinate system A single radius r makes a cylinder two different radi r1 r2 make a cone Parameters h Decimal This is the height of the cylinder Default value is 1 r Decimal The radius of both top and bottom ends of the cylinder Use this parameter if you want plain cylinder Default value is 1 r1 Decimal This is the radius of the cone on bottom end Default value is 1 r2 Decimal This is the radius of the cone on top end Default value is 1 d Decimal The diameter of both top and bottom ends of the cylinder Use this parameter if you want plain cylinder D
44. D User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa difference 1 original i cube size 2 2 2 object that carves out 1 translate 0 5 0 5 0 5 1 l cube size 1 1 3 i I I 1 I 1 I l Correct use of difference Here is a more tricky little example taken from the OpenSCAD http rocklinux net pipermail openscad 2009 December 000018 html Forum retrieved 15 13 22 March 2010 UTC module example1 cube 20 20 20 translate 20 20 0 cube 20 20 20 cube 50 50 5 center true i module example2 cube 20 1 20 1 20 translate 20 20 0 cube 20 1 20 1 20 cube 50 50 5 center true Example1 would render like this 96 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa L gt A not valid 2 manifold cube simple no The example1 module is not a valid 2 manifold because both cubes are sharing one edge They touch each other but do not intersect Examplez2 is a valid 2 manifold because there is an intersection Now the construct meets the 2 manifold constraint stipulating that each edge must connect exactly two facets Pieces you are subtracting must extend past the original part OpenSCAD Tip Manifold Space and Time http www iheartrobotics com 2010 01 openscad tip manifold space and time html retr
45. For example dumpbin exe all CGAL lib find i DEFAULTLIB Will give you a list of DEFAULTLIB symbols inside of CGAL lib Look for LIBCMT LIBCMTD MSVCRT or MSVCRTD That will tell you according to the above table whether it was built Static Release Static Debug DLL Release or DLL Debug DLL of course means Dynamic Link Library in this conversation This can help you track down for example linker errors 118 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa about conflicting symbols in LIBCMT and LIBCMTD dumpbin exe can also help you understand errors involving unresolved external symbols For example if you get an error about unresolved external symbol ___GLEW_NV_occlusion_query but your VERBOSE error log says the program linked in glew32 lib then you can dumpbin exe all glew32 lib find i occlusion to see if the symbol is actually there You may see a mangled symbol with _ impl which gives you another clue with which you can google In this particular example glew32s lib s static should have been linked instead of glew32 lib CGAL CGAL vc90 mt s lib After compilation it is possible that you might get a file named CGAL vc90 mt 1ib OY CGAL vc90 mt gd lib instead of CGAL vc90 mt s lib There are many possibilities you accidentally built the wrong version or you may have built the right version and VCExpress named it wrong To doubl
46. If you need it inside the for loop for example you need to use the assign module Undefined variable A non assigned variable has a special value undef It could be tested in conditional expression and returned by a function Example I i 1 echo Variable a is a output Variable a is undef 1 if a undef echo Variable a is tested undefined i I I I I I 1 I function not_useful undef not really useful echo Function returns not_useful output Function returns undef Output Variable a is undef Variable a is tested undefined Function returns undef Numeric A variable could be a numerical value integer float Vectors Variables can be grouped together into Vectors by using brackets Vectors are useful when dealing with X Y and Z coordinates or sizes Example l l i deck 64 89 18 cube deck l l Output A cube with the sizes X 64 Y 89 Z 18 Vectors selection You can also refer to individual values in a vector with vector number number starts from 0 10 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA Example translate 0 0 deck 2 cube deck I I 1 deck 64 89 18 l l Output The same cube as the previous example would be raised by 18 on the Z axis since vector indices are numbered 0 1 2 for X Y Z respectively Matrix A matrix
47. Note that if you want to then build linux binaries you should log out of your shell and log back in The setenv scripts as of early 2013 required a clean shell environment to work If you wish to cross build manually please follow the steps below and or consult the release common sh source code Setup The easiest way to cross compile OpenSCAD for Windows on Linux or Mac is to use mxe M cross environment You will need to install git to get it Once you have git navigate to where you want to keep the mxe files in a terminal window and run replacing lt where mxe is installed gt with the appropriate path Requirements The requirements to cross compile for Windows are just the requirements of mxe They are listed along with a command for installing them here http mxe cc requirements You don t need to type make this will make everything and take up gt 10 GB of diskspace You can instead follow the next step to compile only what s needed for openscad Now that you have the requirements for mxe installed you can build OpenSCAD s dependencies CGAL Opencsg MPFR and Eigen2 Just open a terminal window navigate to your mxe installation and run 111 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA This will take a few hours because it has to build things like gcc qt and boost Just go calibrate your printer or something while you wa
48. OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa OpenSCAD User Manual Print version Table of Contents Introduction First Steps The OpenSCAD User Interface The OpenSCAD Language General Mathematical Operators Mathematical Functions String Functions Primitive Solids Transformations Conditional and Iterator Functions CSG Modelling Modifier Characters 10 Modules 11 Include Statement 12 Other Language Feature 5 Using the 2D Subsystem 1 2D Primitives 2 3D to 2D Projection 3 2D to 2D Extrusion 4 DXF Extrusion 5 Other 2D formats 6 STL Import and Export 1 STL Import 2 STL Export 7 Commented Example Projects Using OpenSCAD in a command line environment 9 Building OpenSCAD from Sources 1 Building on Linux UNIX 2 Cross compiling for Windows on Linux or Mac OS X 3 Building on Windows 4 Building on Mac OS X 10 Libraries 11 Glossary 12 Index PwDNY OONODUBWN FE 00 1 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Introduction OpenSCAD is a software for creating solid 3D CAD objects It is free software http www gnu org philosophy free sw html and available for GNU Linux http www gnu org MS Windows and Apple OS X Unlike most free software for creating 3D models such as the well known application Blender http www blender org
49. S a 1 Usage example i a eae e E E R E E E eee E E aaa ee eee eee eres ease eee eee J usage Defining your own module roughly comparable to a macro or a function in other languages is a powerful way to reuse procedures P EE E E SEE E N E N E E E E EE E EEE E EE E E he module hole distance rot size rotate a rot v 1 0 0 translate 0 distance 0 cylinder r size h 100 center true 57 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa In this example passing in the parameters distance rot and size allow you to reuse this functionality multiple times saving many lines of code and rendering your program much easier to read You can instantiate the module by passing values or formulas for the parameters just like a C function call l i l hole 0 90 10 l l children previously child Remark child is deprecated and should be replaced by children with same parameters except child without parameters that should be replaced by children 0 The latest stable release 2013 06 still uses child The child nodes of the module instantiation can be accessed using the children statement within the module Parameters empty select all the children index integer select one child at index value index start at 0 and should be less than children 1 vector vector of integer select child
50. View menu Most of the options described here are available using shortcuts as well Render modes OpenCSG F9 This method produces instantaneous results but has low frame rates when working with highly nonconvex objects Note that selecting the OpenCSG mode using F9 will switch to the last generated OpenCSG view but will not re evaluate the source code You may want to use the Compile function F5 found in the Design menu to re evaluate the source code build the OpenCSG objects and then switch to OpenCSG view Implementation Details In OpenCSG mode the OpenCSG library http opencsg org is used for generating the visible model This library uses advanced OpenGL features 2 0 like the Z buffer and does not require an explicit description of the resulting mesh instead it tracks how objects are to be combined For example when rendering a spherical dent in a cube it will first render the cube on the graphics card and then render the sphere but instead of using the Z buffer to hide the parts of the sphere that are covered by the cube it will render only those parts of the sphere visually resulting in a cube with a spherical dent CGAL Surfaces and Grid F10 and F11 This method might need some time when first used with a new program but will then have higher framerates As before with OpenCSG F10 and F11 only enable CGAL display mode and don t update the underlying objects for that use the Compile and Render function
51. a single number i single_rand rands 0 10 1 0 i recho single_rand l l get a vector of 4 numbers seed 42 irandom_vect rands 5 15 4 seed jecho Random Vector random_vect for i 0 3 rotate 360 i 4 translate 10 random_vect i 0 0 I I I I I isphere r 5 i I I I sphere r random_vect i 2 i I 34 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa The round operator returns the greatest or least integer part respectively if the numeric input is positive or negative Some examples round x 5 x 1 wound x 49 x round x 5 x 1 round x 49 X iround 5 4 gt 5 round 5 5 gt 6 wound 5 6 gt 6 sign Mathematical signum function Returns a unit value that extracts the sign of a value see Signum function Parameters lt x gt Decimal Value to find the sign of Usage examples isign 5 0 sign 0 A sign 8 0 i sqrt Mathematical square root function 35 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Usage Examples Convert all arguments to strings and concatenate Usage examples inumber 2 echo This is number 3 and that s it echo str This is number 3 and that s it i l I I ECHO This is 2 3 and that s i
52. ands and produce a Boolean value amp amp Logical AND Logical OR Logical NOT Conditional Operator The operator can be used to conditionally evaluate one or another expression It works like the operator from the family of C like programming languages Conditional operator Usage Example sey a cot ea a late A O va vs a oy fy ea uy pas ds ona a A ms efi pun Ye Ya Se i eS on If a equals b then c is set to 4 else c is set to 5 The part a b must be something that evaluates to a boolean value Vector Number Operators The vector number operators take a vector and a number as operands and produce a new vector multiply all vector elements by number divide all vector elements by number 20 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Vector Operators The vector operators take vectors as operands and produce a new vector add element wise subtract element wise The can also be used as prefix operator to element wise negate a vector Vector Dot Product Operator The vector dot product operator takes two vectors as operands and produces a scalar sum of vector element products Matrix Multiplication Multiplying a matrix by a vector vector by matrix and matrix by matrix matrix vector multiplication Contents 1 Table of Contents 2 Introduction a 3 First Steps 3 1 Compiling and rende
53. ates to the surfaces of the polyhedron Parameters 39 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA points vector of points or vertices each a 3 vector triangles vector of point triplets each a 3 number vector Each number is the 0 indexed point number from the point vector faces this parameter will replace triangles Note Requires version 2014 03 vector of point n tuples with n gt 3 Each number is the 0 indexed point number from the point vector When referencing more than 3 points in a single tuple the points must all be on the same plane convexity Integer The convexity parameter specifies the maximum number of front sides back sides a ray intersecting the object might penetrate This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron rendering Syntax example polyhedron points x y z triangles p1 p2 p3 convexity N Triangle points ordering When looking at the face from the outside inwards the points must be clockwise You can rearrange the order of the points or the order they are referenced in each triangle triple The order of triangles is immaterial Note that if your polygons are not all oriented the same way OpenSCAD will either print an error or crash completely so pay attention to the vertex ordering Again rem
54. aying Building static libraries and Build type 115 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA Release to confirm the proper settings Also look for mt in the cxxrLacs line When it s done you can do the build You should now have a cGAL vc90 mt s 1ib file under C 1CGAL 3 711ib If not see Troubleshooting below OpenCSG Launch Visual Express lcd C OpenCSG 1 3 2 vcexpress OpenCSG sln i Substitute devenv for vcexpress if you are not using the express version i I Manually step through project upgrade wizard Make sure the runtime library settings for all projects is for Release not Debug m Click Build Configuration Manager Select Release from Configuration drop down menu Hit Close Make sure the runtime library setting for OpenCSG project is set to multi threaded static Open the OpenCSG project properties by clicking menu item Project gt OpenCSG Properties might be just Properties m Make sure it says Active Release in the Configuration drop down menu Click Configuration Properties gt C C gt Code Generation m Make sure Runtime Library is set to Multi threaded MT m Click hit OK m Make sure the runtime library setting for glew_static project is set to multi threaded static In Solution Explorer OpenCSG pane click glew_static project Open the OpenCSG project properties by cl
55. bly slow and or grinds the disk It is recommended to have at least 1 2 Gbyte of RAM to compile OpenSCAD There are a few workarounds in case you don t The first is to use the experimental support for the Clang Compiler described below as Clang uses much less RAM than GCC Another workaround is to edit the Makefile generated by qmake and search replace the optimization flags 02 with 01 or blank and to remove any g debug flags from the compiler line as well as pipe If you have plenty of RAM and just want to speed up the build you can try a paralell multicore build with Where x is the number of cores you want to use Remember you need x times the amount of RAM to avoid possible disk thrashing The reason the build is slow is because OpenSCAD uses template libraries like CGAL Boost and Eigen which use large amounts of RAM to compile especially CGAL GCC may take up 107 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa 1 5 Gigabytes of RAM on some systems during the build of certain CGAL modules There is more information at StackOverflow com http stackoverflow com questions 3634203 why are templates so slow to compile BSD issues The build instructions above are designed to work unchanged on FreeBSD and NetBSD However the BSDs typically require special environment variables set up to build any QT project you can set them up automati
56. cally by running NetBSD 5 x requires a patched version of CGAL It is recommended to upgrade to NetBSD 6 instead as it has all dependencies available from pkgin NetBSD also requires the X Sets to be installed when the system was created or added later http ghantoos org 2009 05 12 my first shot of netbsd On OpenBSD it may fail to build after running out of RAM OpenSCAD requires at least 1 Gigabyte to build with GCC You may have need to be a user with staff level access or otherwise alter required system parameters The dependency build sequence has also not been ported to OpenBSD so you will have to rely on the standard OpenBSD system package tools in other words you have to have root Test suite problems Headless server The test suite will try to automatically detect if you have an X11 DISPLAY environment variable set If not it will try to automatically start Xvfb or Xvnc virtual X framebuffers if they are available If you want to run these servers manually you can attempt the following l Xvfb 5 screen O 800x600x24 8 1 DISPLAY 5 ctest l There are some cases where Xvfb Xvnc won t work Some older versions of Xvfb may fail and crash without warning Sometimes Xvfb Xvnc have been built without GLX OpenGL support and OpenSCAD won t be able to generate any images Image based tests takes a long time they fail and the log says return 11 108 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print ver
57. ching surfaces is correctly handled 92 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa I l i 1 translate 10 0 0 cube 10 cube 10 l l import Imports a file for use in the current OpenSCAD model Parameters lt file gt A string containing the path to the STL or DXF file Usage examples Notes In the latest version of OpenSCAD import is now used for importing both 2D DXF for extrusion and 3D STL files If you want to render the imported STL file later you have to make sure that the STL file is clean This means that the mesh has to be manifold and should not contain holes nor self intersections If the STL is not clean you might get errors like CGAL error in CGAL_Build_PolySet CGAL ERROR assertion violation Expr check_protocoll File home don openscad_deps mxe usr i686 pc mingw32 include CGAL Polyhedron_incremental_builder_3 h Line 199 or CGAL error in CGAL_Nef_polyhedron3 CGAL ERROR assertion violation Expr pe_prev gt is_border Q tinternal Plane_constructor lt Plane gt get_plane pe_prev gt facet pe_prev gt facet gt plane File home don openscad_deps mxe usr i686 pc mingw32 include CGAL Nef_3 93 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa polyhedron_3_to_nef_3 h Line 253 In order
58. cripts setenv unibuild sh script After completion re check while running under the same shell with the same environment variables set to see if it worked 104 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA Build the OpenSCAD binary Once you have either downloaded or built the dependencies you can build OpenSCAD o 3 D D o 3 Q 3 y gt 4 Li Q A a D iv 3 a E 3 O o ka x lt o 5 a E un S m ey E ha o 3 You can also install OpenSCAD to usr local if you wish The openscad binary will be put under usr local bin the libraries and examples will be under something like usr local share openscad possibly depending on your system Note that if you have previously installed a binary linux package of openscad you should take care to delete usr local lib openscad and usr local share openscad because they are not the same paths as what the standard qmake built install target uses If you prefer not to install you can run openscad directly whilst still in the openscad directory Compiling the test suite OpenSCAD comes with over 740 regression tests To build and run them it is recommended to first build the GUI version of OpenSCAD by following the steps above including the downloading of MCAD Then from the same login run these commands 105 sur 128 11 03 2014 10 03 O
59. cters are used to change the appearance or behaviours of child nodes They are particularly useful in debugging where they can be used to highlight specific objects or include or exclude them from rendering Advanced concept As OpenSCAD uses different libraries to implement capabilities this can introduce some inconsistencies to the F5 preview behaviour of transformations Traditional transforms translate rotate scale mirror amp multimatrix are performed using OpenGL in preview while other more advanced transforms such as resize perform a CGAL operation behaving like a CSG operation affecting the underlying object not just transforming it In particular this can affect the display of modifier characters specifically and where the highlight may not display intuitively such as highlighting the pre resized object but highlighting the post scaled object Note The color changes triggered by character modifiers will only be shown in Compile mode not Compile and Render CGAL mode As per the color section Background Modifier Ignore this subtree for the normal rendering process and draw it in transparent gray all transformations are still applied to the nodes in this tree Because the marked subtree is completely ignored it might have unexpected effects in case it s used for example with the first object in a difference In that case this object will be rendered in transparent gray but it will not be the base for
60. ctor ie oe ee ee aye ER AT Ree PT RPT PT RPT RPT PT RES oe 3s 2 gp Ny 1 1 linear_extrude height 10 center true convexity 10 scale 3 translate 2 0 0 i circle r 1 i A SAR a a a 1 4 eee eee aE Petr eta ee rete io a at i l i linear_extrude height 10 center true convexity 10 scale 1 5 fn 100 i translate 2 0 0 i circle r 1 i Li l 81 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Rotate Extrude A rotational extrusion is a Linear Extrusion with a twist literally Unfortunately it can not be used to produce a helix for screw threads as the 2D outline must be normal to the axis of rotation ie they need to be flat in 2D space Examples A simple torus can be constructed using a rotational extrude 82 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA De a ee ee A E E ee Oe E ES 1 irotate_extrude convexity 10 ttranslate 2 0 01 icircle r 1 Mesh Refinement Increasing the number of fragments that the 2D shape is composed of will improve the quality of the mesh but take longer to render PP SeS eee aoe ae ecmennuEcE Se eeueoueeeues sues seEeceomanand a rotate_extrude convexity 10 translate 2 0 0 i icircle r 1 fn 100 a 1 I The number of fragments used by the extrus
61. d Y If this is all a bit confusing this might or might not help For the case of a is a rotation about the X axis from the Z axis toward the Y axis NOTE NEGATIVE Y b is a rotation about the Y axis from the Z axis toward the X axis c is a rotation about the Z axis from the X axis toward the Y axis Thus if a is fixed to zero and b and c are manipulated appropriately this is the spherical coordinate system 47 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa So to construct a cylinder from the origin to some other point x y z Length sqrt pow x 2 pow y 2 pow z 2 b acos z length c x 0 90 x gt 0 atan y x atan y x 180 rotate 0 b c cylinder h length r 0 5 rotate with a single scalar argument rotates around the Z axis This is useful in 2D contexts where that is the only axis for rotation For example translate Translates moves its child elements along the specified vector The argument name is optional IExample LS A a eS a GG A pe E a Ep ge A TR Ro ee mE a CME D OMEN CATT RTE CRT CRS A A OR CRED OR CATS Pe CRED Caos FD NOD MONS Ve VS he 1 translate v x y z 4 ay a etapa a ee eee a a a ae a ae ate ee ne ree tee 1 cube 2 center true i translate 5 0 0 i sphere 1 center true I cube 2 center true translate 5 0 0 sphere
62. d deal of fiddling and is untested although eventually it is planned to move in this direction as the BSDs not to mention OSX are moving towards favoring clang as their main compiler OpenSCAD includes convenience scripts to cross build Windows installer binaries using the MXE system http mxe cc If you wish to use them you can first install the MXE Requirements such as cmake perl scons using your system s package manager click to view a complete list of requirements http mxe cc requirements Then you can perform the following commands to download OpenSCAD source and build a windows installer 110 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title 0penSCA I git clone https github com openscad openscad git 1 cd openscad i y source scripts setenv mingw xbuild sh i i scripts mingw x build dependencies sh 1 scripts release common sh mingw32 i I The x build dependencies process takes several hours mostly to cross build QT It also requires several gigabytes of disk space If you have multiple CPUs you can speed up things by running export NUMCPU x before running the dependency build script By default it builds the dependencies in HOME openscad_deps mxe You can override the mxe installation path by setting the BASEDIR environment variable before running the scripts The OpenSCAD binaries are built into a separate build path openscad mingw32
63. d in a similar way Setting it to 10 should work fine for most cases Extrude parameters for linear extrusion only height The extrusion height center if true the solid will be centered after extrusion twist The extrusion twist in degrees slices Similar to special variable fn without being passed down to the child 2D shape scale Scales the 2D shape by this value over the height of the extrusion 85 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA With the import and extrusion statements it is possible to convert 2D objects read from DXF files to 3D objects Linear Extrude Example of linear extrusion of a 2D object imported from a DXF file 1 Linear_extrude height fanwidth center true convexity 10 import file example009 dxf layer fan_top 1 Rotate Extrude Example of rotational extrusion of a 2D object imported from a DXF file l jrotate_extrude convexity 10 twist fanrot 1 import file example009 dxf layer fan_side origin fan_side_center l Getting Inkscape to work Inkscape is an open source drawing program Tutorials for transferring 2d DXF drawings from Inkscape to OpenSCAD are available here m http repraprip blogspot com 2011 05 inkscape to openscad dxf tutorial html Very simple http tonybuser com tag inkscape More complicated involves conversion to Postscript
64. e 0 0 0 i linear_extrude height 1000 center true convexity 10 twist 0 1 projection cut false intersection i 1 E rotate 0 90 0 1 linear_extrude height 1000 center true convexity 10 twist 0 i projection cut false l rotate 0 90 0 1 children 0 i Li l rotate 90 0 0 Bound i linear_extrude height 1000 center true convexity 10 twist 0 Ellipso 1 projection cut false i rotate 90 0 0 1 1 children 0 i i I Li Li gt 98 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa rotate 90 0 0 linear_extrude height 1000 center true convexity 10 twist 0 projection cut false rotate 90 0 0 intersection rotate 0 90 0 linear_extrude height 1000 center true convexity 10 twist 0 projection cut false rotate 0 90 0 children 0 rotate 0 0 0 linear_extrude height 1000 center true convexity 10 twist 0 projection cut false rotate 0 0 0 children 0 V Test module on ellipsoid itranslate 0 0 40 scale 1 2 31 sphere r 5 BoundingBox scale 1 2 3 sphere r 5 1 OpenSCAD can not only be used as a GUI but also handles command line arguments Its usage line says OpenSCAD 2013 05 has these options Openscad o output_file d deps_file m make_command D var val render cam
65. e PowderBlue LightBlue SkyBlue LightSkyBlue DeepSkyBlue DodgerBlue CornflowerBlue RoyalBlue Blue MediumBlue DarkBlue Navy MidnightBlue Reds IndianRed LightCoral Salmon DarkSalmon LightSalmon Red Crimson FireBrick DarkRed Chartreuse LawnGreen Lime LimeGreen PaleGreen LightGreen MediumSpringGreen SpringGreen MediumSeaGreen SeaGreen ForestGreen Green DarkGreen YellowGreen OliveDrab Olive DarkOliveGreen MediumAquamarine DarkSeaGreen LightSeaGreen DarkCyan Teal Oranges LightSalmon Coral Tomato OrangeRed DarkOrange Orange Yellow LightYellow LemonChiffon LightGoldenrodYellow PapayaWhip Moccasin PeachPuff PaleGoldenrod Khaki DarkKhaki Browns Cornsilk BlanchedAlmond Bisque NavajoWhite Wheat BurlyWood Tan RosyBrown SandyBrown Goldenrod DarkGoldenrod Peru Chocolate SaddleBrown Sienna Brown Maroon http en wikibooks org w index php title OpenSCA Snow Honeydew MintCream Azure AliceBlue GhostWhite WhiteSmok Seashell Beige OldLace FloralWhit Ivory AntiqueWh Linen LavenderB MistyRose Grays Gainsboro LightGrey Silver DarkGray Gray DimGray LightSlateG SlateGray DarkSlateG Black Here s a code fragment that draws a wavy multicolor object for i 0 36 for j 0 36 translate i j 0 51 sur 128 color 0 5 sin 10 1 2 0 5 sin 10 j 2 0 5 sin 10 it j 2 cube size 1 1 11 10 cos 10 i sin 10 j 11 03 2014 10 03 OpenSCAD User Manual P
66. e check and fix the problem you can do the following lcd C CGAL 3 7 lib idumpbin all CGAL vc90 mt lib find i DEFAULTLIB i if you have mt gd use that name instead A l I If this shows lines referencing LIBCMTD MSVCRT or MSVCRTD then you accidentally built the debug and or dynamic version and you need to clean the build and try to build again with proper settings to get the multi threaded static release version However if it just says LIBCMT then you are probably OK Look for another line saying DEFAULTLIB CGAL vc90 mt s If it is there then you can probably just rename the file and have it work Visual Studio build You can build CGAL using the GUI of visual studio as an alternative to nmake You have to use an alternate cmake syntax Type cmake by itself and it will give you a list of generators that are valid for your machine for example Visual Studio Express is cmake G Visual Studio 9 2008 That should get you a working s1n solution file Then run this Modify the build configure target to Release not Debug and change the properties of the projects to be MT multithreaded static builds This is the similar procedure used to build OpenCSG so refer to those instructions above for more detail 119 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Note for Unix users The MingW Shell Start Programs provide too
67. e e CHER RR tg ty kg ty US 1 polygon points x y paths p1 p2 p3 convexity N 3D to 2D Projection 127 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa I iprojection cut lt boolean gt 1 I l l linear_extrude height lt val gt center lt boolean gt convexity lt val gt twist lt degrees gt slices lt val gt fn l PAP AA A A Ap a a A 1 rotate_extrude convexity lt val gt fn DXF Extrusion a e e a 1 l linear_extrude file filename dxf layer layername height lt val gt center lt boolean gt convexity lt v l a aaa aa aa aaa aaa aaa a Se a SS a 1 irotate_extrude file filename dxf layer layername origin x y convexity lt val gt fn DX i l l les ew ew ew ew ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee eB eB ee eB eB eB eB ee ee ee ee eB eee ee ee ee ee ee ee ee ee ee ee ee eB eB eB AB all STL Import Ree a ae a aS BS Se iy SS SS aS eS A II AI pg Pl ee T 1 l l import_stl filename stl convexity lt val gt 1 l l Pee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee eB eee ee ee ee ew ee eB ee ee ee ee ee ee ee ee eB eB eB A l OpenSCAD User Manual Index Retrieved from http en wikibooks org w index php title OpenSCAD_User_Manual Print_version amp oldid 2443171 This page was last modified on
68. e lower left corner of the viewing area The smaller axes indicator is marked x y z and coloured red green blue respectively Show Crosshairs Ctrl 3 If Show Crosshairs is enabled the center of the viewport will be indicated by four lines pointing in the room diagonal directions of the global coordinate system This is useful when aligning the viewing area to a particular point in the model to keep it centered on screen during rotation Animation The Animate option adds an animation bar to the lower edge of the screen As soon as FPS and Steps are set reasonable values to begin with are 10 and 100 respectively the current Time is incremented by 1 Steps FPS times per second until it reaches 1 when it wraps back to 0 Every time Time is changed the program is re evaluated with the variable t set to the 8 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa current time Read more about how t is used in section Other_Language_Features View alignment The menu items Top Bottom Diagonal and Center Ctrl 4 Ctrl 5 Ctrl 0 Ctrl P align the view to the global coordinate system Top Bottom Left Right Front and Back align it in parallel to the axes the Diagonal option aligns it diagonally as it is aligned when OpenSCAD starts The Center option will put the coordinate center in the middle of the screen but not rotate the view
69. ecked Install MinGW Make sure you select the MSYS Basic System under components Extract downloaded win32_gmp_mpfr zip file to c win32_gmp_mpfr m Replace the mpfr and gmp h files in CGAL with the ones from win32_gmp_mpfr Delete or move to a temp folder all files in cGaL 3 7 auxiliary gmp include folder Copy all the h files in Cc win32_gmp_mpfr gmp Win32 Release tO CGAL 3 7 auxiliary gmp include Copy all the h files in c win32_gmp_mpfr mpfr Win32 Release tO CGAL 3 7 auxiliary gmp include m Replace the mpfr and gmp libs in CGAL with the ones from win32_gmp_mpfr Delete or move to a temp folder all 06 20 2011 libmpfr 4 lib is needed 7 19 11 i didnt need it files in cGAL 3 7 auxiliary gmp lib folder a Copy C win32_gmp_mpfr gmp Win32 Release gmp lib tO CGAL 3 7 auxiliary gmp lib E Copy C win32_gmp_mpfr mpfr Win32 Release mpfr lib tO CGAL 3 7 auxiliary gmp lib m Go into CGAL 3 7 auxiliary gmp lib and copy gmp 1lib tO gmp vc90 mt s lib and mpfr lib to mpfr vc90 mt s 1ib so the linker can find them in the final link of openscad exe To get OpenSCAD source code Open Git Bash or MingW Shell the installer may have put a shortcut on your desktop This launches a command line window m Type cd c to change the current directory Type git clone git github com openscad openscad git This will put OpenSCAD source into C openscad Where to put other files I put all the dependencies in C so for example C
70. ed in black and the triangles in blue Turn the object around and make a second copy from the back if needed This way you can keep track Clockwise Technique Orientation is determined by clockwise indexing This means that if you re looking at the 42 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa triangle in this case 4 0 5 from the outside you ll see that the path is clockwise around the center of the face The winding order 4 0 5 is clockwise and therefore good The winding order 0 4 5 is counter clockwise and therefore bad Likewise any other clockwise order of 4 0 5 works 5 4 0 amp 0 5 4 are good too If you use the clockwise technique you ll always have your faces outside outside of OpenSCAD other programs do use counter clockwise as the outside though Think of it as a Left Hand Rule If you hold the triangle and the fingers of your hand curls is the same order as the points then your thumb points outwards Polyhedron with badly oriented polygons Succinct description of a Polyhedron Li Points define all of the points vertices in the shape Triangles is a list of triangles that connect up the points vertices I Each point in the point list is defined with a 3 tuple x y z position specification Points in the point list are automatically given an identifier starting at zero for use in the triangle list
71. efault value is 1 Note Requires version 2014 03 see 3 http www openscad org news html d1 38 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Decimal This is the diameter of the cone on bottom end Default value is 1 Note Requires version 2014 03 see 4 http www openscad org news htmD d2 Decimal This is the diameter of the cone on top end Default value is 1 Note Requires version 2014 03 see 5 http www openscad org news htmD center boolean If true will center the height of the cone cylinder around the origin Default is false placing the base of the cylinder or r1 radius of cone at the origin fa Angle in degrees fs Angle in mm fn Resolution Usage Examples AAA 1 tcylinder h 10 r 20 icylinder h 10 r 20 fs 6 icylinder h 10 r1 10 r2 20 center false cylinder h 10 ri 20 r2 10 center true icylinder h 10 d 40 icylinder h 10 d 40 fs 6 cylinder h 10 d1 20 d2 40 center false cylinder h 10 di 40 d2 20 center true cylinder h 10 Fl 10 r2 20 E false ix La polyhedron cylinder h 10 r1 20 r2 10 center true cylinder h 10 Create a polyhedron with a list of points and a list of triangles The point list is all the vertices of the shape the triangle list is how the points rel
72. eigen2 C glew 1 5 8 C OpenCSG 1 3 2 114 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA tgz can be extracted with tar zxvf from the MingW shell or Windows tools like 7 zip Rename and move sub directories if needed I e eigen eigen 0938af7840b0 should become c eigen2 with the files like COPYING and CMakeLists txt directly under it c glew 1 5 8 should have include and lib directly under it Compiling Dependencies For compilation I use the QT Development Command Prompt Start gt Program Files gt Qt by Nokia v4 7 2 VS2008 OpenSource gt QT 4 7 2 Command Prompt Qt Qt needs to be recompiled to get a static C runtime build To do so open the command prompt and do Configure will take several minutes to finish processing After it is done open up the file Qt 4 7 2 mkspecs win32 msvc2008 qmake conf and replace every instance of MD with MT Then This takes a very very long time Have a nap Get something to eat On a Pentium 4 2 8GHZ CPU with 1 Gigabyte RAM Windows XP it took more than 7 hours that was with 02 turned off lcd C CGAL 3 7 i Iset BOOST_ROOT C boost_1_46_1 i icmake I 1 I I Now edit the cmakeCache txt file Replace every instance of m with mt Now look for a line like this CMAKE_BUILD_TYPE STRING Debug Change Debug tO Release Now re run cmake It should scroll by watch for lines s
73. ember that the pN components of the triangles vector are 0 indexed references to the elements of the points vector Example a square base pyramid polyhedron points 10 10 0 10 10 0 10 10 0 10 10 0 the four points at base triangles 0 1 4 1 2 4 2 3 4 3 0 4 each triangle side i I i I i I i I i I i I i I i 0 0 10 1 the apex point i I 1 0 31 2 1 31 two triangles for square base t 1 i I i I 40 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa e A simple polyhedron square based pyramid Ordering of triangle points An example of a more complex polyhedron and showing how to fix polyhedrons with badly oriented polygons When you select Thrown together from the view menu and compile the design not compile and render you will see a preview with the mis oriented polygons highlighted Unfortunately this highlighting is not possible in the OpenCSG preview mode because it would interfere with the way the OpenCSG preview mode is implemented Below you can see the code and the picture of such a problematic polyhedron the bad polygons triangles or compositions of triangles are in pink 1 1 l 1 l i Bad polyhedron 1 polyhedron i I 1 points i E O 10 60 0 10 60 0 10 0 CO 10 0 60 10 60 60 10 60 1 l 10 10 50 10 10 50 10 10 30 10
74. er true fn 100 rotate 90 0 0 cylinder h 4 r 0 9 center true fn 100 Convex hull of two cylinders Remark union is implicit when not used But it is mandatory for example in difference to group first child nodes into one difference Subtracts the 2nd and all further child nodes from the first one 1 Usage example idifference 1 i cylinder h 4 r 1 center true fn 100 A rotate 90 0 0 cylinder h 4 r 0 9 center true fn 100 1 I I l 53 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA intersection Creates the intersection of all child nodes This keeps the overlapping portion I Usage example tintersection i cylinder h 4 r 1 center true fn 100 I rotate 90 0 0 cylinder h 4 r 0 9 center true fn 100 54 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA render Always calculate the CSG model for this tree even in OpenCSG preview mode The convexity parameter specifies the maximum number of front sides back sides a ray intersecting the object might penetrate This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron rendering l Usage example render convexity 1 4 gt l Modifier chara
75. era translatex y z rotx y z dist camera eyex y z centerx y Z imgsize width height projection 0 rtho p ersp filename l openscad o output_file d deps_file 1 m make_command D var val filename l openscad s stl_file o off_file x dxf_file d deps_file 1 m make_command D var val filename Export options When called with the o option OpenSCAD will not start the GUI but execute the given file and export the to the output file in a format depending on the extension st1 off dxf 99 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa csg Some versions use s d o to determine the output file format instead check with openscad help If the option d is given in addition to an export command all files accessed while building the mesh are written in the argument of d in the syntax of a Makefile Camera and image output For 2013 05 the option to output a png image was added There are two types of cameras available for the generation of images The first camera type is a gimbal camera that uses Euler angles translation and a camera distance like OpenSCAD s GUI viewport display at the bottom of the OpenSCAD window There is a bug in the implementation of cmdline camera where the rotations do not match the numbers in the GUI This will be fixed i
76. es Also don t mix a Mingw windows cross build with your linux build process they use different environment variables and may conflict OpenCSG didn t automatically build If for some reason the recommended build process above fails to work with OpenCSG please file an issue on the OpenSCAD github In the meantime you can try building it yourself I 1 I I I 1 I 1 wget http ww opencsg org 0penCSG 1 3 2 tar gz 1 1 sudo apt get purge libopencsg dev libopencsg1 or your system s equivalent i tar xvf OpenCSG 1 3 2 tar gz cd OpencsG 1 3 2 1 edit the Makefile and remove example make 1 1 sudo cp d lib lib HOME openscad_deps lib i i sudo cp include opencsg h HOME openscad_deps include A l 1 I 1 106 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Note on Debian based systems such as Ubuntu you can add the install target to the OpenCSG Makefile and then use checkinstall to create a clean I i I install E THESE LINES PREFIXED WITH ONE TAB NOT SPACES 1 cp d lib lib usr local lib l cp include opencsg h usr local include 1 ldconfig E I I to create and install a clean package CGAL didn t automatically build If this happens you can try to compile CGAL yourself It is recommended to install to HOME openscad_deps and otherwise follow the build process as outlined above Compiling is horri
77. ewhere you must give the complete path Newer versions have predefined user libraries see the OpenSCAD_User_Manual Libraries page which also documents a number of library files included in OpenSCAD Windows and Linux Mac use different separators for directories Windows uses e g directory file ext while the others use e g directory file ext This could lead to cross platform issues However OpenSCAD on Windows correctly handles the use of so using in all include or use statements will work on all platforms Using include lt filename gt allows default variables to be specified in the library These defaults can be overridden in the main code An openscad variable only has one value during the life of the program When there are multiple assignments it takes the last value but assigns when the variable is first created This has an effect when assigning in a library as any variables which you later use to change the default must be assigned before the include statement See the second example below A library file for generating rings might look like this defining a function and providing an example ring scad l module ring r1 r2 h 1 difference cylinder r r1 h h translate 0 0 1 cylinder r r2 h h 2 w iring 5 4 10 I 60 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Including the library
78. files looping through and recreating them forever vpr and vpt These contain the current viewport rotation and translation at the time of doing the rendering Moving he viewport does not update them During an animation they are updated for each frame vpr shows rotation vpt shows translation i e won t be affected by rotate and zoom It s not possible to write to them and thus change the viewport parameters although that could be a decent enough idea Example which makes the cube change size based on the view angle if an animation loop is active which does not need to use the t variable You can also make bits of a complex model vanish as you change the view The menu command Edit Paste Viewport Rotation Translation copies the current value of the viewport but not the current vpr or vpt Echo Statements This function prints the contents to the compilation window aka Console Useful for debugging code Also see the String function str 64 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Numeric values are rounded to 5 significant digits The OpenSCAD console supports a subset of HTML markup language See here http qt project org doc qt 4 7 richtext html subset html for details Usage examples my_h 50 my_r 100 jecho This is a cylinder with h my_h and r my_r cylinder h my_h r my_r Re
79. h another helper script to assist in this process Note that this detects a lower bound on GLEW not the actual version you have If your system passes all checks continue to the Building OpenSCAD section below If you are missing libraries try to search your package manager to see if it might have them under different names If your package manager has the package but it is just too old then read the next section on building your own dependencies Building the dependencies yourself On systems that lack updated dependency libraries or tools you can download and build your own As of 2013 OpenSCAD comes with scripts that can do this automatically without interfering with any system libraries and without requiring root access by putting everything under HOME openscad_deps It however will not build X11 Qt4 gcc bash or other basics First set up the environment variables if you don t use bash replace source with a single ja If you only need CGAL or OpenCSG you can just run scripts uni build dependencies sh cgal or opencsg and it will only build a single library The complete download and build process can take anywhere from half an hour to several hours depending on your network connection speed and system speed It is recommended to have at least 1 5 Gigabyte of free disk space to do the full dependency build Each time you log into a new shell and wish to re compile OpenSCAD you need to re run the source s
80. i 6 80 0 0 cylinder h 200 r 10 acos Mathematical arccosine or inverse cosine expressed in degrees See Inverse trigonometric functions asin Mathematical arcsine or inverse sine expressed in degrees See Inverse trigonometric functions atan Mathematical arctangent or inverse tangent function Returns the principal value of the arc tangent of x expressed in degrees See Inverse trigonometric functions atan2 Mathematical two argument atan function taking y as its first argument Returns the principal value of the arc tangent of y x expressed in degrees See atan2 Other Mathematical Functions abs Mathematical absolute value function Returns the positive value of a signed decimal number Usage examples Li tabs 5 0 1 28 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o jabs 0 rabs 8 0 Mathematical ceiling function ceil x is the smallest integer not less than x See Ceil Function Cross http en wikibooks org w index php title OpenSCa Note Requires version 2014 Q1 see https raw github com openscad openscad master RELEASE_NOTES Calculates the cross product of two vectors in 3D space The result is a vector that is perpendicular to both of the input vectors Using invalid input parameters e g vectors with a length different from 3 or other types will produce an undefined result Usage examples recho cross 2 3 4 5
81. icking menu item Project gt OpenCSG Properties might be just Properties Make sure it says Active Release in the Configuration drop down menu m Click C C gt Code Generation Make sure Runtime Library is set to Multi threaded MT m Click hit OK Close Visual Express saving changes Build OpenCSG library You can use the GUI Build Build menu the Examples project might fail but glew and OpenCSG should succeed Alternatively you can use the command line I cmd c vcexpress OpenCSG sIn build Again substitute devenv if you have the full visual studio I 116 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa The cmd c bit is needed otherwise you will be returned to the shell immediately and have to Wait for build process to complete there will be no indication that this is happening appart from in task manager OpenSCAD m Bison Flex Open the mingw shell and type mingw get install msys bison Then do the same for flex mingw get install msys flex Open the QT Shell and copy paste the following commands cd C openscad iset INCLUDE INCLUDE C CGAL 3 7 include C CGAL 3 7 auxiliary gmp include set INCLUDE INCLUDE C boost_1_46_1 C glew 1 5 8 include C OpenCSG 1 3 2 include C eigen2 iset LIB LIB C CGAL 3 7 1ib C CGAL 3 7 auxiliary gmp lib set LIB LIB C boost_1_46_1 lib C glew 1 5 8 lib C OpenCSG 1 3
82. ieved 18 40 22 March 2010 UTC For reference another situation that causes the design to be non exportable is when two faces that are each the result of a subtraction touch Then the error message comes up difference cube 20 10 10 translate 10 0 0 cube 10 difference 4 cube 20 10 10 cube 10 I i I translate 10 0 0 cube 10 1 cube 10 i l 97 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa create a dodecahedron by intersecting 6 boxes module dodecahedron height 1 it scale height height height scale by height parameter intersection make a cube cube 2 2 1 center true intersection_for i 0 4 loop i from 0 to 4 and intersect results make a cube rotate it 116 565 degrees around the X axis then 72 i around the Z axis rotate 0 0 72 i rotate 116 565 0 0 cube 2 2 1 center true create 3 stacked dodecahedra call the module with a height of 1 and move up 2 itranslate 0 0 2 dodecahedron 1 1 call the module with a height of 2 The Dode dodecahedron 2 from the call the module with a height of 4 and move down 4 ttranslate 0 0 4 dodecahedron 4 A A ee eee a Bounding Box VA OOO Rather kludgy module for determining bounding box from intersecting projections 1 module BoundingBox i A i i intersection 1 translat
83. implement capabilities this can introduce some inconsistencies to the F5 preview behaviour of transformations Traditional transforms translate rotate scale mirror amp multimatrix are performed using OpenGL in preview while other more advanced transforms such as resize perform a CGAL operation behaving like a CSG operation affecting the underlying object not just transforming it In particular this can affect the display of modifier characters specifically and where the highlight may not display intuitively such as highlighting the pre resized object but highlighting the post scaled object scale Scales its child elements using the specified vector The argument name is optional l Usage Example iscale v x y z 1 l l icube 10 translate 15 0 0 scale 0 5 1 2 cube 10 1 44 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa resize resize is available since OpenSCAD 2013 06 It modifies the size of the child object to match the given x y and z There is a bug with shrinking in the 2013 06 release that will be fixed in the next release Usage Example Li 1 resize the sphere to extend 30 in x 60 in y and 10 in the z directions resize newsize 30 60 10 sphere r 10 1 45 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w inde
84. in the following output from OpenSCAD 2010 02 Parsing design AST generation Compiling design CSG Tree generation Compilation finished Rendering Polygon Mesh using CGAL Number of vertices currently in CGAL cache 732 Number of objects currently in CGAL cache 12 Top level object is a 3D object I I I I I I I I I I I I I Li I I 1 Simple no lt kkkkkkkkkkkkkkkkk l l l l l l l l l l l l Li l l l l Valid yes Vertices 22 Halfedges 70 Edges 35 Halffacets 32 Facets 16 Volumes 2 Total rendering time 0 hours O minutes 0 seconds Rendering finished 90 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Manifold means that it is water tight and that there are no holes in the geometry Ina valid 2 manifold each edge must connect exactly two facets That means that the program must be able to connect a face with an object E g if you use a cube of height 10 to carve out something from a wider cube of height 10 it is not clear to which cube the top or the bottom belongs So make the small extracting cube a bit longer or shorter I 1 I 1 I 1 I 1 difference 1 original 1 i cube size 2 2 2 l object that carves out 1 1 translate 0 5 0 5 0 5 i i cube size 1 1 3 i i i Li Li I 1 l Li a Correct use of difference Here is a more tricky little examp
85. in the list Newer versions of Openscad should use the top or bottom end of the table as appropriate instead Usage example Will create a sort of 3D chart made out of cylinders of different height 200 5 1 1 i function get_cylinder_h p lookup p 1 50 20 1 l 31 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa 20 181 80 25 150 2 195 for i 100 5 100 echo i get_cylinder_h i translate i 0 30 cylinder r1 6 r2 2 h get_cylinder_h i 3 Las pa ia a il aaa OpenSCAD Look max Returns the maximum of the two parameters Parameters lt a gt Decimal lt b gt Decimal Usage Example I Mmax 3 0 5 0 max 8 0 3 0 I Returns the minimum of the two parameters Parameters lt a gt Decimal lt gt Decimal Usage Example min 3 0 5 0 Li 32 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA min 8 0 3 0 Results e SM a ES 1 3 0 3 0 Lo oking for mod it s not a function see modulo operator norm Note Requires version 2014 Q1 see https raw github com openscad openscad master RELEASE_NOTES Returns the euclidean norm of a vector Note this returns is the actual numeric length while len returns the number of elements in the vector or array U
86. ing the edges of an object From Wikipedia http en wikipedia org wiki Wire frame_model The OpenCSG View This view mode utilizes the open constructive solid geometry library to generate the model view utilizing OpenGL If the OpenCSG library is not available or the video card or drivers do not support OpenGL then this view will produce no visible output The thrown together view The thrown together view provides all the previous views in the same screen The OpenSCAD User Interface View navigation The viewing area is navigated primarily using the mouse Dragging with the left mouse button rotates the view along the axes of the viewing area It preserves the vertical axis direction Dragging with the left mouse button when the shift key is pressed rotates the view along the vertical axis and the axis pointing towards the user Dragging with the right mouse button moves the viewing area For zooming there are four ways using the scroll wheel dragging with the middle mouse button dragging with the right or middle mouse button and the shift key pressed m the keys and 6 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Rotation can be reset using the shortcut Ctrl 0 Movement can be reset using the shortcut Ctrl P View setup The viewing area can be configured to use different rendering methods and other options using the
87. ion can also be increased 83 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa irotate_extrude convexity 10 fn 100 i ttranslate 2 0 0 i icircle r 1 fn 100 1 I Extruding a Polygon Extrusion can also be performed on polygons with points chosen by the user Here is a simple polygon Note it has been rotated 90 degrees to show how the rotation will look the rotate_extrude needs it flat Here is the same polygon rotationally extruded and with the mesh refinement set to 200 The polygon must touch the rotational axis for the extrusion to work i e you can t build a polygon rotation with a hole 84 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa For more information on polygons please see 2D Primitives Polygon Description of extrude parameters Extrude parameters for all extrusion modes Integer The convexity parameter specifies the maximum number of front sides back sides a ray intersecting the object might penetrate ee This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron rendering This image shows a 2D shape with a convexity of 4 as the ray indicated in red crosses the 2D shape a maximum of 4 times The convexity of a 3D shape would be determine
88. is a vector of vectors cos angle sin angle i 1 sin angle cos angle i Output Define a 2D rotation matrix Strings Explicit double quotes or backslashes need to be escaped and respectively Other escaped special characters are newlines n tabs t and carriage returns 1 NB This behavior is new since OpenSCAD 2011 04 You can upgrade old files using the following sed command sed s non escaped scad gt escaped scad Example Output ECHO The quick brown fox jumps over the lazy dog The quick brown fox The lazy dog Output in OpenSCAD version 2013 02 28 ECHO The quick brown fox tjumps over the lazy dog The quick brown fox nThe lazy dog 11 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Variables are set at compile time not run time Because OpenSCAD calculates its variable values at compile time not run time the last variable assignment will apply everywhere the variable is used with some exceptions mentioned below It may be helpful to think of them as override able constants rather than as variables Example The value of a reflects only the last set value a 0 i 1 echo a i a 5 i i echo a A Output F EAT E A EEE A EEE E ATAN EE E OER EN E A AT RA ST TE A EREA EEEE OO IR NR AN 1 ECHO 5 i ECHO 5 i This also means that you can not reassign a variable i
89. it To speed things up you might want do something like make j 4 JOBS 2 for parallel building See the mxe tutorial http mxe cc tutorial for more details Optional If you want to build an installer you need to install the nullsoft installer system It should be in your package manager called nsis Build OpenSCAD Now that all the requirements have been met all that remains is to build OpenSCAD itself Open a terminal window and enter I git clone git github com openscad openscad git icd openscad I I git submodule init igit submodule update I again replacing lt where mxe is installed gt with the appropriate path Now to build OpenSCAD run I 1686 pc mingw32 qmake CONFIG mingw cross env openscad pro make I When that is finished you will have openscad exe in release and you can build an installer with it as described in the instructions for building with Microsoft Visual C described here http en wikibooks org wiki OpenSCAD_User_Manual Building_on_Windows Building_an_installer The difference is that instead of right clicking on the nsi file you will run 112 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Note that as of early 2013 OpenSCAD s scripts release common sh automatically uses the version of nsis that comes with the MXE cross build system so you may wish to investigate the release common sh
90. lat i translate 0 1 0 i cube i 1 else if roof pitched I rotate 90 0 0 i linear_extrude height 1 H 1 polygon points 0 0 0 1 0 5 1 5 1 1 1 0 paths 0 1 2 3 4 1 1 else if roof domical i 1 translate 0 1 0 1 union l l translate 0 5 0 5 1 sphere r 0 5 fn 20 i 1 cube 1 Er I I AAA A AAAA AAAA 4 And then use one of the following ways to supply the arguments 59 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa I 1 I 1 I l i i union 1 house i 1 translate 2 0 0 house pitched l translate 4 0 0 house domical 0 1 0 1 translate 6 0 0 house roof pitched paint 0 0 1 1 translate 8 0 0 house paint 0 0 0 roof pitched 1 E translate 10 0 0 house roof domical i 1 translate 12 0 0 house paint 0 0 5 0 5 E 1 i 1 1 l For including code from external files in OpenSCAD there are two commands available m include lt filename gt acts as if the contents of the included file were written in the including file and m use lt filename gt imports modules and functions but does not execute any commands other than those definitions Library files are searched for in the same folder as the design was open from or in the library folder of the OpenSCAD installation You can use a relative path specification to either If they lie els
91. lates two values for p but the program will ONLY display the final va There will be two executions of echo p inside test module but BOTH will display 12 because it is compiled value that was calculated inside the module Therefore both echo p statements will show the final value of 12 Remember that the test module final values for p will remain inside the module They do not contir ECHO 12 ECHO 12 The program has now finished test 8 and moves to the next command echo p Remember at compile that the pgm will show the FINAL values The first value of echo p would have However at compile time the final value of echo p was actually 6 Therefore 6 will be shown ECHO 6 module test q p 2 q echo p p 4 q echo p While this appears to be counter intuitive it allows you to do some interesting things For instance if you set up your shared library files to have default values defined as variables at their root level when you include that file in your own code you can re define or override those constants by simply assigning a new value to them Exception 2 See the assign which provides for a more tightly scoped changing of values Predefined variables ie Constants 13 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa PI is 3 14159 Getting input Now we have variables it
92. le taken from the OpenSCAD http rocklinux net pipermail openscad 2009 December 000018 html Forum retrieved 15 13 22 March 2010 UTC module example1 cube 20 20 20 translate 20 20 0 cube 20 20 20 cube 50 50 5 center true ha module example2 cube 20 1 20 1 20 translate 20 20 0 cube 20 1 20 1 20 cube 50 50 5 center true 91 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Example1 would render like this Lo A not valid 2 manifold cube simple no The example1 module is not a valid 2 manifold because both cubes are sharing one edge They touch each other but do not intersect Examplez2 is a valid 2 manifold because there is an intersection Now the construct meets the 2 manifold constraint stipulating that each edge must connect exactly two facets Pieces you are subtracting must extend past the original part OpenSCAD Tip Manifold Space and Time http www iheartrobotics com 2010 01 openscad tip manifold space and time html retrieved 18 40 22 March 2010 UTC For reference another situation that causes the design to be non exportable is when two faces that are each the result of a subtraction touch Then the error message comes up difference cube 20 10 10 translate 10 0 0 cube 10 difference cube 20 10 10 cube 10 simply tou
93. led every 1 FPS seconds with t incremented by 1 Steps for Steps times ending at either t 1 or t 1 1 steps If Dump Pictures is checked then images will be created in the same directory as the scad file using the following t values and saved in the following files t 0 Steps filename frame00001 png m t 1 Steps filename frame00002 png m t 2 Steps filename frame00003 png m m t 1 3 Steps filename frame lt Steps 2 gt png m t 1 2 Steps filename frame lt Steps 1 gt png 63 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa m t 1 1 Steps filename frame00000 png Or for other values of Steps it follows this pattern m t 0 Steps filename frame00001 png t 1 Steps filename frame00002 png m t 2 Steps filename frame00003 png m m t 1 3 Steps filename frame lt Steps 2 gt png m t 1 2 Steps filename frame lt Steps 1 gt png m t 1 1 Steps filename frame lt Steps 0 gt png t 1 0 Steps filename frame00000 png Which pattern it chooses appears to be an unpredictable but consistent function of Steps For example when Steps 4 it follows the first pattern and outputs a total of 4 files When Steps 3 it follows the second pattern and also outputs 4 files It will always output either Steps or Steps 1 files though it may not be predictable which When finished it will wrap around and recreate each of the
94. lling 14 8 Modifier Characters 14 9 Modules 14 10 Include Statement 14 11 Other Language Features 14 12 2D Primitives m 14 13 3D to 2D Projection 14 14 2D to 3D Extrusion 14 15 DXF Extrusion 14 16 STL Import 15 Index Trigonometric Functions cos Mathematical cosine function of degrees See Cosine Parameters lt degrees gt Decimal Angle in degrees Usage Example 26 sur 128 http en wikibooks org w index php title OpenSCA 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA for i 0 36 translate i 10 0 0 cylinder r 5 h cos i 10 50 60 OpenSCAD Cos Function sin Mathematical sine function See Sine Parameters lt degrees gt Decimal Angle in degrees Usage example 1 frernpmaer nearer POS as as ee tea ii il ROR TT Ce GT ETP GT TT SGT CTT SS I for i 0 5 echo 360 i 6 sin 360 i 6 80 cos 360 i 6 80 translate sin 360 i 6 80 cos 360 i 6 80 0 cylinder h 200 r 10 for i 0 36 translate i 10 0 0 cylinder r 5 h sin i 10 50 60 tan Mathematical tangent function See Tangent 27 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa Parameters lt degrees gt Decimal Angle in degrees Usage example for i 0 5 echo 360 i 6 tan 360 i 6 80 translate tan 360
95. ls like bash sed grep vi tar amp c The C drive is under c MingW has packages for example mingw get install msys unzip downloads and installs the unzip program Git contains some programs by default like perl The windows command shell has cut paste hit alt space You can also change the scrollback buffer settings References Windows Building OpenSCAD mailing list 2011 May http rocklinux net pipermail openscad 2011 May thread html C Run Time Libraries linking http msdn microsoft com en us library abx4dbyh v vs 80 aspx Microsoft com for Visual Studio 8 The older manual is good too here http msdn microsoft com en us library aa278396 VS 60 aspx m old nabble http old nabble com flex 2 5 35 1 isatty problem and solution td17659695 html on _isatty flex Windows vs Unix Linking dynamic load modules http xenophilia org winvunix html by Chris Phoenix m Static linking in CMAKE under MS Visual C http www cmake org Wiki CMake_FAQ How_can_I_build_my_MSVC_application_with_a_static_runtime 3F cmake org _ imp declspec dllimport and unresolved references http stackoverflow com questions 3704374 linking error Ink2019 in msvc unresolved symbols with imp prefix but should stackoverflow com For building OpenSCAD see https github com openscad openscad blob master README md For making release binaries see http svn clifford at openscad trunk doc checklist macosx txt
96. lues will correspond to the lengths of the X and Y sides Default value is 1 center Boolean This determines the positioning of the object If true object is centered at 0 0 Otherwise the square is placed in the positive quadrant with one corner at 0 0 Defaults to false Example circle Creates a circle at the origin of the coordinate system The argument name is optional Parameters r Decimal This is the radius of the circle The resolution of the circle will be based on the size of the circle If you need a small high resolution circle you can get around this by making a large circle then scaling it down by an appropriate factor or you could set fn or other special variables Default value is 1 d Decimal This is the diameter of the circle The resolution of the circle will be based on the size of the circle If you need a small high resolution circle you can get around this by making a large circle then scaling it down by an appropriate factor or you could set fn or other special variables Default value is 1 Note Requires version 2014 03 see 6 http www openscad org news htmD Examples 1 icircle r icircle d l Li scale 1 100 1 100 1 100 circle 200 this will create a high resolution circle with a 2mm radius icircle 2 fn 50 Another way to create a high resolution circle with a radius of 2 1 71 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http
97. mple Code Result 1 search a abcdabcd 0 2 search e abcdabcd 3 search a abcdabcd 0 0 4 search a a 1 b 2 c 3 d 4 a 5 0 4 see also 4 b 6 c 7 d 8 e 9 0 Example 6 below Search on different column return Index values Example 5 Returns 68 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Search on list of values Example 6 Return all matches per search vector element Returns OR ER E E eo E A ae ea Oe ee Ge Bn ES eR NN O Re gon gaa tg egy 1 y 0 4 1 5 2 6 Example 7 Return first match per search vector element special case return vector eee Let eee Lee Ceo eG TTA pT abe fee Te A A ley Soe cyte de A gt yeh ph A ue wee te Gp Prk ks LG 1 i search abc a 1 b 2 c 3 d 4 a 5 b 6 c 7 d 8 e 9 1 1 Returns A O We ARA A A Se A Se A ee Y 1 1 0 1 2 Example 8 Return first two matches per search vector element vector of vectors E Ea ee Pes Pe Be NN ANE NE ES a NANE VEY MENG VER aT e ATAS COL ST MEME T O COTA E FARAS Va ig AN VATENT VOR PRC VATE EA AAA A PEE OSS OOS A S 1 search abce a 1 b 2 c 3 d 4 a 5 b 6 c 7 d 8 e 9 Ty 2 Returns RR TO E a 1 0 4 1 5 2 6 8 Search on list of strings Example 9 NS IM eS 1 lTable2 cat 1 b 2 c 3 dog 4
98. n Select non Manifold Edges or Select non Manifold Vertices Apply Close Then click button Delete the current set of selected vertices or check http www youtube com watch v oDx0Tgy0UHo for an instruction video The screen should show 0 non manifold edges 0 non manifold vertices Next you can click the icon Fill Hole select all the holes and click Fill and then Accept You might have to redo this action a few times Use File Export Mesh to save the STL import _stl lt DEPRECATED Use the command import instead gt Imports an STL file for use in the current OpenSCAD model Parameters lt file gt A string containing the path to the STL file to include 89 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA lt convexity gt Integer The convexity parameter specifies the maximum number of front sides back sides a ray intersecting the object might penetrate This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron rendering Usage examples STL Export STL Export To export your design select Export as STL from the Design menu then enter a filename in the ensuing dialog box Don t forget to add the stl extension Trouble shooting After compile and render GCAL F6 you may see that your design is simple no That s bad news See line 8
99. n an upcoming release so that the GUI and cmdline camera variables will work identically The second camera type is a vector camera with an eye camera location vector and a lookat center vector imgsize chooses the png dimensions and projection chooses orthogonal or perspective as in the GUI By default cmdline png output uses Preview mode f5 with OpenCSG For some situations it will be desirable instead to use the full render with CGAL This is done by adding render as an option Constants In order to pre define variables use the p option It can be given repeatedly Each occurrence of b must be followed by an assignment Unlike normal OpenSCAD assignments these assignments don t define variables but constants which can not be changed inside the program and can thus be used to overwrite values defined in the program at export time If you want to assign the D variable to anther variable the D variable MUST be initialised in the main scad program paraml 0 must be initalised i len param1 paraml passed via D on cmd line i recho len param i I Li without the first line len wound be undefined The right hand sides can be arbitrary OpenSCAD expressions including mathematical 100 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa operations and strings Be aware that strings have to be enclosed in quotes
100. nder Forces the generation of a mesh even in preview mode Useful when the boolean operations become too slow to track Needs description Usage examples l render convexity 2 difference 4 i cube 20 20 150 center true i translate 10 10 0 i i cylinder h 80 r 10 center true 1 translate 10 10 40 i sphere r 10 i translate 10 10 40 sphere r 10 i i i Surface Example 1 1 l surface scad 1 isurface file surface dat center true convexity 5 i translate 0 0 5 cube 10 10 10 center true l l Hsurface dat 10987655555 3210 2100 ano KO w oh 1 0 65 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Fe sA Example 2 example010 dat generated using octave d sin 1 0 2 10 cos 1 0 2 10 10 save example010 dat d intersection surface file example010 dat center true convexity 5 rotate 45 0 0 1 surface file example010 dat center true convexity 5 66 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa N Search The search function is a general purpose function to find one or more or all occurrences of a value or list of values in a vector string or more complex list of list construct
101. ng 94 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o Usage examples STL Export To export your design select Export as STL from the Design menu then enter a filename in the ensuing dialog box Don t forget to add the stl extension Trouble shooting http en wikibooks org w index php title OpenSCa After compile and render GCAL F6 you may see that your design is simple no That s bad news See line 8 in the following output from OpenSCAD 2010 02 Parsing design AST generation Compiling design CSG Tree generation Compilation finished Rendering Polygon Mesh using CGAL Number of vertices currently in CGAL cache 732 Number of objects currently in CGAL cache 12 Top level object is a 3D object Simple Valid yes Vertices Halfedges Edges Halffacets Facets Volumes lt kkkkkkkkkkkkkkkkk Total rendering time 0 hours O minutes 0 seconds Rendering finished Manifold means that it is water tight and that there are no holes in the geometry Ina valid 2 manifold each edge must connect exactly two facets That means that the program must be able to connect a face with an object E g if you use a cube of height 10 to carve out something from a wider cube of height 10 it is not clear to which cube the top or the bottom belongs So make the small extracting cube a bit longer or shorter 95 sur 128 11 03 2014 10 03 OpenSCA
102. ng What that means is that they re effectively automatically passed onward as arguments Comparing a normal with a special variable normal 2 module doesnt_pass_it echo normal module normal_mod 4 doesnt_pass_it normal_mod normal 1 Should echo 2 special 3 another 5 module passes_it 4 echo special another module special_mod another 6 passes_it special_mod special 4 Should echo 4 6 So basically it is useful when you do not want to pass many parameters all the time fa fs and fn The fa fs and fn special variables control the number of facets used to generate an arc fa is the minimum angle for a fragment Even a huge circle does not have more fragments than 360 divided by this number The default value is 12 i e 30 fragments for a full circle The minimum allowed value is 0 01 Any attempt to set a lower value will cause a warning fs is the minimum size of a fragment Because of this variable very small circles have a smaller number of fragments than specified using fa The default value is 2 The minimum allowed value is 0 01 Any attempt to set a lower value will cause a warning fn is usually 0 When this variable has a value greater than zero the other two variables are ignored and full circle is rendered using this number of fragments The default value is 0 When fa and fs are used to determine the number of fragments for a circle then OpenSCAD will ne
103. nside an if block Example Output Compile Error Exception 1 This behavior is scoped to either the root or to a specific call to a module meaning you can re define a variable within a module without affecting its value outside of it However all instances within that call will behave as described above with the last set value being used throughout Example p 4 test 5 12 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa echo p we start with p 4 We step to the next command test 5 which calls the test module The test module calculates two values for p but the program will ONLY display the final value There will be two executions of echo p inside test module but BOTH will display 9 because it is i calculated value inside the module ECHO 9 ECHO 9 Even though the test module calculated value changes for p those values remained inside the module Those values did not continue outside the test module The program has now finished test 5 and mc The call echo p would normally display the original value of p 4 Remember that the program will only show the FINAL values It is the next set of commands that produce 47 p 6 test 8 echo p We now see p 6 which is a change from earlier We step to the next command test 8 which calls 1 Again the test module calcu
104. ooks o http en wikibooks org w index php title OpenSCA Center determines if the object is centered after extrusion so it does not extrude up and down from the center as you might expect center true ES eee ee ee ae ea ee eee ee eee oe oe eee ee ee ee ee eee ee ee ee ee eee eee ee i I Linear_extrude height 10 center true convexity 10 twist 500 ttranslate 2 0 0 i icircle r 1 o o atea ea 1 center false POSCSCOSSCCCS A SOS SESS Ee core oe ee a 4 1 linear_extrude height 10 center false convexity 10 twist 500 79 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa ttranslate 2 0 0 icircle r 1 1 Mesh Refinement The slices parameter can be used to improve the output e a eg ee a NA 1 Linear_extrude height 10 center false convexity 10 twist 360 slices 100 ttranslate 2 0 01 icircle r 1 The special variables fn fs and fa can also be used to improve the output PA nn A PA nn i l linear_extrude height 10 center false convexity 10 twist 360 fn 100 1 80 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa ttranslate 2 0 0 icircle r 1 I I Scales the 2D shape by this value over the height of the extrusion Scale can be a scalar or a ve
105. p environment to start developing OpenSCAD in Ubuntu 11 04 The following paragraph describes an easy way to setup a development environment for OpenSCAD in Ubuntu 11 04 After executing the following steps QT Creator can be used to graphically start developing debugging OpenSCAD m Add required PPA repositories 109 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa I I sudo apt get update sudo apt get install git build essential qtcreator libglew1 5 dev libopencsg dev libcgal dev libeigen2 1 I I I mkdir src cd src git clone https github com openscad openscad git cd src openscad qmake make Build OpenSCAD using QT Creator Just open the project file openscad pro CTRL O in QT Creator and hit the build all CTRL SHIFT B and run button CTRL R The Clang Compiler There is experimental support for building with the Clang compiler under linux Clang is faster uses less RAM and has different error messages than GCC To use it first of all you will need CGAL of at least version 4 0 2 as prior versions have a bug that makes clang unusable Then run this script before you build OpenSCAD Clang support depends on your system s QT installation having a clang enabled qmake conf file For example on Ubuntu this is under usr share qt4 mkspecs unsupported linux clang qmake conf BSD clang building may require a goo
106. penSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA cd tests mkdir build amp amp cd build cmake make ctest C All The file openscad doc testing txt has more information Full test logs are under tests build Testing Temporary A pretty printed index html web view of the tests can be found under a machine specific subdirectory thereof and opened with a browser Troubleshooting If you encounter any errors when building please file an issue report at https github com openscad openscad issues Errors about incompatible library versions This may be caused by old libraries living in usr local lib like boost CGAL OpenCSG etc often left over from previous experiments with OpenSCAD You are advised to remove them To remove for example CGAL run rm rf usr local include CGAL amp amp rm rf usr local lib CGAL Then erase HOME openscad_deps remove your openscad source tree and restart fresh As of 2013 OpenSCAD s build process does not advise nor require anything to be installed in usr local lib nor usr local include Note that CGAL depends on Boost and OpenCSG depends on GLEW interdependencies like this can really cause issues if there are stray libraries in unusual places Another source of confusion can come from running from within an unclean shell Make sure that you don t have LD_LIBRARY_PATH set to point to any old libraries in any strange plac
107. ren with index in vector Index should be between 0 and children 1 range lt start gt lt end gt or lt start gt lt increment gt lt end gt select children between lt start gt to lt end gt incremented by lt increment gt default 1 Number of module children is accessed by children variable Examples Transfer all children to another module module rz angle center undef translate center I I i rotate to other center point i I I 58 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa rotate angle translate center children i 7 rz 15 10 0 sphere 30 1 k Li I E l module lineup num space for i 0 num 1 i 1 translate space i 0 0 children 0 y E l E l E 1 E I E I lineup 5 65 sphere 30 If you need to make your module iterate over all children you will need to make use of the children variable e g ESETT A A ar ette A AA REE eee E ee ee a module elongate 4 1 for i 0 children 1 A i scale 10 1 1 children i o i elongate sphere 30 cube 10 10 10 cylinder r 10 h 50 arguments One can specify default values for the arguments a a a re ee ge ge ge ge ee ge ee eg ee ee O ng ee emp OO Ooh ERPs omy Oo a Ox ea Emp Ome Oxy Ps a es Pers ct ee ee oe my 1 i module house roof flat paint 1 0 0 i color paint 1 if roof f
108. ring our first model m 3 2 See also m 3 3 There is no semicolon following the translate command m 3 4 CGAL Surfaces 3 5 CGAL Grid Only m 3 6 The OpenCSG View m 3 7 The thrown together view 4 The OpenSCAD User Interface 4 1 View navigation m 4 2 View setup m 4 2 1 Render modes m 4 2 1 1 OpenCSG F9 4 2 1 1 1 Implementation Details a 4 2 1 2 CGAL Surfaces and Grid F10 and F11 4 2 1 2 1 Implementation Details m 4 2 2 View options 21 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA m 4 2 2 1 Show Edges Ctrl 1 4 2 2 2 Show Axes Ctrl 2 m 4 2 2 3 Show Crosshairs Ctrl 3 4 2 3 Animation 4 2 4 View alignment 5 The OpenSCAD Language 5 1 Comments 5 2 Variables 5 2 1 Undefined variable m 5 2 2 Numeric m 5 2 3 Vectors m 5 2 3 1 Vectors selection m 5 2 3 2 Matrix 5 2 4 Strings 5 2 5 Variables are set at compile time not run time m 5 2 5 1 Exception 1 m 5 2 5 2 Exception 2 5 2 6 Predefined variables ie Constants 5 3 Getting input 5 4 For Loop 5 5 Intersection For Loop 5 6 If Statement 5 7 Assign Statement 5 8 Scalar Arithmetical Operators 5 9 Relational Operators 5 10 Logical Operators 5 11 Conditional Operator 5 12 Vector Number Operators 5 13 Vector Operators 5 14 Vector Dot Product Operator 5 15 Matrix Multiplication 5 16 Trigonometric Functions m 5 16 1 cos 5 16 2 sin 5 16 3 tan 5 16 4 acos 5 16 5 asin 5 16
109. rint version Wikibooks o http en wikibooks org w index php title OpenSCa Being that 1 lt sin x lt 1 then 0 lt 1 2 sin x 2 lt 1 allowing for the RGB components assigned to color to remain within the 0 1 interval Chart based on Web Colors from Wikipedia http en wikipedia org wiki Web_colors minkowski Displays the minkowski sum http www cgal org Manual A 3 D multicolor sine wave flatest doc_html cgal_manual Minkowski_sum_3 Chapter_main html of child nodes Usage example Say you have a flat box and you want a rounded edge There are many ways to do this but minkowski is very elegant Take your box and a cylinder isfn 50 cube 10 10 1 i A box and a cylinder icylinder r 2 h 1 i fn 50 minkowski i i cube 10 10 1 I I I i i cylinder r 2 h 1 Minkowski sum of the box hull and cylinder Displays the convex hull http www cgal org Manual latest doc_html cgal_manual Convex_hull_2 Chapter_main html of child nodes Usage example E O SU NN AG RR E ne he A Pn REN CRTR CRT ORR CRT 1 hull translate 15 10 0 circle 10 circle 10 Potties ii ii Two cylinders 52 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa union Creates a union of all its child nodes This is the sum of all children I Usage example union i cylinder h 4 r 1 cent
110. s list I I i OPENSCADPATH data lib1 data lib2 OpenSCAD library path 1 data lib1 l data lib2 1 home user local share OpenSCAD libraries opt OpenSCAD libraries I I Setting OPENSCADPPATH MORE INFO ON HOW TO LOCATE THIS FUNCTION PLEASE done for Windows perhaps someone can do it for Linux Mac In Windows Environment Variables are set via the control panel select System then Advanced System Settings Click Environment Variables Create a new User Variable Or edit OPENSCADPATH if it exists MCAD OpenSCAD bundles the MCAD library https github com openscad MCAD There are many different forks floating around e g 7 https github com SolidCode MCAD 8 https github com elmom MCAD 9 https github com benhowes MCAD many of them unmaintained MCAD bundles a lot of stuff of varying quality including Many common shapes like rounded boxes regular polygons and polyeders in 2D and 3D Gear generator for involute gears and bevel gears m Stepper motor mount helpers stepper and servo outlines Nuts bolts and bearings m Screws and augers Material definitions for common materials Mathematical constants curves Teardrop holes and polyholes The git repo also contains python ncode to scrape OpenSCAD code a testing framework and SolidPython an external python library for solid cad 122 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o ht
111. sage examples NN 1 1a 1 2 3 4 b abcd i c i id 1 e 1 2 3 4 1 2 3 1 2 11 i techo norm a 5 47723 i recho norm b undef 1 jecho norm c 0 i echo norm d undef recho norm e 0 5 47723 1 echo norm e 1 3 74166 i echo norm e 21 2 23607 i recho norm e 3 1 1 Results r ee os EA Ee TP eT A GT ASS NS A 1 ECHO 5 47723 1ECHO undef ECHO 0 ECHO undef ECHO 5 47723 ECHO 3 74166 ECHO 2 23607 pow Mathematical power function Parameters 33 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa lt base gt Decimal Base lt exponent gt Decimal Exponent Usage examples for i 0 5 y translate i 25 0 0 4 1 cylinder h pow 2 i 5 r 10 echo i pow 2 i 1 l l techo pow 10 2 means 1042 or 10 10 result ECHO 100 l l iecho pow 10 3 means 1043 or 10 10 10 result ECHO 1000 l Random number generator Generates a constant vector of pseudo random numbers much like an array When generating only one number you still call it with variable 0 Parameters min_value Minimum value of random number range max value Maximum value of random number range value_count Number of random numbers to return as a vector seed_value optional Seed value for random number generator for repeatable results Usage Examples get
112. sion Wikibooks o http en wikibooks org w index php title OpenSCa Imagemagick may have crashed while comparing the expected images to the test run generated actual images You can try using the alternate ImageMagick comparison method by by erasing CMakeCache and re running cmake with DComPARATOR ncc This will enable the Normalized Cross Comparison method which is more stable but possibly less accurate and may give false positives or negatives Testing images fails with morphology not found for ImageMagick in the log Your version of imagemagick is old Upgrade imagemagick or pass DCOMPARATOR old to cmake The comparison will be of lowered reliability I moved the dependencies I built and now openscad won t run It isn t advised to move them because the build is using RPATH hard coded into the openscad binary You may try to workaround by setting the LD_LIBRARY_PATH environment variable to place yourpath lib first in the list of paths it searches If all else fails you can re run the entire dependency build process but export the BASEDIR environment variable to your desired location before you run the script to set environment variables Tricks and tips Reduce space of dependency build After you have built the dependencies you can free up space by removing the BASEDIR src directory where BASEDIR defaults to HOME openscad_deps Preferences OpenSCAD s config file is kept in config OpenSCAD OpenSCAD conf Setu
113. t ECHO This is 23 and that s it I Also See search search for text searching cube Creates a cube at the origin of the coordinate system When center is true the cube will be centered on the origin otherwise it is created in the first octant The argument names are optional if the arguments are given in the same order as specified in the parameters Parameters size Decimal or 3 value array If a single number is given the result will be a cube with sides of that length If a 3 value array is given then the values will correspond to the lengths of the X Y and Z sides Default value is 1 center Boolean This determines the positioning of the object If true object is centered at 0 0 0 Otherwise the cube is placed in the positive quadrant with one corner at 0 0 0 Defaults to false Usage examples l cube size 1 center false 36 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA icube size 1 2 3 center true 1 cube size 1 2 3 center true cube size 1 center false i sphere Creates a sphere at the origin of the coordinate system The argument name is optional Parameters r Decimal This is the radius of the sphere The resolution of the sphere will be based on the size of the sphere and the fa fs and fn variables For more information on these special variables look at OpenSC
114. the difference Usage example ht gt 55 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Example code difference start objects cylinder h 4 r 1 center true fn 100 first object that will subtracted rotate 90 0 0 cylinder h 4 r 0 3 center true fn 100 second object that will be subtracted rotate 0 90 0 cylinder h 4 r 0 9 center true fn 100 k Background modifier example Debug Modifier Use this subtree as usual in the rendering process but also draw it unmodified in transparent pink HA Cc un w oa D 0 x w 3 jo 9 difference start objects cylinder h 4 r 1 center true fn 100 first object that will subtracted rotate 90 0 0 cylinder h 4 r 0 3 center true fn 100 second object that will be subtracted tt rotate 0 90 0 cylinder h 4 r 0 9 center true fn 100 56 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA OpenScad Debug Modifier example Root Modifier Ignore the rest of the design and use this subtree as design root A ag A ARA AA RATE TT cE er E a PR OT LI Te 1 Usage example A week Disable Modifier Simply ignore this entire subtree Wee reo Pid fet ot oes ae eT Oe PT Se Se ee ee A A eee i a ee a ARAB
115. the traditional RGB values from 0 to 255 floating point values are used from 0 0 to 1 0 Usage example 1 changing the color of an object color 1 0 0 cube 2 3 4 4 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA translate 3 0 0 i color 0 1 0 cube 2 3 4 i translate 6 0 0 1 color 0 0 1 cube 2 3 4 i OpenSCAD changing the color of an object Color names can be used in the 2011 12 version and newer The names are the same used for Web colors http en wikipedia org wiki Web_colors For example color red cube If you think of the entire command as a sentence then color is an adjective that describes the object of the sentence which is a noun In this case the object is the cube to be created The adjective is placed before the noun in the sentence like so color cube In the same way translate can be thought of as a verb that acts upon the object and is placed like this translate color cube The following code will produce the same result translate 6 0 0 color 0 0 1 notice that there is NO semicolon cube 2 3 4 notice the semicolon is at the end of all related commands Changing the colors only works in Preview mode F5 Render mode F6 does not currently support color The openscad model view window provides a variety of view options CGAL Surfaces The surface
116. tp en wikibooks org w index php title OpenSCa Other Libraries BOLTS tries to build a standard part and vitamin library that can be used with OpenSCAD and other CAD tools 10 https github com jreinhardt BOLTS Obiscad contains various useful tools notably a framework for attaching modules on other modules in a simple and modular way 11 https github com Obijuan obiscad This library provides tools to create proper 2D technical drawings of your 3D objects 12 http www cannymachines com entries 9 openscad_dimensioned_drawings Stephanie Shaltes https plus google com u 0 101448691399929440302 wrote a fairly comprehensive fillet library https github com StephS i2_xends blob master inc fillets scad The shapes library http svn clifford at openscad trunk libraries shapes scad contains many shapes like rounded boxes regular polygons It is also included in MCAD Also Giles Bathgates shapes library https github com elmom MCAD blob master regular_shapes scad provides regular polygons and polyeders and is included in MCAD The OpenSCAD threads http dkprojects net openscad threads library provides ISO conform metric and imperial threads and support internal and external threads and multiple starts Sprockets for ANSI chains and motorcycle chains can be created with the Roller Chain Sprockets OpenSCAD Module http www thingiverse com thing 197896 Contains hard coded fudge factors may require
117. tweaking The Pinball Library http code google com p how to build a pinball source browse trunk scad pinball provides many components for pinball design work including models for 3d printing of the parts 3d descriptions of mount holes for CNC drilling and 2d descriptions of parts footprint For the generation of celtic knots there is the Celtic knot library https github com beanz celtic knot scad The 2D connection library https www youmagine com designs openscad 2d connection library helps with connections between 2D sheets which is useful for laser cut designs m local scad https github com jreinhardt local scad provides a flexible method for positioning parts of a design Is also used in BOLTS Command Glossary This is a Quick Reference a short summary of all the commands without examples just the basic syntax The headings are links to the full chapters Mathematical Operators 123 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o i also as unary negative 88 logical and I logical or logical not cos lt degrees gt isin lt degrees gt tan lt degrees gt asin lt value gt l acos lt value gt atan lt value gt atan2 lt y_value gt lt x_value gt l Len lt string gt len lt vector gt len lt vector_of_vectors gt min lt value1 gt lt value2 gt max lt value1 gt lt value2 gt
118. udo apt get install openscad i I His repositories for OpenSCAD and OpenCSG are here http archive amsuess com pool contrib o openscad and here http archive amsuess com pool main o opencsg There is also a generic linux binary package at http www openscad org that can be unpacked and run from within most linux systems It is self contained and includes the required libraries Building OpenSCAD yourself If you wish to build OpenSCAD for yourself start by installing git on your system using your package manager Git is often packaged under the name scmgit or git core Then get the OpenSCAD source code cd git clone https github com openscad openscad git cd openscad i l l git submodule init git submodule update 1 l l Installing dependencies Now download and install the dependency libraries and tools using your package manager This includes Qt4 CGAL GMP cmake MPFR boost OpenCSG GLEW Eigen2 GCC C Compiler Bison and Flex OpenSCAD comes with a helper script that will try to fetch and install these automatically for you note you must have sudo working for this script to work Now check the version numbers against the openscad README md file to see if the version numbers are high enough and that no packages were accidentally missed OpenSCAD 103 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA comes wit
119. ver use less than 5 fragments This is the C code that calculates the number of fragments in a circle 62 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA int get_fragments_from_r double r double fn double fs double fa l 1 l 1 l i i 1 if r lt GRID_FINE return 3 i if fn gt 0 0 return int fn gt 3 fn 3 i 7 return int ceil fmax fmin 360 0 fa r 2 M_PI fs 5 i 1 I 1 l l Spheres are first sliced into as many slices as the number of fragments being used to render a circle of the sphere s radius and then every slice is rendered into as many fragments as are needed for the slice radius You might have recognized already that the pole of a sphere is usually a pentagon This is why The number of fragments for a cylinder is determined using the greater of the two radii The method is also used when rendering circles and arcs from DXF files You can generate high resolution spheres by resetting the fX values in the instantiating module 5 Si E A MH E Sa Nag aed E OR ae amg amt o lll o E MO 1 l fs 0 01 i sphere 2 i sphere 2 fs fs 0 01 1 The t variable is used for animation If you enable the animation frame with view gt animate and give a value for FPS and Steps the Time field shows the current value of t With this information in mind you can animate your design The design is recompi
120. view as CGAL and STL F6 do not currently support color The alpha value will default to 1 0 opaque if not specified e e eee eee i I Usage example color r g b a l gt Note that the r g b a values are limited to floating point values in the range 0 0 1 0 rather than the more traditional integers 0 255 However you can specify the values as fractions e g for R G B integers in 0 255 you can use As of the 2011 12 version colors can also be chosen by name name is not case sensitive For example to create a red sphere you can use this code Alpha is also available with named colors ES 1 color Blue 0 5 cube 5 The available color names are taken from the World Wide Web consortium s SVG color list http www w3 org TR css3 color A chart of the color names is as follows note that both spelling of grey gray including slategrey slategray etc are valid Purples Blues Greens Yellows White Lavender Aqua GreenYellow Gold White 50 sur 128 11 03 2014 10 03 Thistle Plum Violet Orchid Fuchsia Magenta MediumOrchid MediumPurple BlueViolet DarkViolet DarkOrchid DarkMagenta Purple Indigo DarkSlateBlue SlateBlue MediumSlateBlue Pinks Pink LightPink HotPink DeepPink MediumVioletRed PaleVioletRed OpenSCAD User Manual Print version Wikibooks o Cyan LightCyan PaleTurquoise Aquamarine Turquoise MediumTurquoise DarkTurquoise CadetBlue SteelBlue LightSteelBlu
121. view is the initial model view that appears when the model code is first rendered CGAL Grid Only The Grid Only view presents only the scaffolding beneath the surface also known as a 5 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa wireframe Think of the Eiffel Tower A wire frame is a visual presentation of a three dimensional or physical object Using a wire frame model allows visualization of the underlying design structure of a 3D model Since wireframe renderings are relatively simple and fast to calculate they are often used in cases where a high screen frame rate is needed for instance when working with a particularly complex 3D model or in real time systems that model exterior phenomena When greater graphical detail is desired surface textures can be added automatically after completion of the initial rendering of the wireframe This allows the designer to quickly review changes or rotate the object to new desired views without long delays associated with more realistic rendering The wire frame format is also well suited and widely used in programming tool paths for DNC Direct Numerical Control machine tools Wireframe models are also used as the input for CAM computer aided manufacturing Wireframe is the most abstract and least realistic of the three main CAD models This method of modelling consists only of lines points and curves defin
122. w index php title OpenSCa Then press F5 to get a graphical preview of what you typed or press F6 to get a graphical view You get three types of movement in the preview frame 1 Drag with left mouse button to rotate the view The bottom line will change the rotate values 2 Drag with an other mouse button or control drag under OSX to translate move the view The bottom line will change translate values 3 Use the mouse scroll to zoom in and out Alternatively you can use the and keys or right drag with the mouse while pressing a shift key or control shift drag under OSX The Viewport line at the bottom of the window will show a change in the distance value We have already seen how to create a simple cuboid Our next task is to attempt to use the translate positioning command to place an identical cuboid next to the existing cuboid Usage example 1 positioning an object cube 2 3 4 translate 3 0 0 4 i cube 2 3 4 i A EEN EE A L T E Es OpenSCAD positioning an object There is no semicolon following the translate command Notice that there is no semicolon following the translate command This is because the translate command relates to the following object If the semicolon was not omitted then the effect of the position translation would end and the second cuboid would be placed at the same position as the first cuboid We can change the color of an object by giving it RGB values Instead of
123. wser A pt_BR translation of this document is avaliable on GitHub repository not completed on development 1 http www github com ubb3rsith OpenSCAD_doc_ptBR First Stepsen OpenSCAD User Manual Introduction First Steps For our first model we will create a simple 2 x 3 x 4 cuboid In the openSCAD editor type the following one line command Usage example 1 simple cuboid 2 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCA Compiling and rendering our first model OpenSCAD Simple Cuboid The cuboid can now be compiled and rendered by pressing F6 while the openSCAD editor has focus See also Positioning an object Open one of the many examples that come with OpenSCAD File Examples e g example004 scad Or you can copy and paste this simple example into the OpenSCAD window Usage example 1 example004 scad difference cube 30 center true sphere 20 translate 0 0 30 cylinder h 40 r 10 3 sur 128 De ph pe ye w apascas ze 04 26 woo apareces ow Cappa 10 OO A A ar ee ee ed y OpenSCAD after starting nd differencel cubeldo centerstrue sphere 20 translete o 0 301 4 cylinder h 40 1 10 a ers tt te te 0 0S A OpenSCAD after pasting the example code and pressing F5 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org
124. x php title OpenSCA tao 10 sphere r 10 1 resize the 1x1x1 cube to 2x2x1 mesize 2 2 0 cube 1 If the auto parameter is set to true it will auto scale any 0 dimensions to match For example 1 Y resize the 1x2x0 5 cube to 7x14x3 5 wmesize 7 0 0 auto true cube 1 2 0 5 Li The auto parameter can also be used if you only wish to auto scale a single dimension and leave the other as is Li 1 resize to 10x8x1 Note that the z dimension is left alone resize 10 0 0 auto true true false cube 5 4 1 l rotate Rotates its child a degrees about the origin of the coordinate system or around an arbitrary axis The argument names are optional if the arguments are given in the same order as specified above When a rotation is specified for multiple axes then the rotation is applied in the following order x y Z 46 sur 128 11 03 2014 10 03 OpenSCAD User Manual Print version Wikibooks o http en wikibooks org w index php title OpenSCa rotate a deg v x y 21 4 i For example to flip an object upside down you might do this The above example will rotate your object 180 degrees around the y axis The optional argument v allows you to set an arbitrary axis about which the object will be rotated Example with arbitrary origin This example will rotate your object 45 degrees around the axis defined by the vector 1 1 0 i e 45 around X and 45 aroun
Download Pdf Manuals
Related Search
Related Contents
Bedienungsanleitung Gartensonne elektrisch 2100 - Migros Kenwood KRC-21SA User's Manual Titolo Contributo per DIDAMATICA 2010 Samsung NT910S3GI User Manual (Windows 8) Husqvarna GTH2250 User's Manual H.T. SSA955_01_N2700es MANUAL DA AMASSADEIRA ASI 25 / ASI 40 STIHL FS 90 Product Instruction Manual Copyright © All rights reserved.
Failed to retrieve file