rugdmmac

Project Category: Robotics and fabrication

Community: Sensorica

Objectives

Develop a new, groundbreaking digital fabrication tool, both the hardware and the software.

The goal is to be take a major step closer to the ideal of being able to produce anything you can design in CAD software from the best materials for your purpose, to sufficiently high accuracy, at low cost and high speed.

The hardware is essentially a cnc tool which consists of an ordinary, small auto tool change router made from off the shelf parts, plus the deposition apparatus. (A router is a milling machine made for soft materials.)

This is used to deposit layers *wholesale* i.e. as thin rectangular blocks. So not quite the same as a printer.

Then, the layers are machined to the specified shape by the router. That is, material is removed by a rotating tool that looks a bit like a drill bit. The tool is moved around to carve away material. The tool can change between many sizes of tool automatically, including tools that are very small, for small details, such as 50 microns wide, for instance.

Two different material types can be deposited. One of the materials can be selectively removed from the other one, by e.g. dissolution with water, while the other is not affected by water.

This process can be used to produce *a mold* of *any desired shape*. That's a key factor. Because support material is part of the process, there is almost no limitation on the shapes that can be made. Secondly, the mold is *highly* accurate, it can be within mere microns of the ideal, specified shape.

The mold can then be filled with a wide range of materials, certainly including high strength materials such as glass fiber or carbon fiber filled epoxy or polyurethanes, which is about as strong as typical aluminum alloys, and copy the mold almost exactly, giving high accuracy. Also foams, and rubbers, and injection moldable plastics such as nylon, PEEK, etc. This variety is a great strength. The molding process eliminates interlayer bonding issues, elephant footing, and internal stress problems.

If the mold is temperature resistant, then objects consisting of metals such as zinc-aluminum alloys, copper, aluminum, and possibly steel and maybe even titanium, can be produced. This of course requires some accessory equipment. Accuracy may suffer for any of various reasons, however a premium process which includes preheating the mold and directional bottom up cooling, may give results within a thousandth of an inch or something.

The mold is then disintegrated. The exact way this is accomplished depends on the material, however the main candidates use a standard, low cost ultrasonic washing machine to disintegrate the brittle cast material, leaving the more durable, desired, molded object unharmed.

Description

OpenRUGDMMAC, pronounced "open rugged-mac", is essentially a successor to 3d printing.

It uses additive combined with subtractive manufacturing techniques to overcome the fundamental weaknesses of both. The system produces highly accurate, disintegratable molds of almost any desired shape, from e.g. highly heat resistant graphite, with none of the geometrical or accuracy limits imposed by machining, or 3d printing. These molds are then filled in sort of premium molding or casting process. The part, still surrounded by the mold, is submersed in a water bath, subject to ultrasound n a low cost ultrasonic cleaner, to disintegrate the mold, even from the smallest cracks, and you have your part.


The exact materials used may need to be changed up, depending on how development goes on the graphite/urea ultrasonic powder consolidation approach.

So why does this matter so much?

This will allow the production of single material, homogeneous physical objects with an unprecedented and extremely valuable combination of: high accuracy (~10 microns) and smooth surfaces, possible large size (a car or tractor chassis for example), using high quality materials, with no layer bonding issues or internal stress, of nearly any shape that can be drawn with CAD tools, with relatively low labor input (for CAD and also physical finishing etc.), very good material usage efficiency (the mold and support materials can be recyclable), good energy efficiency, low capital cost per production machine (this is a key aspect which allows 3d printers to be a powerful force in society), and high ratio of productivity per unit capital cost (clearly important for a business), as well as relatively high speed of production (so, low leadtimes).

It requires no new science, we just need to do some designing, software development, and find suitable compatible materials for deposition and selective removal. The technical risk is relatively small; it will definitely work to some degree, it is just a matter of getting the most out of it. There are other teams that have made similar machines.

The two major challenges are to produce a good CAM tool, which makes the toolpaths and determines layer heights, and secondly to develop a good combination of compatible materials to produce the mold from, and the associated deposition apparatus. And the selective material removal accessory to remove the support material, some modest equipment to do the molding process, and finally, the mold material removal equipment. I admit it seems a bit complicated, but the reality is that 3d printing also requires a lot of post processing, and this is still a lot easier than a lot of cnc machining approaches.

The construction and design of the auto tool change router is already completed, we can simply buy a common 3040 router from china for $2000 or so, and add an automatic tool change spindle for $1000 more. We can use standard commodity electronics and Linux CNC. LinuxCNC can communicate with an arduino to control the deposition apparatus with M100 codes and python scripts, the path forward there is clear.

Most of the discussion on this page is about the deposition method that involves pressing and subjecting to ultrasound a powder, ideally graphite mixed with a small amount of iron or maybe manganese (intercalated graphite), and a water soluble material such as urea. Ultimately, it will be a bit like the situation with zcorp powder bed inkjet printers; the development of the materials will continue well after the first machines are released.

Background

This project is the direct outgrowth of two years of experience in fablabs and makerspaces around the world, full time. Including 4 months at open source ecology. As I proceeded to try to be an open source hardware entrepreneur, I realized humanity currently has no way to economically make accurate objects of the sort we frequently need, especially of a size larger than typical 3d printed objects, especially of high complexity or with certain features such as threads, especially of metals or other high performance materials, and of high accuracy, and all these things together at once. This technique will provide major progress on all those fronts practically overnight, so it may be a big deal.


Features

    • Inherently capable of higher accuracy than 3d printing. This is very important for many applications, where parts must have bearing surfaces, seal against fluid leakage, snap together, or otherwise fit closely or be precisely shaped. This also means smooth surface finishes. There is none of the stair step effect seen in conventional layer by layer additive manufacturing. The distortions caused in sintering and heat treatment can also be greatly reduced through techniques that include the use of a custom shaped, highly accurate, temperature resistant mold.

    • Capable of realizing parts with almost any feature size, aspect ratio, and sharpness, through the use of a sufficiently small layer height and sufficiently small diameter tools. This is an essential enabling and distinguishing factor. We can make objects as thin as a water bottle wall, and as small as micro gears, or as large as a car chassis, or features like this all present in a single part.

    • It is inherently far faster for large objects. Things like engine parts, agricultural power tools, even a whole automotive chassis can be produced relatively quickly, because the milling process speed increases greatly with the size of the tool used, and larger objects allow for larger tools. Unlike 3d printing, there is no need to compromise on accuracy or feature size to achieve high build speeds.

    • Capable of producing accurate, stress free parts. This is also a core empowering factor, which allows us to reach further than conventional layer by layer manufacturing can, and yet with a very wide range of materials. Stress is a concept that is not commonly understood in the maker community, but it is a critical factor in any manufactured part. In conventional layered manufacturing, the layers contract upon deposition, and this leads to the so called elephant foot phenomenon, in which the part curls upward off the build plate. This occurs with almost all additive manufacturing, and adds up with each layer, becoming crippling for larger objects. Although there are many methods to try to mitigate this, they always have and always will be far from perfect, and will be specific to the materials used. Rugdmmac circumvents this by printing a cast out of specialized materials which do not suffer from elephant footing, and then producing the final part from a very wide selection of materials through molding, without the complications of layer bonding, or layer by layer shrinkage. In some cases, the casting may be heat treated while still inside the mold, allowing distortion to be prevented.

    • Capable of using a very wide range of materials relatively easily, with little additional development effort. Metals of any kind through casting or sintering, the toughest ceramics through gel casting and sintering, unreinforced or fiber reinforced plastics of nearly any kind - including polycarbonate, peek, nylon, specialized plastics for chemical engineering or medical uses. Even glass is commonly injection molded. Elastomers such as natural rubber or silicone rubbers. Foams, for the soles of shoes or garments. This is the third core enabling factor. Many of these materials *cannot be machined or printed*. You could machine or print a mold, but to directly produce the mold without geometric or accuracy limitations is even better.

    • The basic process is beyond patent. The process has already been patented, and the patent expired. It was patented around 1992 as a process called Shape deposition Manufacturing (or modelling), by some researchers at Cornell. I think this is probably the main reason no one else is developing this promising technology. But for us it is a good thing.


