{"id":15048,"date":"2018-07-14T10:02:50","date_gmt":"2018-07-14T14:02:50","guid":{"rendered":"http:\/\/scruss.com\/blog\/?p=15048"},"modified":"2018-07-14T10:02:50","modified_gmt":"2018-07-14T14:02:50","slug":"thingiverse-customizer-a-tiny-guide","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2018\/07\/14\/thingiverse-customizer-a-tiny-guide\/","title":{"rendered":"Thingiverse Customizer: a tiny guide"},"content":{"rendered":"<p><a href=\"https:\/\/www.thingiverse.com\">Thingiverse<\/a>&#8216;s Customizer allows users to customize suitable <a href=\"http:\/\/www.openscad.org\/\">OpenSCAD<\/a> models without knowing any OpenSCAD code. While it does have some <a href=\"http:\/\/customizer.makerbot.com\/docs\">documentation<\/a> to help developers along, there&#8217;s still a lot of guesswork.<\/p>\n<p><a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15049\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30.png\" alt=\"\" width=\"972\" height=\"560\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30.png 972w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30-160x92.png 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30-320x184.png 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-07-14-09-37-30-768x442.png 768w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/a>I released my first (<em>working<\/em>!) Customizer design the other week: <a href=\"https:\/\/www.thingiverse.com\/thing:2984586\">Parametric Finger Pen Holder (Vertical)<\/a>. While the docs are the primary source of developer information, you might want to know the following:<\/p>\n<ul>\n<li>Customizer assumes that every variable defined before the first module definition in the script is a user parameter. To give it a hint that it should stop displaying variables, add an empty module (such as <tt>module naff() { }<\/tt>) after the last variable definition you want Customizer to display.<br \/>\n(There&#8217;s supposed to be a <em>CUSTOMIZER VARIABLES<\/em>\/<em>CUSTOMIZER VARIABLES END<\/em> comment pair that will do this too, but it didn&#8217;t work for me)<\/li>\n<li>Customizer will fail if there&#8217;s any character other than strict ASCII in the script, and won&#8217;t give useful diagnostics about the problem. Check your comments for accents and fancy punctuation<\/li>\n<li>Customizer displays a real-time preview of your model. This means the rendering will be a little rough, especially if you use set operations such as <tt>union()<\/tt>, <tt>difference()<\/tt> and <tt>intersection()<\/tt>. If you have to hit F6 to render your model in OpenSCAD properly, it&#8217;s going to look a bit off in Customizer<\/li>\n<li>If you must use resource-intensive functions such as <tt>hull()<\/tt> and <tt>minkowski()<\/tt>, try to limit them to 2D paths that are subsequently extruded. Everyone else in the Customizer job queue will thank you<\/li>\n<li>Similarly, keep the circle smoothness variables (<tt>$fa<\/tt>, <tt>$fn<\/tt>, <tt>$fs<\/tt>) in sensible ranges<\/li>\n<li>Customizer creates a new Thing under your name rather than just letting you download your customized model. You likely want to delete that once you&#8217;re finished with it.<br \/>\n(This also means that Customizer only works for registered Thingiverse users. I can&#8217;t see any way around this, unfortunately)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Thingiverse&#8216;s Customizer allows users to customize suitable OpenSCAD models without knowing any OpenSCAD code. While it does have some documentation to help developers along, there&#8217;s still a lot of guesswork. I released my first (working!) Customizer design the other week: Parametric Finger Pen Holder (Vertical). While the docs are the primary source of developer information, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[2963,3015,3143],"class_list":["post-15048","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-3dprinter","tag-openscad","tag-parametric"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-3UI","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=15048"}],"version-history":[{"count":1,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15048\/revisions"}],"predecessor-version":[{"id":15050,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15048\/revisions\/15050"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=15048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=15048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=15048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}