Saturday, May 26, 2012

Dogbot: Openscad vs. Solidworks

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?

152 comments:

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

    ReplyDelete
    Replies
    1. Somewhat 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.

      Delete
    2. Great Article Cloud Computing Projects

      Networking Projects

      Final Year Projects for CSE

      JavaScript Training in Chennai

      JavaScript Training in Chennai

      The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

      Delete
  2. Hmmmm... tempted you are. The first step to the Dark Side temptation is. ;)

    Kidding 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!

    ReplyDelete
  3. 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.

    Sadly the good options are usually costly and closed source, thats my only negative I can put towards them.

    ReplyDelete
  4. 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. :)
    http://www.thingiverse.com/thing:15370 in case you care.

    ReplyDelete
  5. 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!

    ReplyDelete
  6. Maybe consider FreeCAD? It seems to have a lot of potential.
    I 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.
    .

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

    end mill recycling

    ReplyDelete
    Replies
    1. 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 .

      Nowadays 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

      Delete
  8. 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

    ReplyDelete
  9. Well, here is one hour in OpenSCAD got me: http://imgur.com/a/ExDjs

    Here'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();
    }
    }

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. Simply disconnect from internet.
    Double click on the Part 1 of file or extract the 1st part via winrar. Rest will be done automatically.
    freesoftsfiles.com

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete
  13. These 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

    ReplyDelete
  14. These 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

    ReplyDelete
  15. These 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

    ReplyDelete
  16. really nice post! thanks for this share Visit Kamagra bestellen

    ReplyDelete
  17. really nice great post thanks for this share visit Courier to Australia

    ReplyDelete
  18. Got a really nice post! good article , related to my search great read helped
    Regards:
    Courier to Australia

    ReplyDelete
  19. Thanks for blog aslo visit my blog:- Vardenafil 20 Mg Dosierung für ED. Online-Apotheke

    ReplyDelete
  20. Great post thanks for this article
    Regards:
    Kamagra

    ReplyDelete
  21. magnificent for significant data. Checkout my link Kamagra

    ReplyDelete
  22. Great and nice post, Checkout my website:- Kamagra kaufen

    ReplyDelete
  23. Thanks Great and nice post for blog visit my blog Kamagra kaufen

    ReplyDelete
  24. Great and nice post, Checkout my website Kamagra kaufen

    ReplyDelete
  25. Quality content is the key to attract readers. And you provide just that. Good work. seo company india

    ReplyDelete
  26. 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

    ReplyDelete
  27. These is better to contribute more on the mechanical self-governance part.The robot work Looks stunning actually.Bulk SMS API

    ReplyDelete
  28. This comment has been removed by the author.

    ReplyDelete
  29. Merci de partager vos précieuses informations. Il est très utile pour nous, s'il vous plaît visitez ci-dessous nous:-

    Acheter Kamagra en ligne

    ReplyDelete
  30. Thank You for sharing your valuable information article, This is an interesting and informative blog:- Kamagra

    ReplyDelete
  31. Thank You for sharing your valuable information article
    Acheter Kamagra

    ReplyDelete
  32. 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

    ReplyDelete
  33. This comment has been removed by the author.

    ReplyDelete
  34. Vielen Dank, dass Sie Ihre wertvollen Informationen geteilt haben. Es ist sehr nützlich für uns, Bitte besuchen Sie uns:-

    Kamagra Kaufen https://www.uno-apotheke.com/

    ReplyDelete
  35. Thank You for sharing your valuable information article
    printers in kuwait
    printers

    ReplyDelete
  36. 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;

    ReplyDelete
  37. google ads expert in mumbai

    google ads expert in mumbai http://digitaldunyaa.com/google-ads/

    ReplyDelete
  38. Thank You for sharing your valuable information article

    Kamagra Kaufen

    ReplyDelete
  39. https://icscourierservice.com/international-medic

    ReplyDelete
  40. https://www.facebook.com/113511120028181/posts/336435614402396/?flite=scwspnss&extid=ucQyb5szlzWdDsyn

    ReplyDelete
  41. Recruiting consultants possess the expertise and contacts to best support our search. We draw on our high-level professional networks

    Overseas Manpower Consultants
    Overseas Recruitment Companies
    Manpower Recruitment Agency
    Manpower Consultants India
    Overseas Recruitment Agency

    ReplyDelete
  42. 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

    ReplyDelete
  43. abgesehen von vielen anderen inaktiven Inhaltsstoffen, um seinen therapeutischen Wert zu erhalten Kamagra Kaufen

    ReplyDelete
  44. Es ist ratsam, dass Sie medizinische Zulassung zuerst suchen, um die richtige Dosierung dieser Kamagra Tabletten und Kamagra bestellen zu bekommen.

    ReplyDelete
  45. auch nach mehreren Male Geschlechtsverkehr herunterzukommen. Priapism endet schädlich Ihr Sexualorgan ein für alle mal und Sie können bequem Abschied von Sex für den Rest Ihres Lebens und wird nicht mehr Brauchen Kamagra bestellen

    ReplyDelete
  46. Pleasant to be going by your web journal once more, it has been months for me. Well this article i've been sat tight for so long. I require this article to finish my task in the school, and it has same theme with your article. Much obliged, incredible offer. kamagra

    ReplyDelete
  47. thanks for submitting great article show our network and so become very easy part then visit my blog great article must read and very interesting click here Online Business

    ReplyDelete
  48. This substance is composed exceptionally well. Your utilization of arranging while mentioning your focuses makes your objective facts clear and straightforward. Much obliged to you. wonka oil carts

    ReplyDelete
  49. Diese Entscheidung sollte vollständig von einem Arzt getroffen werden. Versuchen Sie nicht, eine solche Entscheidung für sich selbst zu treffen.Kamagra bestellen

    ReplyDelete
  50. Es ist vor vielen anderen Medikamenten, die für erektile Dysfunktion Behandlung empfohlen werden Kamagra Kaufen

    ReplyDelete
  51. die Konsultationen vom Arzt zu nehmen. Es ist eine universelle Tatsache, dass Kamagra Medikamente taschenfreundlich sind, aber dennoch sehr mächtig bei der Beseitigung der Probleme der Impotenz.Kamagra Kaufen

    ReplyDelete

  52. Whats Happening i’m new to this, I stumbled upon this I have discovered It absolutely useful and it has aided me out loads. I hope to contribute & help other customers like its aided me. Great job. omegle girls

    ReplyDelete
  53. Der nahtlose Vorteil der Kamagra-Medizin ist, dass sie keine Infektion der männlichen Privaten verursacht und somit effektive Ergebnisse in ca. 15- 20 Minuten erzielt. Kamagra Kaufen ist auch fruchtbar für Patienten

    ReplyDelete
  54. Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.Monster Truck Show

    ReplyDelete
  55. Her charge, given to her by Trump, is to radically cut the Branch of Education, and to push forward private contract schools over what they call a faltering public educational framewor. 321 chat

    ReplyDelete
  56. wonderful points altogether, you simply received a logo new reader. What could you recommend in regards to your submit that you simply made some days ago? Any positive? trincomalee beach sri lanka

    ReplyDelete
  57. Hi my friend! I want to say that this article is amazing, nice written and include approximately all important infos. I would like to peer more posts like this .Discount Shop Store Online

    ReplyDelete
  58. dass Patienten mit erektiler Dysfunktion dieses Medikament mindestens 30 Minuten vor einem geplanten Geschlechtsverkehr einnehmen müssen. Kamagra enthält Sildenafil Citrat, die effektiv auf Männersystem für mehr als 6 Stunden nach der Einnahme arbeitet, was bedeutet, Kamagrashop

    ReplyDelete
  59. This is a great article thanks for sharing this informative information. I will visit your blog regularly for some latest post. I will visit your blog regularly for Some latest post.Game

    ReplyDelete
  60. I am thankful to you for sharing this article here.It's a nice article, Which you have shared here . Your article is very informative and I really liked the way you expressed your views in this post.seo

    ReplyDelete
  61. There is a possibility that the plants will be washed later in the microwave oven, do not use staples, paper clips, or other metal objects. Sometimes additional information is required to provide complete differentiation, as well as special staining techniques. travel

    ReplyDelete
  62. Have you at any point been enticed to make the best choice? Presumably not, however on the off chance that you've at any point deserted a heart quality food decision for a delightful calorie packed elective you've been enticed.Cape Verde Holidays

    ReplyDelete
  63. I am thankful to you for sharing this article here.It's a nice article, Which you have shared here . Your article is very informative and I really liked the way you expressed your views in this post Budapest property management

    ReplyDelete
  64. We’re an online shopping marketplace and we provide an affordable and seamless shopping experience. AllShopBiz offers shopping deals on the world’s largest selection of products and services. You can explore large range of products and product categories, as we provide you with the best prices across a wide-spread range of Electronics, Clothing and Apparels, Furniture etc. Looking for a website to purchase some electronic goods, but you don’t know where you can find a website where you can find everything related to electronics and more at a reasonable price?Shop Store

    ReplyDelete
  65. That was emphasized over and over again. That was how they presented health care cost reduction, that it would reduce the future costs. Not today, but it would reduce what we would pay in the future if we did nothing about it now cosmetic beauty facial mask raw material

    ReplyDelete
  66. wonderful points altogether, you simply received a logo new reader. What could you recommend in regards to your submit that you simply made some days ago? Any positive. Monster Truck Show

    ReplyDelete
  67. I guess I am the only one who came here to share my very own experience. Guess what!? I am using my laptop for almost the past 2 years, but I had no idea of solving some basic issues.
    https://free4crack.net/wp-admin/
    SolidWorks Crack

    ReplyDelete
  68. I think I need to hire someone like you to come deck out my house. I’m hopeless at this sort of thing. I know what I like, it just doesn’t get done! Tragic, I know. At least I can dream about someday become more adept at these things. LEGAL SERVICES

    ReplyDelete
  69. They smartly take advantage of that fact and then start flooding ones inbox in addition to snail-mail box having hundreds of no interest APR credit cards offers shortly after the holiday season closes. Knowing that for anyone who is like 98% in the American general public, you’ll soar at the one opportunity to consolidate consumer credit card debt and switch balances towards 0 interest rate credit cards.GH INTERNATIONAL

    ReplyDelete
  70. For those schools that offer doctoral certificate programs, an assumption for educators to be distributed in a way like that of a school teacher may in any case be set up. In any case, there is a requirement for another norm. ฤกษ์แต่งงาน 2565

    ReplyDelete
  71. An outstanding share! I’ve just forwarded this onto a coworker who has been conducting a little homework on this. And he in fact bought me lunch due to the fact that I stumbled upon it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanx for spending time to talk about this issue here on your web page. For more visit this site

    ReplyDelete
  72. The very next time I read a blog, I hope that it won’t disappoint me as much as this one. After all, I know it was my choice to read, however I genuinely thought you’d have something useful to talk about. All I hear is a bunch of whining about something that you can fix if you weren’t too busy searching for attention American airlines customer service

    ReplyDelete
  73. Sometimes I discover a product that gets me so excited. It is not very often you find something with unlimited possibilities. A product that can fix pretty much anything, that you can create new things with, and improve how other things work. I have been playing around with Sugru for a couple of weeks and I love it! It is one of those things that once you have it, you think of a million uses for it.check this url

    ReplyDelete
  74. It’s protection against the online threat and protects your device from cyber-attacks. Apart from the security features, It also offers real-time protection against online threats. Since it’s cloud-based platform, webroot doesn’t need updates and can block threats the moment they are carried out. game light

    ReplyDelete
  75. Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. Best Monster Truck Show

    ReplyDelete
  76. Thanks for an interesting blog. What else may I get that sort of info written in such a perfect approach? I have an undertaking that I am just now operating on, and I have been on the lookout for such info.visit this link

    ReplyDelete
  77. Thanks for an interesting blog. What else may I get that sort of info written in such a perfect approach? I have an undertaking that I am just now operating on, and I have been on the lookout for such info.ฤกษ์แต่งงาน

    ReplyDelete
  78. All the data is stored in a cloud server, you can easily access it anytime, anywhere. If you are Unable to do QBO login or encountering Intuit QuickBooks Online Login Problems while signing or logging to, you are at right place. ฤกษ์แต่งงาน

    ReplyDelete
  79. Good to become visiting your weblog again, it has been months for me. Nicely this article that i've been waited for so long. I will need this post to total my assignment in the college, and it has exact same topic together with your write-up. Thanks หาฤกษ์แต่งงาน 64

    ReplyDelete
  80. I have been watching the mini wreaths on a lot of people’s cabinets and do really love how they look but have yet to actually give it a try myself. gaminglight

    ReplyDelete
  81. Small extras like watch and gems go far to characterize anybody's fashion awareness clarifying why it just should be in ideal working condition. Women don't really see looks as simple things for keeping time and rather they need a complex item. That is the reason they can purchase utilized women Rolex watches with no second thoughts as long as it is useful and snappy Budapest short term rentals

    ReplyDelete
  82. Thank you for sharing your valuable information. It is very useful for us, Please visit below us:- Kamagra

    ReplyDelete
  83. Thanks for an interesting blog. What else may I get that sort of info written in such a perfect approach? I have an undertaking that I am just now operating on, and I have been on the lookout for such information.. Please visit below us:- Italiapharmacia

    ReplyDelete
  84. Wow! This can be one particular of the most useful blogs We’ve ever arrive across on this subject. Basically Magnificent. I’m also an expert in this topic so I can understand your hard work.Himalayan Persian Cat

    ReplyDelete
  85. The Webroot business management account is the online portal where you will use to manage all the Webroot business products. It is a central portal from which you can view and manage your protected devices. Budapest apartments

    ReplyDelete
  86. Fantastic post! Please keep sharing. I know of a roofing company if you are looking for Game Please get in touch! Thanks, have a good day.EFI

    ReplyDelete
  87. Are you looking for the hottest new dispensaries cannabis flower

    ReplyDelete
  88. I honestly appreciate the blog you have posted. Really looking forward to this kind of words.
    carrier 1.5 ton 5 star window ac price

    ReplyDelete
  89. Find it online for information. Although Modafinil was originally developed as an anti-narcolepsy drug, pioneers in the biohacking space soon.

    Visit Website: Modafinil

    So Best here related article visit: Where to Buy Modafinil Online

    ReplyDelete
  90. Instructor education targets giving educator education program through beginning instructor preparing for instructor students, and in-administration preparing for rehearsing educators to create proficient and submitted instructors for compelling educating and learning.Alternative Investment Options

    ReplyDelete
  91. I have been watching every single episode of this show and it has been quite impressing and entertaining for the first time. Now I have been really interested to see the new episode which is here.Online Personal Training

    ReplyDelete
  92. Danke für das tolle pharmaeu24 ist das beste Unternehmen für das Gesundheitsmedikament, ist das Medikament, das am besten gegen erektile Kamagra Bestellen https://pharmaeu24.com/ Dysfunktion eingesetzt wird

    ReplyDelete
  93. Toller Artikel mit vielen Hinweisen zu Designs und kreativer Idee. Dieser Artikel ist lesenswert, da er sich auf Kamapurure bezieht. weiter kannst du besuchen Kamagra Bestellen

    ReplyDelete
  94. Skinorac has skin care products for every skin type. Find the best face care and skin care products to match your skin's unique requirements.
    Below are the List of Blog Topics for Skinorac
    Tretinoin cream over the counter
    Best moisturizer to use with tretinoin
    Does tretinoin help with acne scars
    Best moisturizer for retin a dryness
    Careprost side effects
    Bimatoprost eye drops

    ReplyDelete
  95. Wow, das ist der tolle Artikel, den ich heute im Internet gefunden habe. Vielen Dank für das Teilen einer so wichtigen Information. für mehr Checkout-Blogs wie diesen Kamagra Kaufen

    ReplyDelete
  96. This provides a challenge in meeting patient expectations on one hand and diverse workforce on the other. Biological and clinical sciences have met with technological advances and have led to new treatment modalities. This has led to open new treatment sites and manage across the organization. SSD Cheap Web Hosting

    ReplyDelete
  97. Danke, dass du so einen schönen Artikel geteilt hast. Ich schätze Ihre Bemühungen beim Schreiben dieses sachkundigen Inhalts, dies hat mir und vielen Lesern im Zusammenhang mit dem Hundebot Apothekemed opencad sehr geholfen. Ich habe auch einige Artikel auf meiner Website, bitte schau mal rein Kamagra Bestellen

    ReplyDelete
  98. Nicht alle Daten werden auf einem privaten Server gespeichert, Sie können jederzeit und überall problemlos darauf zugreifen. Dass QuickBooks tatsächlich Online-Login-Probleme beim Einloggen sind, um die Lösung zu überprüfen Kamagra Kaufen

    ReplyDelete
  99. Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.Host Regions LTD

    ReplyDelete
  100. The very first benefit of personal content label dietary supplements may be the comfort it offers. Private label CBD manufacturing

    ReplyDelete
  101. It as nearly impossible to find educated people on this subject, but you seem like you know what you are talking about! ThanksCape Verde Accommodation Hotel

    ReplyDelete
  102. Nice article, Which you have shared here about the Marijuana. Your article is very informative and useful to know more about the decriminalization of marijuana. Thanks for sharing this article here.แบบการ์ดแต่งงาน

    ReplyDelete
  103. Hi,Content writing should be done to match a specific style or voice. And to be more precise web content writing has nothing do with your own personal taste or style preference.Roof Restoration Canberra

    ReplyDelete
  104. I'm glad I found this web site, I couldn't find any knowledge on this matter prior to.Also operate a site and if you are ever interested in doing some visitor writing for me if possible feel free to let me know, im always look for people to check out my web site.Asheville health insurance

    ReplyDelete
  105. I just wanted to say that I love every time visiting your wonderful post! Very powerful and have true and fresh information. Thanks for the post and effort! Please keep sharing more such a blog.

    For Visit:


    Visit Website: Whatsapp Marketing

    ReplyDelete