Homemade CAD system?

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. :wink:

The question I have is: WHY?

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.

-Scott

You can also set up a macro to do this in any program, CAD or otherwise, with not much effort.

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.

If you had a large team of people knowledgeable on creating programs and an abundance of time, it could be possible, but not practical.

CAD programs seem to have many complex features in which would take time to create. Making a bare-bones CAD program would still be tough.

As others has said, look at existing programs and customize it to your needs.
Good luck :slight_smile:

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.

Inventor is not cross-platform. You must be thinking of Fusion 360.

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. :slight_smile: 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.

to all that responded to this,

 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).

If you just want to hone your coding skills, try working on some tiny element of a CAD program.

An interesting place to explore might be sketch solving, but that seems actually very complex.

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.