Limitations:

  • The main issue of course is that it requires development. The software to do the toolpath generation and layer height determination, and the method and apparatus to deposit and then selectively remove the materials, are the main thing. We do not need to sweat designing an automatic tool change router, a normal router can be purchased and used as is, and we can simply replace the spindle on it with an automatic tool change spindle, which are common and relatively not expensive (about a thousand bucks). Using linuxcnc is probably a good idea. I have investigated, and it is pretty easy to interface linuxcnc to a material deposition apparatus.

  • The speed of the process depends on the sophistication of the software. Some features may require a lot of thin layers, and this may slow things down substantially. It also depends how long it takes to deposit a layer.

  • It is more complicated than a 3d printer, and the whole system of mold production, selective material removal, drying the mold perhaps, filling the mold ideally under vacuum, and disintegrating the mold material, is a bit complicated compared with some 3d printing approaches. However if you recognize the need for post processing of 3d printed stuff, then the gap closes. Secondly, you can make a lot of things with this that you can never make with 3d printing, so the thing to compare it with is another mold production approach, which is looking just as complicated and time consuming. Lastly, the cost is generally a lot lower than metal 3d printers due to the need for high power lasers and expensive metal powders.

  • I am concerned about retail price. Fundamentally it should not be high, however when we look at 3d printers like the Carbon M1, they are not inherently expensive, but they are grossly overpriced. We still need to make money and need investment, which will have to be paid off. This is not incompatible with open source.

Communication and coordination

Communication channels

Coordination tools

Planning

Open project in NRP-CAS

Project status

Design considerations stage

Current needs

  • Software / python developer

  • Animator

  • Workplace, funding, housing for workers, time.

Documentation repository

See also THIS folder for some journal articles on prior work done by others, such as Mold Shape Deposition Manufacturing, and Decomposed Injection Sculpturing

Incentives

To achieve the construction of the mark 1 prototype, so much of it needs to be done in person and it is sufficiently conventional work that I think it may be sensible to offer as an incentive for those who contribute money or direct contributions, through for instance a kickstarter:

  • Tech support for early adopters of the machine, mark 1. This is important as it allows us to ship a less finished machine, knowing we will be there to help set up and operate the machines. It also targets the right audience substantially.

  • First dibs on obtaining a machine. We will order parts and ship them out as a kit so people can make their own machines.

  • We can sell the machines. Best to sell complete machines, linuxcnc and computer included.

  • A physical usb drive or DVD of instructional materials or documentation. The data itsself should be available for free online.

  • A physical object made with the machine. Perhaps a screw driver bit set or similar, or a chess set or figurine, something small (and ideally useful) so it is easy to make a reasonable number of them. They would be sold at a high profit margin like girl guide cookies; you know the main reason you buy it is to support the project. But because the object has to be made with the machine, the sale comes with the promise of some meaningful progress. This is probably the best idea for the early stages of the project, because promising a finished machine is a bit of a leap. We need to do some development, and need funding for that stage first.

  • We should respect substantially the inherent reward of doing something valuable and important, and working on something rewarding. I am after all doing this thus far for that reason. There are other people who have some extra time and want to be involved in something important. In many cases donors would be donating for this reason, so direct contributions for this reason are not unrealistic. I am willing to do the in person prototyping work, and may be able to find locals in Cornwall who are also interested, especially students. For the CAM software, remote work might be possible.


These incentives exclude priority access or exclusive access to seriously valuable information/locking (or trying to) anyone out of access to any information. This allows the information to be free. We want to produce high quality documentation and get it out as fast as possible to spread this concept. We can charge for hardware and tech support, and make a profit there. The lessons learned from tech support should be encoded in documentation and made available for free, not hidden and used for further profiteering by getting a monopoly on the service of tech support. There is always that extra bit of learning and digesting the documentation, background knowledge etc. which is needed to fill the role of tech support, and that is what we can focus on getting paid for.


There are many funding models and things we can do to obtain money that do not entail charging for access to information. Part of the reason people will be supporting us is that they want to see something important and interesting get done. To make the information we produce free as in beer and the designs free as in speach, is something that is part of that, so it does bring in funding some.


There is a problem with funding the research stages. We can wrap the research and product development and eventual production of machines into one big chunk. But that becomes onerous as fundamentally we may encounter serious hurdles that take time and effort and money to overcome. How can we really promise a machine? We can promise a machine that can do something, surely. An initial proof of concept.

Maybe the most practical goal for now is a modest budget and time. Maybe I will be able to achieve that later this summer, a budget of $1500 a month and a workspace.


Update dec 28 2020: Yeah. I have been trying to think of how to make some progress here, and it is starting to look like a conventional company might be the only practical way, because people really don't tend to budge unless you pay them huge sums of money, which means work isn't going to get done if we don't pay people. To pay people we need capital, and have to get huge amounts of revenue to pay it back. It's hard to see what role open source plays in enhancing that for a small enterprise, aside from marketing. The reality is that people don't really contribute much to open source projects. However, it is also true that great open source projects such as the RepRap, were only made possible because the technology was explored and popularized by more conventional businesses. Without that, no one would understand the value that FDM even had. That may be true here, too. It may be that the best way to an open source RUGDMMAC machine is to make a conventional profit focussed company to advance it, however, and this is important, the project is inherently well suited to freedom and open source, that is baked into the approach on a fundamental level. It is as previously mentioned unpatentable, for instance, and also uses relatively low cost commodity equipment as the consituents of the machine. Clearly this kind of problem is what the sensorica value accounting system is for. So I will try to use it as well as it can be used, at least.

Governance

