A New CNC Build - 3D Printer - El Cheapo

1246711

Comments

  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-02 - 08:58:07
    Ah ha! you have a combination disk/belt sander. That disc makes square ends easy. You previously omitted that one fact.

    I am finished with shop equipment. My 'days of dust' are pretty much over -- and I had many of them.
    Hwang Xian Shen, Puddleby-on-the-Marsh.
    All things considered, I can live and thrive without Microsoft products. LINUX is just fine.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-02 - 09:52:46
    Ah ha! you have a combination disk/belt sander. That disc makes square ends easy. You previously omitted that one fact.

    I did not omit anything, please refer to Post #26 of this thread :)


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • babinda01babinda01 Posts: 54
    edited 2014-04-02 - 14:56:53
    Hi Guys

    I mentioned this many many moons ago in a different thread, but I have a hack of the LinuxCNC Gcode compiler (runs under windows) that takes a gcode file, an .ini file (has all your motion parameters i.e. steps per unit, backlash settings etc. etc.), a tool file and a .var file, and from this it produces a new file of up to 6 axis worth of vector "steps to run per 1msec time slice". I was always going to use this as the base for a CNC router controller.

    I believe there was a chap (sorry I don't remember his name) that wrote a step&direction pulse generator, which had the ability to run really quickly (in the MHz range), I think by combining these two parts of the puzzle we are half way to a decent control.
    The problems I see are.
    1/ The file produced by the gcode compiler can be HUGE, if you have a gcode file that takes 1/2 an hour to run which you then break into 1ms vectors = a huge file.
    2/ The speed at which you need to transmit the vector moves to the prop is quite high.
    3/ How to handle feed hold (pause) and restart after a pause. The gcode compiler has already worked out ramps for the motion, but if we pause we need to add a ramp down, and then when we restart we need to ramp back up.
    4/ How to handle federate override i.e. slow the machine down or speed it up more than the programmed federate.

    I posted this gcode generator a few years ago, but if you think there is some merit in it I am happy to re attach it.

    Regards
    Andrew
  • idbruceidbruce Posts: 5,860
    edited 2014-04-02 - 17:01:16
    Andrew

    You can never have access to too many resources, so by all means, please attach it to this thread. This would be a nice location for such an item. And thanks for the post.

    Bruce


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • MicksterMickster Posts: 1,465
    edited 2014-04-02 - 17:33:18
    Failure is not an option...it's bundled with the software.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-02 - 17:40:49
    Mickster

    Thanks for the link.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • MicksterMickster Posts: 1,465
    edited 2014-04-02 - 18:57:41
    I would consider something like:
    http://gcodeprintr.dietzm.de

    And then, instead of aiming for a lower-cost "me too" product, I would shoot for a better solution by, for example, closing the darned position/velocity loops!
    Failure is not an option...it's bundled with the software.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-02 - 19:33:39
    Mickster

    What do you mean by "closing the darned position/velocity loops"?


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • babinda01babinda01 Posts: 54
    edited 2014-04-02 - 23:14:37
    Here is a link to the thread I mentioned earlier.

    http://forums.parallax.com/showthread.php/142705-Step-Dir-signal-generator-for-CNC

    Regards
    Andrew
  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 01:06:59
    As mentioned I am now working on the band saw...

    The saw is now mounted to a sturdy table and the motor is now mounted to the table. I opted against tearing the motor apart and changing out the leads, because it looked a little scary. The motor has four leads extending out through four holes in motor frame. The holes are protected from abrasion by rubber grommets and cloth insulation protects the wires. Anyhow, I do not want to tear up the cloth insulation on the wires, so I have decided to baby the wires and carefully attach a new cord with a grounding conductor. The motor frame will be drilled and tapped, to accept secure connection of the grounding conductor to the motor frame.

    At the present point in time, with my limited selection of 1/2" pulleys, 1233 SFPM is the slowest cutting speed that I will be able to obtain for cutting my aluminum. This speed is quite a bit faster than what I was hoping for, but it will have to do. I only have about twenty cuts to make, so I am hoping for the best. I will be using a 5/16" deep 14 TPI blade, with candle wax as a cutting lubricant.

    Well that is the present status of the band saw and my intentions, now I must go and mount a j-box for the motor for the termination of the new cord to the motor. It should not be too much longer and I will be able to start cutting my aluminum and begin some prototyping.

    EDIT: By the way, here is a link to a handy dandy SFPM calculator, just in case anyone is interested: http://vintagemachinery.org/math/sfpm.aspx


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 02:52:30
    At first glance, I knew the band saw motor was going to be a problem, but upon closer inspection, it is going to be downright difficult to make this wiring safe and secure. Since the band saw and table are actually quite nice and sturdy, I don't believe that I want to rush into anything that might jeopardize the overall integrity of the saw, such as installing unsafe and problematic wiring. I believe I will take a little time and think this through, before I end up regretting a hasty install.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 04:18:36
    Ahhhh, heck with it.....

    Until I can swap out the motor with internal wiring terminals, I have decided to live dangerously and make the wiring as temporary as possible, so that I can proceed with my prototyping. My new design for an actuator has been in CAD prison for way too long, and it is time to set it free, by creating several prototypes, (2) belt driven actuators and (1) screw driven actuator, from which I will attempt to build a 3D printer. Anyhow, I am simply going to add a cord to the band saw motor with wire nuts and tape, and then secure it to the table with zip ties, and of course, add the ground for the motor frame.

    There are several pressing issues that will periodically sidetrack me from this project, but hopefully, over the course of the next few weeks, I will be able to spend some time developing a new and low cost machine.

    So instead of discussing shop machinery, my main topic in this thread will be the progression of my project. I am not claiming that I will be successful, but I promise you that I will make a serious attempt to build a new machine. Hopefully within a week or two, I should have my core components made and ready for testing.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • MicksterMickster Posts: 1,465
    edited 2014-04-03 - 05:02:57
    idbruce wrote: »
    Mickster

    What do you mean by "closing the darned position/velocity loops"?

    Ref: Link to other thread in post #96, specifically the explanation about the difference between open-loop steppers (dumb and blind) to closed-loop servos.

    From a marketing perspective, I am convinced that the more intelligent technology would come out on top.

    Android devices: Wherever you look today, what do you see? People staring at a mobile device. Anyone with a smartphone or tablet already has a HMI with capacitive touchscreen, solid-state storage, wifi, bluetooth, etc., etc. and the power to handle the HUGE amount of data required for a CNC machine that needs to update it's vector position commands (X,Y,Z) at a rate of say 1KHz. Furthermore, you can keep an eye on your machine's progress/performance from a remote location.

    JMNSHO :-)

    Disclaimer: I know virtually nothing about 3d printing apart from the fact that it exists.
    Failure is not an option...it's bundled with the software.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-03 - 07:11:11
    Well, welcome to all who know next to nothing about 3-D printing, but would like to do something with a Parallax Propeller included.

    Steppers versus Servos...
    For these tiny machines, steppers are just fine. Servos get into huge horsepower devices for heavy industry, and cost and arm and a leg. The decisions are decided mostly by economics and the power that you require.

    My own experience was that I looked into 3-D printing some time ago and found that all the controller devices were Arduino which I was not interested in. And the simple fact thats that it seemed that the 3-D printer heads and the plastic cord that feeds them were expensive made me loose interest.

    Nonetheless, I have always been interested in CNC milling, which is strongly related. And I am interested in improving my Propeller programing knowledge.

    With all that in mind... this thread seems to be pretty much a learn as you go discussion.

    @IDBruce
    If you have a wiring mess that is all 120VAC or 240VAC mains, you might find a few Europa Terminal Blocks handy. These come in plastic strips that can be cut down when less wires are required. I doubt if they are easy to get in the USA, but I use them in Taiwan. They do not need to be mounted to a surface, but they have holes that allow them to do so.

    Go here... to purchase, or let me know if you need me to send you some.
    http://www.te.com/catalog/feat/en/c/16696?BML=10576,17844

    ++++++++++++++++++
    Other stuff... A list of 3-D printer firmware choices for the ArduinoUNO.

    The list is important as everyone is doing something a bit differently, but all use the ArduinoUNO for the controller board. I do have to admit, the most likely reason to use the ArduinoUNO rather than a Propeller is that there are several ADC inputs on the microcontroller and I suspect at least one is required to monitor the printer head temperature.

    http://reprap.org/wiki/List_of_Firmware

    I can't and won't try to create compatible Propeller code for all, but the truth is that one working set up is likely to be easily modified. The important thing is to get one working well and then evaluate the need to change to another.

    Much of what I have discussed about is about 'G-code'. In just looking at the RepRap file example, I find that it immediately gets outside the EIA RS-274D documentation and I have to reverse-engineer a working solution from the ArduinoUNO firmware code. No place else is a reliable source for explaining what existing software expects to interface successfully with.

    At this point, I have only looked at RepRap and I will stay with that for awhile. I have no reason to go through a long process of selection from the List of Firmware, which may omit something or change.

    Also, it has been suggested that it might be easier to use a Propellerduion GCC library and port the Arduino code directly over to the Propeller instead of starting with a completely new program. It is worth a try as a learning experience. So I may start another thread in the Propeller 1 Forum that has that as its only purpose.

    Regarding the lack of 'standard' G-code for 3-D printing....
    It really isn't a big deal. The EIA RS274D standard is a recommended scheme. Some industries hold tightly to it. For instance Gerber RS274D is nearly universal in the printed circuit board industry. Other industries tend to have every manufacturer add its own variation to the original. 3-D printing appears to be one of those industries.

    Right off the top. I looked into my Reprap code and it has G72 code that is undefined in the EIA standard that I suspect is a shift up one layer, and E-codes and F-codes that I suspect are print head codes... but I can't be sure from just reading the G-code file. I have to reverse engineer a working firmware for the ArduinoUNO, and look at what the internet says about how good it is.

    And so, that is where I am today --- simply put more research and testing.
    Hwang Xian Shen, Puddleby-on-the-Marsh.
    All things considered, I can live and thrive without Microsoft products. LINUX is just fine.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 07:22:03
    Mickster

    Thanks for getting back to me on that, I will have to set aside some time to check out the thread.
    From a marketing perspective, I am convinced that the more intelligent technology would come out on top.

    To be perfectly honest, I am sure you are correct. However at the current point in time, I would guess that the market is highly segmented. And I must freely admit, that I do not know how many segments there are or how high a percentage they have. If I were to venture a guess, I would guess that the manufacturer with a well matched quality output (printed items) and a high technology level, is probably the manufacturer with the largest gross sales to various organizations. That is one end of the extreme. The other end of the extreme is the hobbiest trying to piece on together, simply because he cannot afford it. When it finally rolls around to where everyone wants one in their home, the average person will not be able to buy commercial units. Then as time goes by, even the home units will have a high level of technology, which is where I believe you are most definitely correct. When it gets to that point, the company offering the highest technology level, will probably be the biggest 3D printer king.

    Here's the thing.... I have an idea or a design I should say, and I think it will work and be highly accurate for small and light loads. If I am correct in my assumptions, I will drastically cut the manufacturing cost and retail price of linear positioning for small and light loads. If I can maintain a high degree of accuracy, that does not mean that the technology for any by-product of these actuators should suffer. But the low cost 3D printers or actuators would allow me to at least get started so that I may advance into higher technology. Which would be nice.

    However, I could be wrong in my assumptions, and my new design could be a total failure :)


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 07:27:50
    Loopy
    @IDBruce
    If you have a wiring mess that is all 120VAC or 240VAC mains, you might find a few Europa Terminal Blocks handy. These come in plastic strips that can be cut down when less wires are required. I doubt if they are easy to get in the USA, but I use them in Taiwan. They do not need to be mounted to a surface, but they have holes that allow them to do so.

    Go here... to purchase, or let me know if you need me to send you some.
    http://www.te.com/catalog/feat/en/c/...ML=10576,17844

    Thanks, but the saw is already wired up and running. All I have to do now is mount the blade and I can start cutting. :)


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-03 - 07:54:20
    HI,
    I just found out the RepRep G-code requires a ArduinoDue, won't work on an ArduinoUNO.
    The ArduinioDue has a 512Kb flash ram space

    Since the ArduinoUNO tops out at 32Kb flash ram plus 2Kb generic ram, and the Propeller1 claims the same 32k in its hubram plus the cogram (4k of 32bit) space; it seems I have to go shopping for a different G-code/firmware. There are others that do support the ArduinoUno.
    Hwang Xian Shen, Puddleby-on-the-Marsh.
    All things considered, I can live and thrive without Microsoft products. LINUX is just fine.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 08:15:36
    Okay I lied..... Just a wee bit more shop talk.....

    As mentioned the band saw is now wired up, but there is actually one thing remaining before I can start cutting my materials, and that is making a cross-cut slide. Since the table does not have a groove milled for a miter gauge, my options are limited. While working on the band saw, I occassionally put some thought into the design of the slide and how I would achieve my goal. Since the saw is now wired up, I put my focus on that problem, and here is what I came up with..... Just in case someone else has a similar problem.

    The band saw table has approximately a 3/32" slot cut into it for the installation of the band saw blade. It has always been my intention to use this slot as guide for the cross-cut slide, but my previous way of thinking was way too complicated. Then it dawned on me...... Just drill two holes in a piece of angle aluminum across one of the legs and tap it with machine thread. Then turn down two machine screws to a diameter that is a couple thousandths less than than the slot in the table and screw them into the angle aluminum.

    Problem solved :)


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • TtailspinTtailspin Posts: 1,326
    edited 2014-04-03 - 08:53:31
    Picture a piece of flat stock sticking up above the table edge about 1/4" to 3/8", and a piece of 1/2" plywood with a groove the same thickness as the flat stock...
    The flat, or angle stock, clamped to the side of your table will make the "reverse" of the usual miter gauge groove. it can also be shimmed at one end or the other
    to make for super accurate cross cuts. :)



    -Tommy
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-03 - 09:09:33
    JIgs and set-ups are a big part of a woodworking shop for anything that needs repeated control. The same goes for metal working. But you can mix the two in some cases.

    If you have a good piece of plywood the size of the bandsaw top, you can cut a slot in it to have it cover the whole bandsaw top surface and you can clamp it to the table on the side that doesn't require the slide slot.

    So it is just a matter of loosing some height capacity on the bandsaw and routering a good slot into the plywood overlay. A good straight piece of steel or even wood can guide the router while cutting the slide slot.

    You may have already found a good solutions for yourself, but this is an alternative that doesn't required drilling and tapping holes into the bandsaw. The whole structure is temporary and can be removed when other tasks require the full depth of the bandsaw.

    Lots of ways to do this.
    Hwang Xian Shen, Puddleby-on-the-Marsh.
    All things considered, I can live and thrive without Microsoft products. LINUX is just fine.
  • pjvpjv Posts: 1,903
    edited 2014-04-03 - 09:39:47
    idbruce wrote: »

    with candle wax as a cutting lubricant.

    Bruce, under most circumstances methanol is a very good and inexpensive cutting fluid for aluminum. Also douse your files with it before attacking aluminum with them.

    Cheers,

    Peter (pjv)
  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 10:00:41
    Peter
    Bruce, under most circumstances methanol is a very good and inexpensive cutting fluid for aluminum. Also douse your files with it before attacking aluminum with them.

    I never heard that before, and after reading your post, I see that people use a variety of alcohols, including methanol, as a coolant/lubricant. Sounds a little scary, but even WD is flammable. I have also read that bees wax is a very good lubricant for cutting aluminum.

    Thanks for the tip.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 11:59:14
    I have used soap in the past when cutting aluminum with the table saw and miter saw, but I do not cut with those types of saws anymore, because that is scary also. Cutting aluminum with the miter saw was not too bad, because I could clamp it in place, but using a table saw to cut aluminum, well that just scared the begeezers out me. From now on, I leave those two methods for the young and fearless. However I must say that the soap was a little messy and I imagine candle wax would be almost the same.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • pjvpjv Posts: 1,903
    edited 2014-04-03 - 13:34:43
    Bruce;

    A table saw is rather high speed for aluminum, but it is commonly done. Not the preferred approach.

    We cut it with a "chop saw" type of machine, using a stainless steel blade, turning slowly, at about 10 to 20 RPM.

    Cheers,

    Peter (pjv)
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-03 - 14:52:53
    "Chop saw" is the preferred platform for cutting odd-ball materials. I wasn't aware that you could get one to slow down to such low RPMs, but the world keeps marching ahead with new innovations.

    Cut to the same length repeatedly is easily done by having the "Chop" set up with stops for lengths. Of course anything under 12" might not be easy to create a stop as the saw itself gets in the way. But with enough clamps and a little creativity, it can be done.

    Why not see if you can have a supplier of aluminum cut everything to length for you and avoid all this?
    Hwang Xian Shen, Puddleby-on-the-Marsh.
    All things considered, I can live and thrive without Microsoft products. LINUX is just fine.
  • idbruceidbruce Posts: 5,860
    edited 2014-04-03 - 15:34:21
    I have good news and I have bad news.

    The good news is that I have the band saw blade installed, with all the bearings and guides adjusted, for doing some cutting. So I fired it up and was able to see it run again after about twenty years of absence. :)

    The bad news is that my supposedly rigid table for the sander sagged overnight from the weight of the sander. Which means that I will have to create a new top and recalibrate. ARRRRRRGGGG

    @Loopy
    Why not see if you can have a supplier of aluminum cut everything to length for you and avoid all this?

    Now that is funny!!!! First off, they charge a serious cut charge, secondly they never cut the ends square, thirdly they must have some serious goof offs working for them because my material is often all scratched up, and I am sure there is a fourth reason, but I just can't think of it :) If they were not the lowest price, I would definitely get my materials from another supplier, but in the end, I will find another supplier because I am highly unsatisfied.

    And besides, when it is all setup, I will always be able to cut my own metal, which is very important, because who wants to wait for an order of metal to arrive when there is a project to build. I am perfectly content setting up these tools for myself. May not be as fast as a chop saw with stops, but it will get the job done well enough to meet my satisfaction.

    @Peter
    We cut it with a "chop saw" type of machine, using a stainless steel blade, turning slowly, at about 10 to 20 RPM

    That sounds pretty sweet. I always used a carbide tipped blade on both the miter saw and table saw. Is there any benefit to the stainless blade? And yeah the table saw blade moves rather quickly. The table saw always cut well, but it scared me to death.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

  • pjvpjv Posts: 1,903
    edited 2014-04-03 - 17:58:26
    Bruce,

    The saw came with that blade, and it resharpens nicely. It is very finely toothed and with the slow speed give a beautiful cut. The whole setup is a machine shop unit, is rock solid and has a built in cooling/lubricating system. The blade is about 14 inches diameter.

    Cheers,

    Peter (pjv)
  • $WMc%$WMc% Posts: 1,884
    edited 2014-04-03 - 18:18:14
    Hello Bruce
    '
    Great to see you posting again.
    '
    I'm working on a CNC/3D printer combo myself, Using 1.8 Deg. steppers and 10pitched twin lead Acme screws with Graphite anti-backlash nuts. My hardware works good, My software...Not so much.
    '
    Thanks for starting this post, I'll get a ton of info out it.
    '
    Thank you babinda01For the link example012.gcode.txt‎ (485.7 KB, 4 views)


    user-offline.png
    __Walt McDonald__

    The Truth is out there
    It's not rocket-surgery
    I see why we don't have any water,All of the pipes are full of wires!
    E=WMc2
    Now with WiFi
    Not in the Spin Bunch
    import RPi.GPIO as GPIO

    ABB M202 certified
    ABB M211 certified
  • $WMc%$WMc% Posts: 1,884
    edited 2014-04-03 - 18:29:12
    Bruce
    '
    If your band saw motor has brushes it's a DC motor with a FWBR. A PWM with the rite current can slow this motor down. I use a PWM rated for 125vdc @ 20amps on my spindle motor.(A DeWalt trim router)
    '
    Of course if it's induction you would need a VFD.
    '
    Just throwing some ideas out.
    __Walt McDonald__

    The Truth is out there
    It's not rocket-surgery
    I see why we don't have any water,All of the pipes are full of wires!
    E=WMc2
    Now with WiFi
    Not in the Spin Bunch
    import RPi.GPIO as GPIO

    ABB M202 certified
    ABB M211 certified
  • idbruceidbruce Posts: 5,860
    edited 2014-04-04 - 00:37:32
    Hey Walt

    Good to see that you are still around also and taking the letters X, Y, and Z very seriously, and of course you should, because they are the most important letters of the alphabet :)
    Thanks for starting this post, I'll get a ton of info out it.

    Yeah, Loopy has been presenting a lot of information on his G-Code research. Thank you Loopy.

    I was really hoping to be past the shop stuff at this point, but the sagging of the sander table was a real setback, nothing horrible, but still a setback. It is currently about 2:30 AM, so I imagine I will spend the wee hours making my guide for the band saw, and then later today, when I can run the table saw without waking the neighbors, I will try to resolve the sander table issues. I think I am going to try and jack the sag back to it's normal position and just add some stiffeners under the top. I think that would probably be the easiest and cheapest solution. I don't imagine that making the guide should take long, so I will probably be cutting a few blanks this morning, just to test the saw out.

    It is most definitely a brushed motor, and there has to be a full wave bridge in there somewhere, so I suppose speed control is an option, but I did not think of that until you mentioned it. Pulleys and belts are such a pain to work with, especially if you don't have a large selection of pulleys to obtain the spped you need. Considering that I did not really want to rip the pulley off another machine, I had to settle in at 1775 SFPM, which is pretty darn fast for cutting aluminum with a band saw. I will just have to see how it goes for now.

    Walt, hopefully we'll see a lot of participation from you in this thread.

    Anyhow I am off to fix some more of my remaining shop problems.


    Novel Solutions - http://www.novelsolutionsonline.com/ - Machinery Design • - • Product Development
    "Necessity is the mother of invention." - Author unknown.

Sign In or Register to comment.