
Design Real-World Objects In Python With CadQuery
Streams straight from the publisher. podnod never proxies or re-hosts episode audio.
Summary
Virtually everything that you interact with on a daily basis and many other things that make modern life possible were designed and modeled in software called CAD or Computer-Aided Design. These programs are advanced suites with graphical editing environments tailored to domain experts in areas such as mechanical engineering, electrical engineering, architecture, etc. While the UI-driven workflow is more accessible, it isn’t scalable which opens the door to code-driven workflows. In this episode Jeremy Wright discusses the design, uses, and benefits of the CadQuery framework for building 3D CAD models entirely in Python.
Announcements
- Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
- So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan.
- Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today!
- Your host as usual is Tobias Macey and today I’m interviewing Jeremy Wright about CadQuery, an easy-to-use Python module for building parametric 3D CAD models
Interview
- Introductions
- How did you get introduced to Python?
- Can you start by explaining what CAD is and some of the real-world applications of it?
- Can you describe what CadQuery is and the story behind it?
- How did you get involved with it and what keeps you motivated?
- What are the different methods that are in common use for building CAD models?
- Are there approaches that are more common for models used in different industries?
- What was missing in other projects for programmatically generating CAD models that motivated you to build CadQuery?
- Can you describe how the CadQuery library is implemented?
- How have the design and goals of the project changed or evolved since you started working on it?
- How would you characterize the rate of change/evolution in the CAD ecosystem, and how has that factored into your work on CadQuery?
- How did you approach the process of API design?
- How do you balance accessibility for non-professionals with domain-related nomenclature?
- Can you describe some example workflows for going from idea to finished product with CadQuery?
- How are you using CadQuery in your own work?
- What are the most interesting, innovative, or unexpected ways that you have seen CadQuery used?
- What are the most interesting, unexpected, or challenging lessons that you have learned while working on CadQuery?
- When is CadQuery the wrong choice?
- What do you have planned for the future of CadQuery?
Keep In Touch
Picks
Closing Announcements
- Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning.
- Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
- If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story.
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
Links
- CadQuery
- CAD == Computer Assisted Design
- 3D Printer
- Jeremy’s CNC Router
- jQuery
- Blender
- Fusion 360
- Open Cascade (OCCT)
- Fluent API
- FreeCAD
- KiCAD
- Semblage
- cq-editor
- jupyter-cadquery
- cq-kit
- FX Bricks
- Voxels
- cq_warehouse
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
pythonpodcast.com/linode
pythonpodcast.compythonpodcast.com/selectstar
pythonpodcast.comdataengineeringpodcast.com/shipyard
dataengineeringpodcast.comDiscord
discord.ggTwitter
twitter.comGitHub
github.comGitLab
gitlab.comStar Trek: Strange New Worlds
en.wikipedia.orgData Engineering Podcast
dataengineeringpodcast.comMachine Learning Podcast
themachinelearningpodcast.comsite
pythonpodcast.comiTunes
itunes.apple.comCadQuery
cadquery.readthedocs.ioCAD == Computer Assisted Design
en.wikipedia.org3D Printer
en.wikipedia.orgJeremy’s CNC Router
en.wikipedia.orgjQuery
jquery.comBlender
blender.orgFusion 360
autodesk.comOpen Cascade (OCCT)
dev.opencascade.orgFluent API
en.wikipedia.orgFreeCAD
freecadweb.orgKiCAD
kicad.orgSemblage
github.comcq-editor
github.comjupyter-cadquery
github.comcq-kit
github.comFX Bricks
fxbricks.comVoxels
en.wikipedia.orgcq_warehouse
github.comThe Freak Fandango Orchestra
freemusicarchive.orgCC BY-SA
creativecommons.org
- 0:13Introduction and Sponsor Messages
- 1:44Interview with Jeremy Wright Begins
- 2:10Jeremy Wright's Introduction to Python
- 3:11Overview of CAD and Its Applications
- 4:05Introduction to CAD Query
- 6:49Jeremy's Motivation and Community Involvement
- 8:03Integration with Commercial CAD Tools
- 9:54Reusable Components and Libraries in CAD Query
- 11:29Unique Features of CAD Query
- 13:45Project Design and API Accessibility
- 15:17Evolution of CAD Query and Community Use Cases
- 17:25Balancing API Design for Different Domains
- 19:25Domain-Specific Extensions and Plugins
- 21:09Workflow and Exporting Models
- 24:18Automation and Testing in CAD Query
- 27:09Commercial CAD Packages and Testing
- 27:46Jeremy's Personal Projects Using CAD Query
- 30:16Graphical IDEs for CAD Query
- 31:17Innovative Uses of CAD Query
- 32:56Lessons Learned from Maintaining CAD Query
- 34:31When CAD Query Might Not Be the Right Choice
- 37:14Future Plans and Areas of Exploration
- 39:51Growing Ecosystem of Extensions
- 42:40Closing Remarks and Picks