more on Governance page
PROJECTS are seen as COLLABORATIVE VENTURES, which are TRANSPARENT (anyone has access to the information that they produce) and OPEN (anyone can participate). They only produce PRODUCTS and services based on OPEN SOURCE knowledge or technology. PROJECTS have a CUSTODIAN that represents them legally and acts as a trust for their tangible assets. PROJECTS can have multiple EXCHANGE FIRMS, which are commercial entities that move products and services developed by PROJECTS on the MARKET. EXCHANGE FIRMS oblige themselves by contract with the CUSTODIAN to share PROFIT with all contributors to PROJECTS, from which they commercialize PRODUCTS.


Open Project governance document

[Instruction: link to governance doc, use template to create governance - delete this after]

Organisational context

  • Network/Community: ...

  • Custodian: ...

  • Exchange firm: ...

Agreements

  • Custodian Agreement [provide link]

  • Exchange Firm Agreement [provide link]

  • Project Governance Template [provide link]


Notes/Blog

[you need to become a project affiliate to gain access to edit the website, in order to update these notes]

Contact Anthony if you want to contribute. (Anthony.a.douglas@gmail.com). Tibi is helping setting up the project structure, planning and will provide help to newcomers.

Old blog posts

We are at the Design Consideration stage.

Ultrasonic deposition is strongly considered, because it allows deposition of thin layers with only a few tens of seconds of deposition time. The previous choice of using calcium aluminate cement and dental stone combined with anhydrous magnesium sulphate (to make the set stuff water soluble, there are papers on such compositions) entails significant setting times of a few minutes per layer, and I steered away from it out of concernt that the water in the CAC mixture would dissolve the magnesium sulphate and dental stone mixture undesireably, leading to poor accuracy. Some preliminary experiments are needed to further support this.

Update feb 11 2020:

  • I have been doing some CAD design work on what could be the mark 1 prototype, the first actual part producing system. Exactly how the prototyping will go will depend on a lot of factors, but it may be possible to skip directly to making a mark 1 after doing some testing with the ultrasonic deposition method.

  • I did a rendering of the latest and greatest mark 1, and here is the cad file:https://myhub.autodesk360.com/ue28bb349/shares/public/SH919a0QTf3c32634dcfe06805a408f84d02

  • I have an appointment tomorrow to produce the 2 parts needed for the ultrasonic deposition test, which will use an apparatus like this:https://a360.co/2TJTlgU . This illustrates a pneumatic piston of 4 inches bore diameter, which is about right, to provide the up to 2000 psi pressure that is good for experimenting. The small piston and cylinder it attaches to is where the powder goes, and the cylinder underneath is the ultrasonic transducer. . Hopefully we will need less than e.g. 500 psi, but for experimenting it is good to have that capacity. I might be able to get access to a shop press to do the experiment in, but I would need to introduce some air into the hydraulic system in order to give it the springiness it needs to keep the powder under constant pressure despite the change in volume that the powder undergoes during ultrasonication.

  • it will be major progress to get the ultrasonic deposition testing done, maybe I can do that in the next two months. If it brings good news, that heralds a good future. The only other big issue is the development of the software to do the slicing, and most critically, the cam automation.

  • I think I would prefer to change the mark 1 to use a standard shop press, and then modify the milling machine so it can fit into the press, rather than making the press move like this. Shown is a pneumatic cylinder, but it will take too long to do a deposition cycle I think due to the impractically large volume of air, plus it is a lot of stored energy there. Probably better to use hydraulics. And best to use a standard shop press when first prototyping. However the problem is that the ball screws under a standard router do not allow for anything underneath the router, where the ultrasonic transducers go. Things just do not fit together well. I need to modify the press or the router, but pick one. I think modifying the router with relatively little regard to accuracy is probably the best idea. Just get something that can make parts first, then improve the accuracy later.



update feb 12:

  • I lathed the 2 parts for the ultrasonic test apparatus and shopped around for parts. It would be at least $350 to get the parts and shipping for everything, so I am focusing on other stuff for now. Notably the cam programming procedure.

  • did some work today trying to figure out a pseudo algorithm, to be made into code as a fusion 360 plugin later, to automate or semi automate the cam programming. This is the cad model I have been using thus far as a test object, to consider various strategies https://a360.co/37kJnWx . It could stand to be more complex, so the various different situations could be considered. The wavy tilted area towards the top is definitely going to be a bit slow to manufacture, but doable.


update feb 15:


shit. So I was just gearing up to do a test with that apparatus for ultrasonic deposition, and now I can't decide which is a better deposition methodology to pursue. I have to decide soon while I still have enough time at the hackerspace. It might be a long time before I have access to such tools and workplace again. My life is extremely not geared to this type of development work right now, but hopefully it will improve. Maybe I should just focus on the software and not touch the hardware side of things. I really don't know. It is mostly about money, it will cost me at least $400 to do the ultrasonic testing, and I can't spare that right now. Plus I might not get much testing done before it is time to go. But the reality is that it is probably a lot easier to do the ultrasonic testing Maybe I should just go for it. Ultrasonic can use many different powders.

    • I think I should set up an instagram and or wordpress, which I can embed on this website. I need to try to build a following for an eventual indiegogo or kickstarter campaign. I have heard from multiple sources that a successful crowdsourcing campaign requires an existing following.

update March 1:

  • I have been continuing work, and have actually spent the money to order the parts to do the ultrasonic testing. I am extending my time at the makerspace here in an effort to get at least some modest test done. It cost me $520 or so in parts, which I really cannot afford just for fun, however I take this project seriously and hope that a kickstarter or similar will pay back this investment later.

  • There was an issue with amazon, they messed things up and cancelled the order without alerting me. So I placed the order again, but it is time lost. It is a good thing I checked instead of just allowing time to pass. You can't trust these people to get things done.

  • I got an oring for the piston, it cost me $22, got the base plate of the ultrasonic transducer system made out of aluminum plate. Just to recap, the goal here is to put together a pneumatic cylinder that connects to a smaller piston and cylinder, with an ultrasonic transducer beneath it. I mix the graphite and iron in a ball mill, then take that powder, put it in the small piston, connect the larger piston to the output of an air pressure regulator so I can adjust the pressure and know what it is, then turn on the ultrasonic transducer, and hopefully that will consolidate the powder into a solid material. I am more than a little worried it will not work very well and I will have invested all this time and effort for little in return, but if that happens I just have to keep going, experimenting with longer ball milling times, maybe more iron, higher ultrasonic frequencies, longer ultrasonication and higher pressures. The diameter of the smaller piston is 31 mm and the larger piston is 100 mm. If I need higher pressures I may need to make a new, smaller small piston. But, patents indicate this should work.

  • I also need to test some other solids for use as a support material. Some powdered sugar, maybe salt and urea if I can get some.

  • I set up an instagram account, RUGDMMAC, https://www.instagram.com/rugdmmac/ . I am doing this hoping rather beyond hope to get some subscribers, because apparently it is critical to have an existing fan base when you go to make a crowdfunding campaign. There are non linear phenomenon that occur, in which people won't contribute unless they see others contributing. Thus, even good campaigns can remain dead in the water unless you have an existing fan base to come in and jump start things. Sigh, as usual you can't just do good work and get good results, you have to play some sort of game. If people would just recognize good stuff and support it with a good long term perspective... I did actually have a blog on tiny houses once, though, and was surprised to find I actually got a few hundred subscribers without hardly trying, so we will see. I have an old account open source matter rearrangements that I can advertise on.

