I was wondering if anyone had ever thought of making their own home brew CAD system. would anyone know where to start? what language to use? maybe in a game engine of some sort?
Just curious where other people would start when developing something like that.
Thereās a plethora of CAD programs already. In no particular order:
Inventor
Solidworks
Fusion 360
Onshape
IronCAD
AutoCAD
*]Sketchup
On top of that list, thereās others (some folks have used Minecraft), and other computer-based tools (including Publisher and PowerPoint, which are great for simple drawings). If you canāt find something that fits from that list, then maybe you would want to develop your own. But with most of those being free for educational use, it aināt worth it for use as a CAD program. For the educational experience of making a CAD program, maybeā¦
Rather than making a new CAD system, maybe it makes more sense (not sure what you want) to take existing software and build you own customized tools for it. Many of EricHās examples have ways of customizing- for example, Onshape has featurescript.
I agree with customization. There are so many common, repetitive tasks in CAD. You could really speed up the use and operation of things by building out common part libraries, common profile sketches, automated key sequences, drawing templates, plotter configurations, post processor configuration, UI changes and user defined features.
PTC Creo has a development kit, a JavaScript interface, model programming, UI configuration and so many other options to customize and tailor the experience. Iām sure other systems have similar capabilities.
To answer your question directly: the three reasons no one home-brews CAD are that it is incredibly hard, if youāre any good at it you better be getting paid for your time, and near-professional-level packages like Fusion360 are available for free for personal/educational use.
I was thinking about this very recently actually. I had to bootcamp my mac just to run Solidworks (it runs well too!) and would much prefer to stick with just OSX. I wish it was easy to port over Solidworks/Creo but thereās a good amount of cross-platform stuff like Inventor and Onshape already.
Wellā¦ before we all jump on the āThatās impossible!ā bandwagon, lets think back a few decades to some pre-Windowsā¦ heckā¦ pre IBM PC CAD packages.
They were basically 2D drawing software with very limited functions. But they were CAD packages, and they did work, and many of them were made by very small software development teamsā¦ sometimes just one or two people.
At the time they had to account for limited processor power, limited RAM and thus involved a lot of hand coding and machine language routines. Modern higher level languages have many of these functions built in. Given that weāve got essentially infinite processing power and memory compared to those early CAD systems, using a higher level language is no problem. (Iāve had some fun using Processingā¦ snicker away if you will hard-core C people. It was the most expedient solution to the job I needed done. Decent graphics routines (including a bit of 3D, too) and cross-platform compatibility.)
As for those who ask āWhy?ā when commercial systems existā¦ I hate to remind you that you are soon going to dedicate six weeks of your life to building an essentially useless robot. You already know WHY.
So yeahā¦ building a basic 2D CAD system is possible. Convincing your teammates to use it instead of Inventor might be a bit difficultā¦ but thatās a different problem. You can learn a lot from the effort even it if doesnāt succeed in coming out exactly the way you want. My goodness, Iāve helped build more than a few robots that havenāt come out exactly the way we wanted, and Iām proud of every one of them.
Where I might start would be to look at what simple goals youād like to be able to achieve. Do you want to be able to export a dxf file? Maybe use it to generate some G-code? In either case learn about the format in which youād like your output to be generatedā¦ it might help you figure out how to build your engine.
Just like we tell rookie teamsā¦ keep your goals reasonable and focus on doing one thing well. Learn from the experience and come back stronger. Go for it! Have fun! If youāre doing it for the learning experience, I guarantee youāre going to succeed!
Jason
P.S. The ācustomize an existing packageā aināt a bad idea eitherā¦ some CAD packages are essentially high level programming languages themselvesā¦ but explore and have fun. Just checking out the different development platforms will be educational.
I already know about commercial CAD systems, trust me, I am a fusion and solidworks fanatic. I though of this question as a way to see where I could start honing my coding skills. And i know that anything I make is not going to fly with my team due to our love of Fusion 360. I also wanted to see where other people would start. I am kind of interested what type of response I would get if I posted this in the code section of CD. I would like to thank all of you on your opinions and I would like to see where this goes.
Iām going to derail a little bit, and try to think like an engineer to solve the problem.
Problem: ijensen wants to hone his coding skills.
Solution: Code more, code tougher, code a stretch goalā¦
So the question becomes, what way are you looking to hone skills? Are we talking robot programming? Website? Game/simulation/other similar software?
For example, if you wanted to try to stretch robot programming skills, nobodyās ever built a fully-autonomous robot for FRC. Itās a tough goalābut you could possibly implement a fully-automatic functionality onto the robot. Thatās marginally easier.
If you want a really fun challenge, code a computer game for next yearās FRC game. Thereāve been a few really fun games of that sort over the years (I recall playing the '06 one; 5th Gear was around for a couple years, thereās a couple other ones around if you look hard enough).
check out team 1987ās 2015, fully autonomous conveyor. driver pushed one button at the start of the match and was hands off for the rest of the match.