Ancient City Ruby 2015

3D Printing, Ruby and Solar Panels

Did you know that SketchUp has a Ruby API? Did you know that you can use SketchUp to do all kinds of things, including designing 3D printing templates? In her past career in the solar energy field, Meeka Gayhart used SketchUp for doing renderings and shading calculations for solar arrays. Come learn about how easy SketchUp is to use, and how to create your own drawing and design tools.

Ancient City Ruby 2015

00:00:01.120 I could hear the hesitation with the last name. I have my parents to thank for that – they were hippies who made up my first name. There are about seven of us out in the world, so it's always interesting when people try to pronounce either of my names. Good morning, everybody! I hope you guys have your coffees, Red Bulls, Bloody Marys, or whatever gets you through the day.
00:00:24.640 I’m going to be talking today about 3D printing, Ruby, and solar panels, which is a blend of buzzwords. A little bit about me: my name is Romeeka Gayhart, but I usually go by Mika. You can find me on Twitter at cc and uc, which, if anyone is wondering, comes from a really old, cheesy blog I had in high school. I'm a programmer and work at Quick Left, a consultancy. Our main office is in Boulder, but we also have offices in Portland and San Francisco. I learned to be a programmer from the folks at the Turing School of Software and Design.
00:00:55.199 Before I became a professional nerd, I worked in the solar field, where we did commercial and residential solar installations. We used a program called SketchUp to create drawings like these. I’m going to touch a little bit on my past life to enrich this talk.
00:01:18.640 So, what's the plan for today? First, I'm going to start with the obvious question: What is SketchUp? Next, I’ll discuss using SketchUp BP (before programming) – how I utilized SketchUp before I knew the magic of computers. Then, since this is a Ruby conference, I want to talk about SketchUp and Ruby, and how they work together.
00:01:31.920 After that, I'll explore SketchUp AP (after programming) and the ways I could have used Ruby to improve my work. Finally, for those of you who don’t do industrial construction – it’s cool; I don’t either – I want to explain how we can all leverage SketchUp for 3D printing in our everyday lives.
00:02:08.399 So, what is SketchUp? Primarily, SketchUp is a 3D modeling computer program rooted in architectural design. It's a desktop application that operates on both Mac OS and Windows systems. Originally, it was known as Google SketchUp; it started as a small startup in Boulder, was acquired by Google, and is now owned by Trimble. This transition is kind of cool because Google put a lot of effort, care, and 'googliness' into it, and then it went on to Trimble, which does a lot of stuff related to navigation and project management.
00:02:31.920 SketchUp was designed to be user-friendly, specifically for architects and designers. If you notice, the buttons are really intuitive – you can figure out what they do just by looking at them. The interface is aesthetically pleasing, and you can think of it as comparable to RubyMine or Sublime Text, versus AutoCAD, Vim, or Emacs. So, why is SketchUp great? Well, it is free for non-commercial use, and the pro version costs only about $590, which is quite affordable for a 3D rendering program.
00:03:17.519 Additionally, it’s incredibly easy to use, has an open-source and programmable component, which is rare for a desktop application, and I’ll discuss that further as well. It’s a fantastic onboarding platform for learning 3D design; getting started can be quite tricky, much like how confusing CSS can be when you first learn it. Also, the integration with Google Earth is, to me, the coolest feature of SketchUp.
00:03:36.239 If you’ve ever seen the buildings displayed in Google Earth, those were all created using SketchUp. You could liken it to the first drill you buy for your garage; it opens up a whole new world.
00:04:02.159 So why did we use SketchUp for solar installations? We provided visuals for clients, estimated scale, and made use of geolocation to study shadows. Less talk, more visuals, right? So, I want to take you through a walkthrough of my typical day when I worked in solar. This part covers the 'before programming' phase.
00:04:19.600 Let’s say I’m in my office and I receive a call from a coffee shop interested in solar. They ask how much it’s going to cost and how much energy they can offset before they commit to dropping $60,000 on a solar installation. I want to send someone out to give them better information without going in cold, so I collect the address of the coffee shop. I’ve been there before – they serve great coffee – but I’ve never been on their roof. We can work around that.
00:05:35.320 We’re going to open SketchUp and select a simple template for feet and inches, even though we usually work in millimeters. I started this demo in feet and inches, so I didn't want to go back. Now, here's where the Google integration comes in: we’ll click on 'Geolocation' and add location. This will pop up a Google Earth interface, and now we can enter the address of my favorite coffee shop, Rooster and Moon in Denver.
00:06:19.800 Once we enter the address, we’ll see it, just as if we were getting directions. We’ll select the area we want to work with around the building and hit the grab button. It automatically drops it into our 3D workspace, perfectly to scale – or at least as close as Google Earth can provide, which is usually fairly accurate.
00:06:46.559 Now, we'll want to switch to 2D mode and trace the outline of the building. You can see how SketchUp's matching feature works; if you have one line drawn and try to draw another one nearby, it’ll help you connect them. After we've connected all the lines, SketchUp will automatically create a face for us. The first instinct might be to convert it into a 3D building, but before we do that, we need to consider what’s on the roof.
00:07:08.720 You might notice various HVAC units on the roof that the client likely doesn’t want to remove. They may want to go green but not that green! So, we need to work around that in our design.
00:07:32.880 Since SketchUp is to scale, when we send someone out there because the client is genuinely interested, we’ll obtain precise measurements. For estimation purposes, we just draw everything out in SketchUp. We’ll use a tool called Push-Pull to elevate everything. Assuming the building is 20 feet tall and the HVAC units are 3 feet tall, we can reflect that in our model by pulling the HVAC units up a third of the total building height and adjusting accordingly. The height is crucial because shading affects the productivity of solar panels.
00:08:03.360 Shading equals a loss of productivity; any amount of shading, even a tiny bit, can significantly reduce efficiency. Solar panels and the associated wiring can be very expensive, so it’s essential to balance the savings from solar energy against those initial installation costs. A loss of productivity is a vital factor—many grants for solar offset programs depend on maintaining a certain percentage of unobstructed sunlight during peak hours.
00:08:31.440 Additionally, solar panels are usually wired together, similar to Christmas lights. If one panel is receiving insufficient light due to shading, it can significantly impact the performance of the entire system unless you’re using micro-inverters, which means more maintenance. Ultimately, no one wants to be climbing on roofs to troubleshoot—if you’ve worked in solar, you can empathize with the disappointment upon seeing trees overshadowing installations.
00:09:11.919 Now, since we’ve inputted the address earlier, we obtained latitude and longitude information, which allows us to perform specific shadow calculations based on our location. By toggling between various days and times of the year within SketchUp, we can analyze the impact of shadows for solar operations, particularly essential hours for solar productivity. In the eastern United States, generally only the late spring through early fall matters.
00:09:48.320 To finalize our roof model, we need to use the Push-Pull tool one more time to create borders about three feet in from the edges. This is important as building codes or zoning restrictions often require such setbacks for solar installations. Once that's set, I'll take a sip of water!
00:10:14.640 Now that the building is ready, let’s add some solar panels. There’s a Trimble 3D Warehouse that connects to SketchUp, allowing access to models designed by others for use in SketchUp. When you search for 'solar panel,' you’ll find numerous options, including many companies that upload specific models that are to scale and true to appearance.
00:10:55.520 We’ll grab a model of a GE energy solar panel and add it to the roof. Once we insert it, it may drop in at the wrong angle, so we will need to adjust it using the rotate tool. An effective way to flat the panel is to connect it to the existing structure to align it properly and then use the rotate feature to set it parallel to the roof.
00:11:25.280 Generally, I'm orienting the panels towards the south since I have experience working in Massachusetts, Pennsylvania, New Jersey, etc. and that is usually the most effective direction for solar gain. There’s a lot of science behind precise orientation and collective structure when it comes to solar panels, and it’s often best handled by a skilled electrician or expert.
00:11:50.560 It’s important to place the panel along the defined border while also ensuring a standard spacing of about one inch between each panel, which is typical for a racking system. One of SketchUp’s advantages is that it remembers specific dimensions for components, so once you set a one-inch gap for the first panel, the application remembers this when adding additional panels.
00:12:19.760 Now we want to tilt the panels at a slight angle because heat can hinder the efficiency of solar energy generation. Panels laid flat at a high temperature can reduce the output because they stifle airflow underneath, leading to higher temperatures which undermine efficiency. Thus, when placing panels, you’ll typically see at least an inch of spacing above the roof for good airflow. Additionally, panels require a slight tilt to effectively shed off snow and rain; they are designed to be self-cleaning.
00:12:56.480 Choosing the tilt is a bit of precise science itself; as a quick estimate, a common 30-degree tilt is a good starting point. SketchUp operates using components and groups where each panel can be treated as a component. If you make a change to one panel, all panels change, while a group serves to aggregate components for ease of management within your project.
00:13:32.160 Once we convert our panel into a group, we can easily manipulate all of them at once. It’s also efficient for copying and filling the roof with panels. However, it is essential to keep an eye on placement, as random panels might try to occupy the same space as HVAC units. After arranging and adjusting components, we can use a shading tool to look at the projected shading and eliminate any panels that will be negatively affected.
00:14:04.720 At this point, we need to optimize our model. If there are some panels that are too far from others or oddly placed, we want to ensure all are efficiently connected to minimize unnecessary wiring lengths. Keeping the wiring runs close together helps maintain cost-effectiveness. You want to provide a viable MVP (Minimum Viable Product) to clients rather than overpromising.
00:14:31.680 Once we are satisfied with placements and models, we can check how many components we have in the design, giving us measurable data to present to the client. I started my solar company as a secretary, slowly moved into design, and eventually managed projects. Once a new intern joined us, they made tasks easier as I transitioned into programming.
00:15:00.000 If I had known Ruby back then, I could have streamlined many processes and improved data management on designs. While SketchUp is a desktop application, its team has provided a Ruby interface, and it’s made extensively accessible. They genuinely put effort into the integration.
00:15:23.440 One of the ways to leverage the Ruby interface is through a built-in Ruby console in SketchUp, which is comparable to an IRB, albeit with certain limitations. It is integrated with the SketchUp API, making it convenient to use. Whenever SketchUp runs, you can find a default 3D character, which changes over time. In my case, I’ve encountered an architect in one of my models.
00:15:47.920 With the Ruby console, I could pull up the active model, count its entities, and learn about the character’s role through its attribute calls. Let’s shift gears; I want to discuss how I could have used SketchUp more effectively after learning Ruby.
00:16:17.120 The SketchUp Ruby API presents various advantages for creating custom drawing tools. For example, if I want a different type of solar panel, I could write a script to automate the generation of those components based on my set parameters, thus standardizing the workflow.
00:16:48.720 By defining a class for solar modules, I would initialize parameters such as width, length, and thickness, tagging color attributes, and establishing the starting points for simple adjustments. The syntax would be intuitive to anyone familiar with Ruby.
00:17:21.760 One of the first methods I would create would define how to draw a new panel. Using Push-Pull like in the GUI, I could programmatically control the design and dimensions, significantly enhances efficiency for repetitive tasks. After finalizing the component structure, the panel would take on the designated definitions.
00:17:46.560 Using these scripts would mean lowering the time taken for creating components, enriching the initial output. Upon design completion, I would style my models, adjusting them to ensure an appealing and functional aesthetic.
00:18:09.680 Next, I would execute automation for recurring tasks that could save significant time and effort. Instead of manually inputting settings, I could develop a full plugin as part of SketchUp that users could easily access anytime they opened the application.
00:18:40.720 For example, when I structured the plugin, I would incorporate a dropdown tool to add specific solar panel modules directly from the interface. This allows me to lessen user error and streamline each installation process; it requires programming interactions and validations which enhance user experience.
00:19:15.920 As each component is selected and the properties are set, I could instantly populate models efficiently to reflect real-world installations. We've produced rows of modules with designated spacing due to these set interactions. The goal of speeding up the design must align with ensuring accurate estimations during client interactions.
00:19:48.720 Creating meaningful documentation and reporting is essential in any solar installation project, and too often, those tools are overlooked. The fundamental vision when developing plugins lies in creating something that can ultimately be shared, understood, and utilized widely. This is the heart of building a plug-in business that offers value to users.
00:20:18.880 I want to illustrate that these plugins can be found in an extension warehouse or marketplaces where developers share their solutions. It's like a 'gem farm' populated with people’s solutions, and the core idea is to make tools available for others in the architectural or construction workspace.
00:20:52.320 In conclusion, even if you don’t directly install solar, the concepts I discussed apply broadly. I want to transition into the idea that many people are familiar with SketchUp as a significant part of 3D printing.
00:21:27.600 3D printing has become wildly popular across many industries, recognized for its rapid prototyping capabilities, allowing individuals to materialize ideas without committing to mass production before evaluating success in functional products.
00:21:59.040 Additionally, you can create replacement components that aren't manufactured anymore, allowing you to produce custom items that never existed before. This capability permits you to bring your abstract ideas to reality.
00:22:36.720 SketchUp was initially meant for architecture, and there’s a stark difference between developing designs for print media versus those intended for 3D fabrication; the end design application alters how decisions should be made.
00:23:03.520 To allow for this, both the open-source community and SketchUp’s team have provided plugins to facilitate 3D printing. Although many tools exist to bridge those gaps, I will walk you through my experience and the plugins I utilized to accomplish my 3D printing goals.
00:23:37.680 When considering what to 3D print, I decided to create something to thank my company for the opportunity to attend this event. After some consideration, I came up with the idea of a queue-shaped cookie cutter, reflecting our company’s spirit.
00:24:14.240 When I opened SketchUp, I chose a 3D printing template this time, opting to work in millimeters to fit CAD standards. SketchUp provides a bounding box that accurately represents the print area available.
00:24:43.680 Instead of drawing out the ‘Q’ from scratch, I used the 3D text tool, which lets you utilize imported fonts to create text-based designs easily. However, hollowing out the Q to conserve material and create an effective cookie cutter required consideration of wall thickness and overall strength.
00:25:17.760 Utilizing the Cleanup 3D tool was crucial in identifying and eliminating stray lines that could complicate the print process. 3D printers can often confuse stray lines without thickness, leading to incorrect prints.
00:25:44.160 The next tool I employed was the Solid Inspector plug-in, focusing on ensuring that my model was watertight—with every surface connected and free of holes. This cleanup process would become increasingly significant as the model complexity increased, reflecting a cohesive design.
00:26:10.640 Lastly, I discovered an STL file formatting plugin that made it easy to prepare my model for 3D printing. This plugin can convert native SketchUp files to STL, a standard file format for 3D printing, widening the potential application of my designs.
00:26:39.760 Without purchasing a 3D printer, I turned to online printing services like Shapeways and i.materialise. The advantage of these services includes an extensive selection of materials, allowing you to quickly produce varied designs and ensure quality before committing to a print.
00:27:17.760 Both services conduct thorough quality assurance, initiating a review of your uploaded designs to flag potential issues before fulfilling the order. This reduces the frustration often experienced with at-home printers, where countless problems can cause physical prints to fail.
00:27:50.560 One remarkable feature of these services is being able to sell designs through their platforms. Should you create something innovative, these services allow you to set up a virtual storefront, making it accessible to customers across the globe.
00:28:25.440 Through Shapeways, you can even purchase unique items that inspire further design and innovation in your work. During the planning phase, I unearthed many whimsical designs ranging from serious modifications to humorous items like novelty figurines.
00:28:59.920 After successfully embarking on this journey, I asked whether crafting cookie cutters would be a feasible venture, leading to early prototypes and usability tests. Unfortunately, my first version had some thin walls and inadequate depth, which made it less durable.
00:29:33.280 After feedback on my first design, I knew I had to improve the dimensions and handle design. In the second iteration, I switched to a more affordable plastic and increased the depth, creating a firmer design.
00:30:09.040 Ultimately, macros were incorporated to provide a better grip, realizing how important comfort and usability were for kitchen tools. By ensuring grip space, we prevent slippage during use, improving functionality.
00:30:34.560 Before I wrap up, it’s important for me to highlight safety considerations; not all printing materials are food-safe. However, ceramic prints are typically suitable and can work well as cookie cutters, even though they take a while to complete.
00:31:03.600 For the time being, I used food wraps to protect my models before testing them with dough. After extensive iterations and trials, I can confidently attest to the excitement and potential of 3D printing and SketchUp.
00:31:42.560 Before concluding my talk, I’d like to share some resources for those interested in diving deeper into 3D printing with SketchUp. A book published by Marcus Ritland covers everything about 3D printing, specifically relating to SketchUp, and is relatively inexpensive.
00:32:24.240 You can also download SketchUp Make, and further resources include the Ruby SketchUp APIs available on the SketchUp site. For community-driven 3D designs, Thingiverse is a widely-used platform where creators upload their models in STL format.
00:32:54.560 Shapeways provides a versatile online printing service worth exploring for your projects. Finally, if you know anyone passionate about learning Ruby, share the recommendation for Turing.io – they’ve changed my life.
00:33:23.760 Thank you for your time and attention today!