March 29:

  • Progress has been continuing some. I have been posting on the instagram channel. I have successfully consolidated some powdered sugar into a chalk like substance, which is suitable for milling. However, the iron and graphite have not arrived yet, so I cannot try with those, and secondly, ultrasound played little role in that consolidation of the sugar. It as at 1100 bar pressure, a lot of pressure. Possibly too much. Or maybe we will end up eliminating the ultrasound and just use pressure, who knows. There is a document in which some researchers do this with carbide powder. Still, 1100 bar is a lot, hydraulics usually operate at 3000 psi, which is about 200 bar. So we would need a very large piston or higher hydraulic pressures than usual. With a 20 ton hydraulic press, we only get a build area of ... 1100 bar is 11,336 tons per sq meter, so we get 20/11336 = 0.00176 square meters, 17 square centimeters. hm. not very big. The goal was more like a 10 cm diameter circle, so 78 sq cm. However, with the use of ultrasound we might be able to increase the solidity/ pressure ratio by a factor of several.

  • The main problem right now with the ultrasonic transducer is that the power supply operates at a nearly fixed 40 khz. I have been able to measure the resonant frequency of the aparatus and transducer in a range of configurations, and it varies from about 44 khz to 50 khz. This was done using an oscilloscope and frequency generator, and adjusting the frequency until the voltage and current are in phase (the current also jumps way up and the voltage decreases as the impedance drops way down and the frequency generator cannot uphold the specified voltage)

  • An important option might be a so called matching network to match the impedances of the transducer to the power supply, increasing power output. I understand how this works poorly at present though. Ideally, we would get a power supply that can have it's frequency adjusted, or adjusts automaticaly.

  • If there are multiple transducers, they may all operate at slightly different resonant frequencies, further complicating things as the could not be just driven in parallel. It may be that they can be driven in parallel though. And, rather than connecting them in parallel maybe we could connect them in series i.e. stack the transducers. I would rather use parallel I think though.

  • Anyway, so I am shopping around for a power supply that can supply the relevant voltage and current. It is not clear to me what the voltage and current are really. I think it is less than 800 volts peak to peak, but I am having a hard time measuring it. https://hackaday.io/project/4689-improve-the-haber-process/log/16986-analysis-of-the-ebay-ultrasonic-power-supply https://hackaday.io/project/4689-improve-the-haber-process/log/16375-reverse-engineering-a-cheap-ebay-ultrasonic-power-supply

  • probably I will have to buy a real ultrasonic generator, like https://www.ebay.com/itm/Ultrasonic-generator-600W-3000W-for-ultrasonic-cleaner-28k-135K-Transducer-/223416226356 . I don't have the money or the time to wait for shipping right now, though. Also, it might be better to build one, perhaps using a large amplifier and a signal generator. It is not clear what voltage I need.

  • important update on the CAM software: Very bad news; fusion 360 does not have support for most of the cam functionality in the api. You cannot make toolpaths through the api. So the approach I was going to use, of making a plugin for fusion 360 that would do the slicing and toolpathing is shot. It is not even very good for the slicing, because it cannot do an isocline split, and I think it might be too limited. The use of solidworks api might do better for the slicing, or some other software that I have yet to discover. Then, I am looking into powermill, which apparently has good macro functionality, for the automation of the CAM. In the meantime I guess I will continue working in Fusion 360 to do the CAM by hand. I will probably be focussing on the high level algorithm for how to do the CAM by hand, then this will be encoded into software later. The problem is that it would be good to know what the software is capable of and how it works so I can keep that in mind while doing the higher level algorithm development. I am seriously disappointed that I cannot do everything with python and fusion 360, now. Pycam is one thing that might come in useful. Fuck. Seriously. That was supposed to be the relatively short and easy and viable path. Now everything is a lot harder *** I am looking for a collaborator for the software, as it is clear it requires extensive skill and knowledge that it is impractical for me to develop specially for this one occasion.***

update april 14 2020:

  • I continue working on the manual cam. This will allow the production of early test parts, albeit with laborious cam programming to produce them. Hopefully this will bring in interest and funding that can be used to complete some better cam software specific to this type of manufacturing.

  • I realized I can program the cnc machine to do deposition by using the so called pass through option in fusion and also an M code, codes M100-M199 are custom codes, if you simply put an executable file named M100.exe in the right folder on the machine used for linuxcnc, when the M code is called, linuxcnc pauses the program, runs the executable, and picks up when the executable terminates. Perfect. Parameters can be passed using the P and Q arguments, so if I simply program M101 Q50.5 to indicate I want the deposition apparatus to deposit sugar up to 50.5 mm, then that parameter can be accessed by an executable python script, which communicates with an arduino, which runs the deposition apparatus stepper motors etc. Perfect. I have an idea to control the quantity of powder, simply treat it like a fluid and inject it into the volume to be filled, when it is full the pressure increases and injection can be terminated.

  • These things all dovetail quite nicely and will take relatively little development effort to get to the first test part, so things are going well that way.

  • I have heard from a random source that the Fusion 360 cam api is going to come out in a few months, but we will see. it is not clear if I can do the analysis that is needed to determine layer heights. however maybe we can leave that for last and at least bash out a quick plugin that makes it possible to program parts with some tens of layers practically, just using python scripting and fusion. Otherwise we are looking at trying to find a collaborator that can make use of python to program something with pycam etc.


I was just thinking it would be good to come up with a list of parts that can be made and sold using the system, or ideally which would be directly useful to the users and the people around them. They should ideally be very explicit, rather than "some car parts", at least "crankshaft arms". " windshield wipers". Hm. it would not be very practical, though, to make a windshield wiper, but I'm sure you could. The thing is you would want to make several and stock or sell them, after you do all the labor of designing and producing one. You could sell the digital file, too, and other people around the globe could use it. That can still be open source, you would provide the entire original cad file in a format like freecad which people can access effectively, rather than just the stl or iges or step file. And do a good job on the cad so it can be modified.

Hm. I have to think about the parts I would have used. A wheel for a car yeah, I think so, with the right sized machine. Again, with a very large machine you could produce the chassis for a tractor or car. You would probably want some other deposition mechanism for that. I tend to focus on things you cannot print or machine, but that's not what it's all about. The net sum of all properties including the total cost of the whole set of equipment and running costs of the machine, set up time etc. are what make RUGDMMAC really stand out, and open the door. To machine a car wheel from stock would be highly uneconomical. To print it, likewise. But to simply make a cast with rugdmmac, then put it in the oven for a heat/cool cycle, get the cast off with an ultrasound bath, could be fine.

