This is a tough post for me to write because I am still processing a decision I need to make. Hopefully this post will help me, as well as you.
First, a little background. I started work on a dog robot a few years ago. One key aspect of the design was the solid bits that I printed on my 3d printer, which connected the servos together and gave the robot a shape. I chose to use a tool called Openscad to design these parts. Because I kept the parts simple I was able to design them with Openscad fairly easily. I was even able to animate them to verify that I got the math right. All of this work is on my youtube channel.
Now here is where the story gets interesting. As I start to add in sensors and finalize the design I am desiring a much more complex design. I am wanting a design that can be considered to be art as much as good engineering. As I design artistic and life resembling parts I am starting to feel like I have reached the limits of Openscad. I don't give up without a fight, however. Here is an animation of my last stand:
This leg took me at least 10 hours to design and I was mentally fried multiple times by trying to visualize while I coded. In fact, I frequently picked up a pencil and paper as a faster medium to work out the kinks in my design before changing code. This is not how I want to design. I want my tools to be inspiring and suggestive, not tiring. Maybe I am doing something wrong. To give you a better idea of how I designed the lower portion of the leg, here is the code:
module leg_lower(){
difference(){
union(){
difference(){
translate([leg_upper_length/2,0,-servo_h+3])
scale([2,1,1])scale([1.3,1.3,2])
cylinder(r=leg_upper_length/2,h=servo_h/2, $fn=1000);
translate([leg_upper_length/2,0,-servo_h+3-1])
scale([2,1,1])scale([1.2,1.2,2.1])
cylinder(r=leg_upper_length/2,h=servo_h/2, $fn=1000);
rotate([0,15,0])translate([-500,-500,-servo_h+3+servo_h-0.1])
cube([1000,1000,100]);
translate([-500,0,-50])
cube([1000,1000,100]);
rotate([0,0,-45])translate([-500,45,-50])
cube([1000,1000,100]);
translate([leg_lower_length+5,-35,-servo_h+3+servo_h/4])
rotate([0,0,35])rotate([90,0,0])cylinder(r=screw_r,h=100,center=true,$fn=100);
}
translate([leg_lower_length-18,-26,-servo_h+5+servo_h/4])
cylinder(r=5,h=servo_h/2+4,center=true,$fn=100);
}
translate([leg_lower_length-18,-26,-servo_h+5+servo_h/4])
cylinder(r=2,h=servo_h/2+4+1,center=true,$fn=100);
translate([leg_lower_length-18+5,-26,-servo_h+5+servo_h/4+0])
rotate([0,0,25])cube([1,5,20]);
translate([leg_lower_length-18+5,-26,-servo_h+5+servo_h/4-20-3])
rotate([0,0,25])cube([1,5,20]);
translate([leg_lower_length-18+5,-26,-servo_h+5+servo_h/4+0])
rotate([0,0,25+180])translate([-1,-5-5,0])cube([20,15,5]);
translate([leg_lower_length-18+5,-26,-servo_h+5+servo_h/4-5-3])
rotate([0,0,25+180])translate([-1,-5-5,0])cube([20,15,5]);
}
}
Does it make sense to you? What line of code makes the screw hole that holds the rubber ball to the leg? Even after writing it I couldn't tell you right away.
After this experience I started looking for a new tool. I am not a mechanical engineer. I didn't know what to use. So I started looking around the internet for something that looked like the best CAD tool out there. I found a few, but Solidworks stood out as a FUN tool. I want to have fun!
So I decided to conduct an experiment. Below is a picture of a servo that I use in my dogbot. What would the experience be like modeling this servo in Openscad? What would be the experience modeling it in Solidworks?
To model this in Openscad you need to keep it simple. Here is the code to create a rough representation of the servo:
module servo(){
color([0.6,0.6,0.6])union(){
//drive shaft
translate([0,0,-servo_ds_h])
cylinder(r=servo_ds_r, h=servo_ds_h);
//body
translate([-servo_t/2,-servo_t/2,-servo_h-servo_ds_h])
cube([servo_w,servo_t,servo_h]);
//flange
translate([-servo_t/2-servo_flange_l,-servo_t/2,-servo_h+servo_flange_z-servo_ds_h])
cube([servo_flange_w,servo_t,servo_flange_h]);
//wire
translate([-servo_t/2-servo_wire_l,-servo_wire_t/2,-servo_h-servo_ds_h])
cube([servo_wire_l,servo_wire_t,servo_wire_h]);
}
}
It only took me about 30 minutes to get the code just right and to take all the measurements. Here is a render of the result:
So next I tried to design this servo in Solidworks. This was one of the first times I have used Solidworks after watching a few youtube tutorials. At first I just went with a simple representation like I did with Openscad, but that only took 10 minutes. So I decided to see how far a newbie could take it. I buckled in and took it all the way to what I consider to be an identical representation. In less than 2 hours I finished the design! In another 30 minutes I had the material tools and rendering tools figured out. Here is the result!
If you put the original servo next to this render you can barely tell them apart, and that's just because I am new to Solidworks. So now I have a dilemma. Openscad is open source and I believe in open source. It is code based and because of this you can create parametric designs that can change by changing one variable, like bolt size. Solidworks is hundreds of dollars and is almost completely mouse driven. But Solidworks is fun and almost without limitless with a new version is coming out every year.
What to do? Which do I use? Is there something even better?
If I could afford to get it I would like to try something like Solidworks. One of the problems I have with openSCAD is the same as you said, it is hard to visualise the design with code. I also don't like that it decides how many facets to put on curved objects, they tend to show once I have printed out. As a hobby I would say go with what gives you the greatest pleasure while meeting the design needs you have. It is a hobby and meant to be enjoyable, at the point it isn't; open/closed source becomes mute as you wouldn't carry on with it.
ReplyDeleteSomewhat OT. Do you know about $fn, $fs, and $fa? I usually use $fn=90 to make decent looking circles/cylinders on screen. I am sure I could go further, if I thought it would make better printed parts.
DeleteHmmmm... tempted you are. The first step to the Dark Side temptation is. ;)
ReplyDeleteKidding aside:
I was very thrilled by your skills with Openscad but your Servo made with Solidworks looks just stunning. Is it already that you don't enjoy Openscad like you did before? Like smartroad said: It has to be fun so that it could go on.
Very difficult choice!
My vote is to go with a solid modeling program. Being able to run renders and check part interferences in large complicated designs is amazing. Plus the parametric nature of most solid modeling programs lets you make quick iterations and see how the effect the overall assembly. I have nothing against OpenSCAD and started off that way as well but my designing work (both personal and commercial) has become far far more efficient since I moved to a full 3D solid modeling program.
ReplyDeleteSadly the good options are usually costly and closed source, thats my only negative I can put towards them.
Somewhat more on topic. WRT mystery code, there is nothing that says you have to code just cubes and cylinders inside your difference/union/translate functions. You could break them into smaller modules, especially if they get reused, or, if they are a difference to break out a part from a cube/cylinder. I was going to point to my 4" impeller on Thingiverse, but, it would seem that is much earlier work, and, looks a lot like your "where is it" code above. :)
ReplyDeletehttp://www.thingiverse.com/thing:15370 in case you care.
Thanks for all the feedback and advice. After thinking it over and considering these comments I've decided to go with Solidworks. Openscad is an amazing tool and it has a justified place in the opensource community. I am going with Solidworks because I have limited time for my hobbies and when I have the time to work on them I want to have the most fun that I can and accomplish as much as I can. Thanks again for all the feedback!
ReplyDeleteMaybe consider FreeCAD? It seems to have a lot of potential.
ReplyDeleteI also like Kyle Kerr's point, by breaking it up into multiple module's with names that make sense you can make your code/model more readable. Just like it makes sense to use proper function/class names when you program.
.
Got a really nice post! good article , related to my search. I’m sure lots of people who search for something like this will look and appreciate this blog. keep it up:)
ReplyDeleteend mill recycling
Thank You for sharing your article, This is an interesting & informative blog. It is very useful for the developer like me. Kindly keep blogging. Besides that Wisen has established as Best Corporate Training in Chennai .
DeleteNowadays JavaScript has tons of job opportunities on various vertical industry. Know more about JavaScript Framework Training visit Corporate Training Companies in India.
This post gives me detailed information about theechnology. corporate training companies in india
These are really good and better to contribute more on the robotics part. Well made with Openscad. The robot work Looks stunning indeed. Check this out Generic Viagra
ReplyDeleteWell, here is one hour in OpenSCAD got me: http://imgur.com/a/ExDjs
ReplyDeleteHere's the code that got me there (again, that's one hour).
Not the best code by far, but at least it's clear how to change the dimensions of sub-parts.
//coded in <1hr in response to http://www.onshoulders.org/2012/05/dogbot-openscad-vs-solidworks.html
//romwell@gmail.com
L=50; //length
W=22; //width
H=45; //height
A=15; //main slope
r=3; //hole radius
t=3; //thicknes of holders
w=8; //width of holders
k=0.68; //hole position ratio
d=3; //distance of holders to slope end
br1=0.8*W/2; //button base big R
br2=0.75*W/2; //smaller R
bh1=2.5; //cone height
bh3=0.2; //button base deco circle
br3=0.9*br2;
br4=4.5; //BUTTON RADIUS
bh4=8; //BUTTON HEIGHT
br5=br4/2; //button hole radius
B=L/2.3; //small box length
hh=1; //bevel amount
sr=2; //decorative circle radius
SC=0.9; //smaller box slope cut off
AA=75; //smaller box slope angle
module slopebox(w, l, h, d, a)
{
difference()
{
cube([w,l,h]); //main box
translate([-1,d,h])
rotate([-a,0,0])
cube([w+2,l+h,l]); //slope
}
}
module wire_holder()
{
difference()
{
cube([W,w,t]);
for(x=[W*0.25, W*0.75])
{
translate([x, k*w, -t])
cylinder(3*t, r, r, $fn=24);
}
}
}
module bbox()
{
k=0.9;
kk=(1-k)/2;
C=SC*B;
k2=(k - k*k)/2;
difference()
{
union()
{
translate([kk*W,0,0])
{
slopebox(k*W,B,S+hh,C,AA);
translate([k*W/2,0,S])
cylinder(hh,sr,sr,$fn=24);
}
}
translate([k2*W+kk*W,kk*B,S])
{
cube([k*k*W,k*C,2*hh]);
}
}
}
module but()
{
difference()
{
union(){
cylinder(bh1,br1,br2);
translate([0,0,bh1])
cylinder(bh3,br3,br3);
}
cylinder(100,br4*1.1,br4*1.1);
}
difference()
{
cylinder(bh4, br4, br4, $fn=60);
translate([0,0,bh4/2])
cylinder(bh4, br5, br5,$fn=24);
}
}
module butbase()
{
k=0.95;
bbw=k*W;
t=(W-bbw)/2;
translate([t, t, 0])
difference()
{
cube([bbw, k*L/2, hh]);
translate([bbw/2, L/2-t, 0])
cylinder(2*hh, sr*1.3,sr*1.3, $fn=24);
}
}
slopebox(W,L,H,L/2,A);
S=L*sin(A)/2;
translate([0,0,H-S])
{
translate([0,L/2,0])
{
bbox();
}
//wire holders
translate([0,0,-d-t])
{
translate([0,L,0])
{
wire_holder();
}
mirror([0,1,0])
wire_holder();
}
}
translate([0,0,H])
{
butbase();
translate([W/2, W/2, hh])
{
but();
}
}
Pest Control Services in Thane
ReplyDeletePest Control Services in Thane Ghodbunder
Pest Control Services in Navi Mumbai
Pest Control Services in Kalyan
Pest Control Services in Mulund
This comment has been removed by the author.
ReplyDeleteRailway Transport Service Bhandup
ReplyDeleteRoad Transport Service in Bhandup
Domestic Transporters in Mumbai
Transporter Services in Bhandup
Railway Transport Service Provider in Mumbai
Transport Company in Bhandup West
Express Road Transport Service in Mumbai
Rail Transport Services in Mumbai
Railway Transport Services in Mumbai
Air Transport Service in Mumbai
Local Transporter in Mumbai
Best transport Service in Mumbai
Ambulance services in Delhi Ncr
ReplyDeleteAC Ambulance services in Delhi Ncr
Ventilator ambulance services in Delhi Ncr
Hears van in Delhi Ncr
Ambulance Number in Delhi Ncr
Mortuary cabinet in Delhi Ncr
Coffin dealer in Delhi Ncr.
Water tank cleaning services in Delhi Ncr,
ReplyDeleteSofa dry clean services in Delhi Ncr,
Floor Cleaning Buffering by Machine in Delhi Ncr,
Carpet Cleaning Services in Delhi Ncr,
Corporate cleaning services in Delhi Ncr.
Simply disconnect from internet.
ReplyDeleteDouble click on the Part 1 of file or extract the 1st part via winrar. Rest will be done automatically.
freesoftsfiles.com
Court marriage in thane
ReplyDeletecourt marriage in mumbai
marriage registration in thane
marriage registration in mumbai
Out of State Marriage registration in Thane
Temple marriage in thane
Christian marriage in thane
Best services in Mumbai
ReplyDeleteOffice boy services in Navi Mumbai
Hospitality services in Navi mumbai
Pantry services in mumbai
Cleaning services in Mumbai
corporate housekeeping services in mumbai
Housekeeping services in Thane
Pioneer facility cleaning services
This comment has been removed by the author.
ReplyDeleteThese are decent and better to contribute more on the mechanical autonomy part. Well made with Openscad. The robot work Looks staggering in fact. Look at this Buy Kamagra Online
ReplyDeleteThese are decent and better to contribute more on the mechanical autonomy part. Well made with prefect. The robot work Looks staggering in fact. Get the more information visit my website:- Acheter Kamagra
ReplyDeleteThese are decent and better to contribute more on the mechanical technology part. Well made with Openscad. The robot work Looks shocking surely. Look at this Buy Kamagra Online
ReplyDeleteGet best services by SEO services India |
ReplyDeleteSEO company India |
Local SEO services in India
Bulk SMS India | Bulk SMS service provider | Bulk SMS API Services
ReplyDeleteCourtesy:- Kamagra
ReplyDeleteGot a really nice post! good article Look at this site below:
ReplyDeleteCourier services in Mumbai
Courier services in Thane
Courier services in Ghatkopar
Courier services in Kalyan
Courier services in Dombivli
awesome find nice blog..........look at this best construction companies in India site below:-
ReplyDeleteConstruction Companies in Mumbai
Construction Companies in Thane
Construction Companies in Pune
Construction Companies in Lucknow
Construction Companies in Hyderabad
Construction Companies in Delhi
Construction Companies in Gujrat
really nice post! thanks for this share Visit Kamagra bestellen
ReplyDeletereally nice great post thanks for this share visit Courier to Australia
ReplyDeleteGot a really nice post! good article , related to my search great read helped
ReplyDeleteRegards:
Courier to Australia
Thanks for blog aslo visit my blog:- Vardenafil 20 Mg Dosierung für ED. Online-Apotheke
ReplyDeleteGreat post thanks for this article
ReplyDeleteRegards:
Kamagra
the fastest courier services courier to usa
ReplyDeletemagnificent for significant data. Checkout my link Kamagra
ReplyDeleteGreat and nice post, Checkout my website:- Kamagra kaufen
ReplyDeletePlot in vrindavan | Land in noida |
ReplyDeleteLand in vrindavan |
Plot in noida
Thanks Great and nice post for blog visit my blog Kamagra kaufen
ReplyDeleteGreat and nice post, Checkout my website Kamagra kaufen
ReplyDeleteGreat and nice post, Checkout my website Buy money plants in Delhi
ReplyDeleteThank You for sharing your article, This is an interesting & informative blog
ReplyDeleteBuy Nutrition Supplements in Goregaon
Buy Dietary Supplements in Goregaon
Buy Nutrition Supplements in Tardeo
Buy Nutrition Supplements in peddar road
Buy Nutrition Supplements in Cuffe Parade
Quality content is the key to attract readers. And you provide just that. Good work. seo company india
ReplyDeleteI just truly delighted in surfing your blog entries.After all I'll be buying in to your feed and I trust you compose again soon! Bulk SMS API
ReplyDeleteThese is better to contribute more on the mechanical self-governance part.The robot work Looks stunning actually.Bulk SMS API
ReplyDeleteThank You for sharing your article, This is an interesting & informative blog
ReplyDeleteNutritionist in Mumbai
Dietitian in Mumbai
Diet plan for weight loss in mumbai
This comment has been removed by the author.
ReplyDeleteMerci de partager vos précieuses informations. Il est très utile pour nous, s'il vous plaît visitez ci-dessous nous:-
ReplyDeleteAcheter Kamagra en ligne
Thank You for sharing your valuable information article, This is an interesting and informative blog:- Kamagra
ReplyDeleteThank You for sharing your valuable information article
ReplyDeleteAcheter Kamagra
I just truly delighted in surfing your blog entries.After all I'll be buying in to your feed and I trust you compose again soon! Bulk SMS API Kamagra Bestellen
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThank You for sharing your valuable information article
ReplyDeleteGold Jewellery Price In Kuwait
Kuwait Gold Jewelry Price
Thank You for sharing your valuable information article
ReplyDeleteGold price in Kuwait
Gold Rate in Kuwait
Today gold price in Kuwait
Vielen Dank, dass Sie Ihre wertvollen Informationen geteilt haben. Es ist sehr nützlich für uns, Bitte besuchen Sie uns:-
ReplyDeleteKamagra Kaufen https://www.uno-apotheke.com/
Thanks for sharing informative
ReplyDeleteKuwait Online Shopping
Kuwait offers
Thank You for sharing your valuable information article
ReplyDeleteonline gold ring shopping
Gold Ring Design
Thank You for sharing your valuable information article
ReplyDeleteprinters in kuwait
printers
This is not a comprehensive list of all side effects but only the common ones and side effects are mild and short lived hence this medication is considered safe. Kamagra Kaufen https://www.uno-apotheke.com/ comes in different strengths according to prescription and patient requirement like;
ReplyDeletegoogle ads expert in mumbai
ReplyDeletegoogle ads expert in mumbai http://digitaldunyaa.com/google-ads/
Thank You for sharing your valuable information article
ReplyDeleteKamagra Kaufen
Thank You for sharing your valuable information article
ReplyDeletegold rate in dubai
gold rate in UAE
gold price in dubai
today gold rate in dubai
Thanks for sharing informative blog
ReplyDeletegold rate in dubai
gold rate in uae
gold price in dubai
today gold rate in dubai
https://icscourierservice.com/international-medic
ReplyDelete
ReplyDeleteشركات نقل عفش فى خميس مشيط
شركة تسليك مجارى بخميس مشيط
شركة تنظيف بابها و بخميس مشيط
شركة تنظيف بالخميس
شركة تنظيف بخميس
شركة كشف تسريبات المياة وارتفاع فاتورة المياه
شركة تنظيف المنازل والفلل
ReplyDeleteشركات نقل عفش فى خميس مشيط
شركة تسليك مجارى بخميس مشيط
شركة تنظيف بابها و بخميس مشيط
شركة تنظيف بالخميس
شركة تنظيف بخميس
شركة كشف تسريبات المياة وارتفاع فاتورة المياه
شركة تنظيف المنازل والفلل
افضل شركة تنظيف منازل بخميس مشيط
ReplyDeleteشركة نقل اثاث بخميس مشيط
افضل شركة نقل عفش بخميس مشيط
شركة مكافحة النمل الابيض بجازان
تنظيف منازل بخميس مشيط
شركة نظافة بخميس مشيط
شركة تنظيف واجهات الزجاج
ReplyDeleteشركة جلي وتلميع الرخام
شركة صيانة شبكات الصرف الصحى
شركة مكافحة الذباب والحشرات
شركة نقل اثاث مع التغليف
مؤسسة تنظيف بخميس مشيط
شركة مكافحة حشرات بالقصيم
افضل شركة تنظيف منازل بخميس مشيط
ReplyDeleteشركة نقل اثاث بخميس مشيط
افضل شركة نقل عفش بخميس مشيط
شركة مكافحة النمل الابيض بجازان
تنظيف منازل بخميس مشيط
شركة نظافة بخميس مشيط
Divorce Solicitor Near Me asked for translation
ReplyDeletesamsung Mobile Price in Bangladesh!
ReplyDeleteشركة كشف تسربات المياه بأبها
ReplyDeleteشركة كشف تسربات المياه بأحد رفيدة
شركة كشف تسربات المياه ببيشة
شركة مكافحة حشرات بأبها
شركة مكافحة حشرات بخميس مشيط
شركة مكافحة حشرات بوادي بن هشبل
Thanks For sharing very informative Blog
ReplyDeletegold rate in dubai
gold rate in uae
gold price in dubai
today gold rate in dubai
https://www.facebook.com/113511120028181/posts/336435614402396/?flite=scwspnss&extid=ucQyb5szlzWdDsyn
ReplyDeleteRecruiting consultants possess the expertise and contacts to best support our search. We draw on our high-level professional networks
ReplyDeleteOverseas Manpower Consultants
Overseas Recruitment Companies
Manpower Recruitment Agency
Manpower Consultants India
Overseas Recruitment Agency
Blut stürzt durch Wirkung des Enzyms cGMP, das einen Vasodilatator wirkt und entspannt oder erweitert Muskeln und Blutgefäße des männlichen Organs Kamagra bestellen
ReplyDeleteabgesehen von vielen anderen inaktiven Inhaltsstoffen, um seinen therapeutischen Wert zu erhalten Kamagra Kaufen
ReplyDeleteEs ist ratsam, dass Sie medizinische Zulassung zuerst suchen, um die richtige Dosierung dieser Kamagra Tabletten und Kamagra bestellen zu bekommen.
ReplyDeleteافضل خدمات المكافحة ورش المبيدات بخميس مشيط وابها بافضل المعدات والاجهزة العالمية
ReplyDeleteشركة تنظيف موكيت بخميس مشيط
شركة مكافحة حشرات بابها
شركة مكافحة حشرات بخميس مشيط
شركة رش مبيدات بابها
شركة رش مبيدات بخميس مشيط
شركة مكافحة حشرات ببريدة