Ok, some ideas, with some emphasis on money making and saving, which gives immediate and obvious value:

And some less immediately obvious things. These are just things I have thought I would want and would be useful but you cannot get, and rugdmmac would be useful in producing, although it certainly does not do all the work:

  • A general purpose liquid fuel combustor. Perhaps a set, one each of a range of sizes. Suitable for vegetable oil, heating oil, whatever.

  • A personal person heater. This is a device which combusts fuel, biomass or liquid fuel, and expels hot air, clean air as a heat exchanger is used.

  • A decent biomass combustor

  • a decent converter to convert biomass to electricity. Almost all of the parts could be made. The tightly fitting, sealing parts are less practical, they always are. The extremely smooth parts like the bushings on a crankshaft would require a finishing operation of some kind, but perhaps a simple one like a bath of vibrating ceramic media. That might not be enough. You might have to buy a modular bearing. Or, hey you could use a hydrostatic bearing in many cases. Yeah, that would be a good trick.

  • A large fraction of bicycle parts could be made, and of fairly good quality. The chain I wonder about. Maybe. Very thin layers of mold material can be produced, so a thin layer separating the assembled chain components might be doable, however the chain might not last very long as the surfaces would not be that smooth. If you made it as separate parts that need to be hammered together, they could be given a polishing treatment first. The sprockets and ratchet and springs, yes. The tires less so, but perhaps with a fiber reinforced polymer material. The rim and spokes, yes. Again, with vacuum and a preheated mold, or from fiber reinforced plastic under vacuum, resin casting (so low viscosity material)

  • A multi effect distillation unit, for production of drinking water from practically any source, even sea water.

  • As we get into things like open source ecology, the things become more numerous, more expensive and also less immediately useful to a human being. Tractor implements are certainly important and possible, they tend to be big machines. Imagine being able to sit down at your CAD workstation, design with total freedom, heedless of most manufacturing concerns. Every part of the machine can simply be drawn up in cad exactly as you want it. Then the whole machine can be made in one batch on a large machine. Or in parts on a smaller machine. Some parts can even be made fully assembled, like a chain or chain mail. There will always be sprues to cut off, but they could be cut off rapidly if they are all lined up and ready to remove. In the case of chain mail, the milling machine could remove them all at once perhaps. In other cases, a small neck that goes to quite a small diameter right where the sprue meets the part, could be used, so that the part can simply be twisted off the tree easily. And casting is done under vacuum, with a preheated mold, so that should work fine.

What about highly complex parts, like many car parts? Obviously electronics, no.

A valve for a car tire? hm. Of course you would have to make the valve seat separately. But yes, I think you could make all the parts, including the spring.

Clearly there is a great deal more exploration to be done down this road. Also, for things like a car door, it might be impractical to make an exact replica, but you could certainly make *a* car door, which fit the previous interface. The glass on the windows would be hard and require polishing, and not have the same antishatter properties. Hm. The actuators in the door and so forth would be a challenge and may be impractical, however I think you could make an electrical coil from copper, and similar things. There is a company trying to design for 3d printed motor coils that claims they have many advantages, and we could make those. You could make most of a motor. They charge a lot for those things.


Now, here's a question, what is there that you could churn out by the dozen, saturate your local market for them? Large horsepower electric motors come to mind. AC induction motors are relatively simple. Iron loaded polyurethane could be used to form the magnetic cores, and copper could be made into wires just by molding it into a long wire under vacuum with a preheated mold. The wires could be wound manually or simply purchased separately, it's just that I am trying to rise to the theoretical challenge of making everything from pellets of material, however wire is already a commodity that is priced similar to pellets, and as available generally, or more so.


But, it confines you. Wire is only one copper product, whereas if you can make anything drawn in CAD out of copper, then you have every gauge of wire, with built in connector terminals, in an already wound configuration perhaps (small spaces between the wires could be separately filled in with polyurethane, or perhaps be rigid enough to self support. A lot of motors don't actually have that many windings in them and are fairly thick, not like speaker coils. However filling in the spaces with PU would present a cooling problem. Bare wires supported with plastic inserts could work.)

The goal here I guess is to be able to make as much as we can from commodity pellets of material. We are even skipping the powdering or filament making process, which is great.

However it is clear that if you only want a quick one off part, cam programming is going to be an issue with existing cam software. I am hoping it won't be too hard to at least make something that assists you.


April 18 update:

I have put a lot of time in trying to get the high level cam processing algorithm worked out, both in order to be able to produce Gcode for the production of initial parts, and also to try to get some kind of automated or semi automated system working to do the CAM programming.


I have made substantial progress, but it is very time consuming to program a part. It is good to have a solid handle on *exactly* how the manufacturing process will proceed, though, and knowing that the different stages do not interfere with each other, and no impossible to solve puzzles arise. I programmed a 4 layer part successfully in fusion 360, including all deposition processes. However it takes a lot of geometry production etc.

It has become clear there are several different operational approaches that can be taken to the manufacturing process. A reasonably good one, which is fairly easy to program, I have developed. It uses one Main layer top, and five additional planes that are each infinitesimally below each other, for now I am just making them 0.2 mm below each other. These are used for various backtracking operations, to clear the upper parts of the sucrose surfaces so that more sucrose can bond to it, etc. This I dub a plane bundle. The bottom of the layer is, in effect, one of the planes in the previous bundle. The layer is then divided into 2 cycles: one for sucrose, one for graphite. First, deposit then machine graphite, then deposit and machine sucrose. Sucrose is only deposited to very slightly above the top of where the graphite was deposited. This reduces complications when compared to deciding on different layer tops for graphite and sucrose independently, as they could vary in height by quite a bit.


I can produce a video later maybe to illustrate the process.


There are several main problems:

  • decide on the main layer top height plane. This is done base on the machinability of the surfaces between the layer bottom and layer top. If the top is too high, the tools cannot reach, because the length to width ratio is not high enough, basically. If it is too low, that is not much of a problem. It just entails more deposition cycles, and may introduce more interlayer defects in the part. In reality there is likely to be at least a very small interlayer defect, although hopefully it will be a small intrusion into the part on the order of 10 microns wide or something. The layers may be more than a centimeter thick, though, so it's not very many defects.

I have developed some ideas on how exactly to do this layer height decision making process, but ultimately it comes down to machineability testing. You have two planes. Between them are some surfaces. Group them into upwards surfaces and downwards surfaces. Rank them by which surfaces occlude which surfaces i.e. if a occludes b from above, b must be ranked with a lower number i.e. if b is 1, a is 2 or more. This is the order they must be machined, if you had tools of sufficient length and zero width.

But ultimately, you are just picking the surfaces, testing to see if you can machine them with the tools at hand without gouging any other surfaces, and grouping and ranking the surfaces in the order they must be machined. So it orbits around a good machinability test. You have tools A, B, C, surfaces X,Y,Z. Rank the surfaces in the order in which they can be machined without hitting the other surfaces with the tool. And also determine the minimal largest cusp size that can be achieved (i.e. the distance from the surface of the region in which material is left to the surface of the part.), or the total volume of material that remains after machining. So maybe we can just do "implement a best effort machining approach, then measure the cusps or total remaining stock". With all the path planning tools in the CAM software, just throw at the surfaces all the tools etc. in a best effort, with very fine path spacing, and then check for gouges and remaining stock. Basically, yeah. However there may be a way to determine if it is *possible* to do the machining without actually doing the path planning. Certainly we don't have to worry about the roughing path planning.


  • fusion is quite crude when it comes to machining, in some ways. There is one major problem it has, where it often sends the tool places it clearly has no place going to. I want the tool to overlap the surface slightly, but that's all, no more than that. It has a tendency to "stab" downwards past the edge of the part to the bottom of the stock or "machining bottom". I only want it to go slightly past the isocline split layer, but I have not been able to get it to do this except through laborious production of offset surfaces, which I then have to move around and patch together, and even then it's not a very good solution as there is often unnecesary machining that occurs. I plan to investigate bobcad-cam , however it has crude scripting capabilities.

  • Fusion has problems simulating the results, so I cannot check to see how accurate my paths are easily. We do want accuracy, and early on in the process. I want to be able to produce a highly accurate test part so I can use that to bring in interest in the system. Apparently it produces good gcode, though, which coheres with my previous experience with hsmworks, which is very similar software released by autodesk. I posted in the forum about it here https://forums.autodesk.com/t5/fusion-360-manufacture/poor-accuracy-in-cam/m-p/9450174/highlight/false


update june 19 2020:

  • I continue work, very little when and where I can. There is some good news, a collaborator Steph has said they will join me. They have expertise in Python development, which is really good as both freecad and pycam are written in python, and the fusion 360 api can be programmed in python. They have a friend who is an animator and may be willing to help. We should employ the NRP-CAS immediately. I will go and investigate that now. I have tried to clean up and clarify the CAM executable document which describes how I have been doing the manual cam programming (it should be in the documentation section). They said they will review the document and consider what technical barriers need to be surmounted to develop a CAM solution.



update november 2, 2020

Jeeze, how long it has been, how little has been accomplished in all these months. If only I had a workplace and time to work on this. Anyway, some slight progress has been made. I decided to manually CAM in fusion at least one part, although I should do several at least, to familiarize myself with all the details and get any kinks worked out. In any case it all looks pretty promising. However, deciding the layer heights by eye visually is very hard, to be able to see in there and see which is the point at which surfaces start to occlude each other is a major problem, extremely time consuming.

I have been able to make modest progress on preventing the stabbing phenomenon, by making a surface in solidworks that can prevent stabbing, by using the extrude along path option from the surface tools, and extruding an l shaped surface along the isocline, however it is a far from idea solution because the ideal location of the surface depends on the diameter of the end mill being used. Also it takes a lot of time to make and then trim the surface. There is the case in which a feature like a vertical internal corner with no bottom near the top of a slice could use a small diameter end mill to get that last bit of material, and it would stab uselessly and destructively. For now I can only prevent that manually by setting the bottom of the machining to a suitable level when I do the tool path generation.

It was liberating to finally be sure that all the planes and layers etc. work out well, to produce completely defect free parts of high accuracy, ensure all layers can bond without issue, etc.

It appears that with some software to do the slicing, and by tolerating or manually preventing stabbing, and a script in fusion to make things a lot faster and more practical, a viable system that is useful for lots of things may be produced.

One additional problem encountered is that fucking autodesk has taken away auto tool change capability from the free version of fusion, as well as rapid moves, and who knows what else. Not a surprise that they would go back on their work to keep the functionality free, scumbag bosses. You may be able to make a script that would overcome this limitation.

This is of course one of the reasons you want to use open source software whenever possible. The problem is the community has been dickering around for the last ten years or more, with half finished projects, instead of making a useable CAM tool, so there is nothing to use.

I posted on freelancer.com for hired help to make the slicer, but it is a problem because I have very little money right now so that might go nowhere.

I just cannot make any progress on anything without a good quality stable place and some money.

video that explains the manual cam process https://vimeo.com/475149150 . This includes some detailed description of how the manufacturing process works to get perfect parts

update november 11, 2020:

I have been trying to get a freelancer to get the python level decider software done. I hope to pay for it by doing some jobs on upwork.com for fusion and CAM programming related stuff.

Update december 10, 2020

Things have been going very badly on the house search. There is nothing but overpriced shit on the market, there are very few listings due to covid 19 too. I have advanced the thinking on the subject of the cam tool. A fusion 360 plugin still looks like it might be a useful approach, but it is clear that it is inherently limited for longer term quality. Fusion still might play a useful role, just by using the api to do the manipulation of points, other geometries etc. however it would clearly be highly preferrable to do this without fusion 360, because they have already proven they cannot be trusted at all, having deliberately hamstrung the supposedly free version of the software etc. However, it depends how good the existing libraries are. Fusion also is highly prone to bugs, and the problem is when there is a problem, it can be crippling, and insoluble, whereas with open source software, at least with enough work you can get somewhere by solving the bug and then continuing. I already ran into this problem several times in fusion just trying to do things graphically. The silhouette split feature is non functional, for instance, so I have to export to solidworks, do the split, then return to fusion. It was a yeah ago that I complained about it and they still have not gotten it working.

I have become pretty disillusioned with the open source approach for hardware, although merely by continuing with this project I am still throwing my hat into that ring to a degree, because this system is inherently well suited to open source hardware development and production. That is what it was meant for. Still, given the lack of help or even interest from anyone else, it has become clear that I have to actually go and do things for people to understand the value. I thought it was obvious: 3d printing is good, right? So something even better than 3d printing should be worth getting excited about, right? But people don't get it. They ask what it is even for. Well, the same things that 3d printing is for, except way more even still.

Also, it has become clear that the CAM software for this system is critical, and going to take a lot of work, that I am not going to be able to get done except by paying people to do it. A kickstarter or indiegogo is critical for this, but the platform for those things are apparently very limited; you have to spend a lot of money on a marketing team just to run a successful campaign. What we need is a platform where ideas are rewarded in relation to their relative merits, not the marketing budget. Again. But this is always what it comes down to.

It's always the same old story. It may be that the best way to make this tool happen is to take a relatively conventional approach. But it is not amenable to a conventional approach, as mentioned above, it is not possible to patent it any more. There may be subsystems that are amenable to patenting. A lot of people point out how patenting can impede innovation, like with FDM printing, however what they don't realize is that if FDM had not been taken as far as it had been by closed source companies trying to make money on patented tech, we might not even have heard about it today, because there would be no enthusiasm for it. People would have just said "so what? what's it good for?" and then not listened to the answer.

So things are going very poorly. I cannot even find anyone to discuss the system with really. Or even the software. My efforts to hire someone to advance the software did not get anywhere. I tried talking with people on upwork and other sites for freelancers, but could not find anyone that seemed to be interested in doing anything, even for a couple hundred bucks. Secondly now is not a good time for me to spend even a couple hundred bucks on it.

I have been trying to learn about python, and the relevant libraries etc. to do graphical processing stuff. I have read about the fusion api, so that is how my thinking tends to go, how to do things with those tools. However we don't want to be using those tools.

I made a document that was supposed to be a document for the outline of the essentials of the CAM system, but they always baloon into large documents that I cannot blame anyone for saying they are hard to understand. There is too much uncertainty, so I end up speculating.

However, I think generally that many of the challenges and requirements of the CAM system can be met by using a points based approach. The object of concern would be covered in points according to a certain algorithm, give the points certain properties (i.e. if they are at a sharp corner or not) and then those points would be used to determine machineability of the surface from a given slicing plane, create toolpaths by offsetting the position of the points and linking them together with straight lines or arcs, and so forth.

I have determined that the use of so called bull nose cutters, which are like square end end mills but with a small external radius at the corner, may be used to essentially replace ball nosed cutters. The ideal toolpath seems to be essentially the one with the largest vertical component i.e. the path a water droplet rolling along a surface might take. It gives smaller cusps for the same tool radius than with a ball nose cutter in many cases, and never worse, so that's useful. No need to mess around with ball nose cutters.

There might be some surface finish issues with using square end cutters, a slight stairstep like effect, but a square nose cutter quickly becomes a de factor bull nose cutter with a radius of at least a few microns at the edge, so might be fine. I just have never tried finishing like that much before, in my milling days, so although it seems like a great idea, there might be some hidden caveats. The only place it is inferior to a ball nose cutter is at the bottom of a bowl or V. However, the use of relatively small cutters, and also the use of conical end mills, may be used to help with that. Finally, I think that for the near term, it is a good compromise to simplify things by phasing out the use of ball nose cutters, but the cam tool should still be designed with them in mind for the future.


Man I really wish I could stop just hypothesizing on the computer and get a workspace, buy some equipment and do some experimenting. I have gcode file for a test object ready. There will be a lot to do and learn even when I get to that point. It is all so crazy, I am in many ways not a good person to do this. But I am one of the few people that even see the point, or have a basic idea of how.

I think of getting a hobby, buying a router, which I could reuse for the RUGDMMAC project later, or a 3d printer, but I don't really have anywhere to put it and use it right now. I could buy a printer, but what can you even make with a printer? It is too limited. I could probably use one in the future anyway, they certainly have their uses and will be useful when doing future work, including the RUGDMMAC deposition apparatus, and maybe the tool changer for the mill (the rack that holds the tools, mostly). But they aren't really that well developed. I would want one with dual extruder so I can use soluble support material too, but they are kind of expensive. Plus my roommates are both bailing on me in february, so I don't know what the fuck is coming after that.

If only I had not sold my house in windsor. The last 2.5 years could have been productive instead. Or if I had gotten that house in cornwall the last year might have been ok. Always I make the wrong decisions, I always turn the wrong way. Always. So I never get anything done.

Update Dec 13

Good discussion with Steph, software engineer in Australia, about the way forward for the CAM tool . Takeaway is :
- Proceed to learn more python and about different libraries in python and C that can be used for our purposes.

  • continue to develop documents that outline the processes the cam tool can use. Slicing, and the gcode generation for milling the surfaces within the slices, and layer trimming operations.

  • the inputs and outputs of the cam tool already settled on and documented, should be in the document folder

  • continue with the documentation describing the details of how the process can work. Exactly how the different geometries that may arise can be created efficiently and precisely, the way the tool should move/paths it should take for different geometries, types of tools used.

  • Understand the problem(s) better, and make documentation to efficiently and painlessly convey this understanding.

Basically, the approach I have been trying to take is a legit and reasonable one, I just have to keep doing it and better. Point based processing sounds promising. There are still some issues to be sorted out with the rare case of surfaces that are a densely, deep waved surface which is also slanted. I now have promising ideas for how to elegantly implement a process which solves the major problems of a)machineability testing for all surfaces in a layer, b)layer height determination c)gcode generation for a REST milling set of operations, starting with the largest tools and working your way down, only doing as much as you can with each tool, and no more or less than needed, minimizing use of smaller tools. How to generate the points on the surfaces, and add the few extra that are needed. The general types of toolpaths that should be used (water drop paths for fininshing, waterline for roughing with some stock left, most of the time for bull nose and square end end mills). Remove leftover island feature to use when finishing some surfaces to clear those ice tops. Could be it's own toolpath. or could be done during roughing, leave no stock on the very bottom option and remove all islands inside. The thing where it needs to go slightly below the isocline for red surfaces can be arranged for during point generation phase. Toolpaths should be produced which trace along the lower edge of vertical surfaces or gets as close as possible, thus finishing the wall perfectly to as low a level as it can get.

This depends on a)select a candidate layer top and bottom. two different approaches, one for finishing, one for roughing: create several planes above and below these to be used in various contexts as the top and bottom cutoffs. Generate a set of points all over the surface of the surfaces you want to test for machineablity and the same points will later be used to generate gcode- red or blue, but not both at once. Ensure there are points exactly at all sharp corners and at a set vertical density(a stepdown), and at sufficient but not excess density at the top and bottom edges of the surface and at suitable vertical step downs for vertical surfaces. add some extra points to the vertical isocline, which is the bottom curve of the red surfaces, and offset them downwards to give a little vertical wall at the edge of the surface there. Offset these points in various ways (depending on the geometry of the end mill of concern), and in some cases spawn more and give them propteries to be used later (in the case of a sharp corner more need to be spawned) to mark the points where the control point of the end mill will have to pass by (the center of the tip of the tool). Points spawned from a vertical surface are given that property, so the toolpath generated from them is appropriate. Simiarly, sharp corners that are not vertical and may not be straight. Then connect these together in suitable ways, so perfectly horizontal and suitably spaced for flat areas, along the bottom of vertical walls to create a set of lines, then connect these sets with linking moves in a way that avoids crashes or gouges (haven't figured that out yet). Then, you have a toolpath that meets all requirements. touches all surfaces it can touch withouth gouging or crashing, and does not go anywhere it doesn't need to, and with toolpaths at a specified density.

The machinieability test basically does the first point creation process, the unoffset points. Then it tests each point. Vertical and horizontal surfaces detected, and points placed around on them in a way that will lead to sensible machining i.e. waterline for vertical surfaces, horizontal actually they can just have a dense array. Seems a bit ineffient because most of them wil be reachable with the big end mills, but maybe they can be cleared away at the same time as the point under test if they touch the end millexactly. or maybe they shoul dbe marked as horizontal surface points, and horizontal surface points are cleared away like that but any othe rpoint that is not so marked, if it comes too close to the end mill, that is not allowed. Some points should be marked with special properties during creation, such as those at a sharp edge, and require special testing (draw the end mill in various positions as it rotates around the point. might be better to generate all the offset points as described below and use those for testing actually), but generally you draw an end mill which is touching that point and is tangent to the surface at that point- so only touching at that one point. now determine if the end mill surfaces or body is intersecting with any other surface in the layer, ( or gets too close to one). If so, that point fails the machining test - cannot be safely reached with that tool. Proceed to test all points, and if the points pass they can be marked as done for this purpose or deleted. Then do not test them again, but proceed to test all remaining points and mark them as done if reacheable, with sucessively smaller tools. Eventually, all points are removed or marked done or the surfaces are not fully machineable with the tools availiable, with that layer height (the surfaces are sliced at the layer top and bottom). So reduce the layer height and check again. It may be that the points that remain are the same points as when the layer was thicker. This happpens in cases where a feature cannot be reached with the tools no matter how thin the layer is. There are exotic approaches that use multiple deposition and machining cycles that can still be used to form these features. Also these multiple deposition and machining approaches may b eused to form very thin walls quickly and accurately. However I have to think further about how to detect and implement them in the cam software. Surface ranking will play a role. It may be best left till another day.


anyway, this circumstance in which a feature cannot be machined (with th ebasic one deposition cycle per layer approach) fully, the algorithm should increase layer height until points that were rechable previously, start to become unreacheable, and then make the layer height slithgly below the level where that started to happen. In other words, do the best you can to remove as much material as possible in each layer, and also make the layers as thick as you can withouth leaving extra material that you could have gotten to if you had thinner layers. Most of the time the thinnest layer will not be any shorter than the length of the smallest end mill, however there are some cases where it might be.


So, with this machinability testing, and the approach to search the space of candidate later heights, to deliver the optimal heights for each layer, we can slice the object. after slicing the same points used for machineability testing can be offset in various ways, more spawned depending on their properties, and then connected in ways according to their properties, into ideal toolpath segments. These segment can be linked to produce a continuous toolpath for each tool. The net result is a large number of short line moves. No need for arcs really. The flat and straight surfaces may end up with a large number of small moves all in a line, some optimization could reduce or eliminate that, eitheir in the point creation phase or in the gcode phase. ideally point creation phase.


Ok, so it might be best to basically creat the toolpath for the surface assuming the biggest end mill - this invovles the point creation process, including creating the unoffset points, taking note of vertical surfaces and sharp corners and deliberately making sure points get placed sensibly on them, and then creating the set of offset points, which are offset to the point where the control point will be for the given tool, when the tool is touching the opriginal un offset point. Sharp corners must create a whole arc of points, based on drawing a line from the vertex, normal to the curve of the sharp edge, and out into space. then repeat for the othe rside of the corner. Now connect the end of these two lines with a circular arc, then put test points along the arc.

ok, so you have a new set of points. Test them all to see if they can be reached by the control point with that tool by drawing a tool with its center of its tip at that point and seeing if it intersects any other surface, or gets too close to any.. Any that can be reached, delete or mark their corresponding un offset points. repeat with smaller tool, making new offset points to make the test valid for this tool, and then repeat with sucessively smaller tools. So basically you are making a toolpath, then simulate the tool going along the path, and seeing if it ever gouges a surface as it travels along the path. Except you have only an approximation of a path, a set of closely spaced points. That should be fine.

As mentioned, the toolpaths should be created with several criteria : true 3d surfaces, which are most surfaces, should me made with water drop toolpaths. An array of points generated, on the surface, and some extra along the edge of the surface at certain intervals, and with a minimum of say 10 for the upper curve boundary of the surface (in case it is a cone's point), offset, and then connected by starting with the point in the uppermost left hand highest z position or whatever, connecting it with a line to the point which maximizes the slope of the line, among the nearest points (radially). Repeat until the line reaches the bottom of the surface. now repeat with every point along the top edge of the surface, and if there are any line left start with the uppermost ones and repeat with them, until all points are connnected in their own line groups. Then link the lines at the tops and bottoms of them, and give them directions.

next, another toolpath to creat is to offset and connect the points at the bottom of any vertical walls. This will result in trimming along the isocline which is optional but nice, and also in doing the last of the vertical walls as closely as possible. And also any horizontal surfaces.

The rules for how the array of points is generated will determine toolpath density, so there can't be that many points ultimately.

Dec 13

ok, now I am just thinking, I wonder if it might be possible to use an evolutionary algorithm or similar. Suppose you generate a reasonably dense set of points, including exactly at the corners, and along the top and bottom edges, on a surface. Now make some points that are offset maybe a couple microns from the surface. These are the Points to Remove (PTR) Ok, now start the system off by drawing the largest tool in contact with the surface somewhere. This is for finishing toolpaths. Then, the system creates a single line segment in some random direction, determines if it removed any of the ptr. If it did, you score points. If the tool intersected with the surface, then you loose a lot of points. The system proceeds by randomly generating lines, then getting a score, and the optimizer optimizes for the best score.

Ok, that's not very good, but suppose a more sophisticated way of generating the lines and scoring. There might be a path forward, but the reason I started pursuing this line of reasoning is that I hoped it would elegantly solve multiple problems at once with relatively easy to write software, at the cost of high computational demands. But I think that no it looks pretty complicated to do a decent job on anyway. Probably would not be any easier, in the end.


Dec 28 2020:

Yeah, reviewing this page, the blog is quite long and people couldn't be blamed for not reading any. There is also relatively little actual progress noted. It has become apparent that some kind of custom cam software, hopefully written in python, will be important, even in the near term, even to make basic parts. I continue trying to thing of candidate deposition materials, and there are several promising looking candidates, but I have to just get on with some experimentation.

I looked at buying a router, and found a good one at a good price, but I just can't afford to buy it right now, I don't have anywhere to really use it either. I regret not buying one many months ago and trying to collaborate with the tool library while it was still in business, but it is unlikely they would have been amenable to cooperation.

I am a bit saddened and a bit interested to discover that progress is being made on the competition. It's painful because I would have implemented this idea some seven years ago if I had had the freedom to do so, and it would have made far more sense back then. Now, the competition is starting to form. One of them is Xolography, which I leave you to google. However it appears that they are getting poor accuracy out of it, although published articles indicate the authors believe they can get 10 micron accuracy out of it, it is not really clear if this is so. The light will tend to scatter and bounce around at the focal point, polymerizing a volume of material that is hard to control the size of. However that could probably be compensated for in some way to some relatively high degree.

The resolution of the projector is an issue. It could be replaced with a laser vector based projector. They also are limited in their accuracy and resolution. There is nothing quite like a CNC mill. However, the point is that it is competition.

The other drawback of xolography is that it may not produce objects in a suitable casting material, however they could be cast in CAC or similar and burned out. Adding one additional step to the manufacturing, but that's not really a big deal.

Another drawback is that they might end up charging too much. It's not clear how much they are charging.


Seven years ago this would have been earth shattering. Today, it will be one of several options for any given task. Shit.