E3D tool changer ASMBL

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
JeffWitz
Posts: 54
Joined: Fri Mar 27, 2015 9:14 am
Location: Lille, France

E3D tool changer ASMBL

Post by JeffWitz »

Dear developers and users of the FreeCAD machining module,

We have a hybrid 3D printing machine that combines machining and 3D printing.

In order to be able to make parts with good quality geometries, we would like to be able to interpose a contouring task to each new 3D printed slice.

The question I have is the following. Is it possible to simply create a contouring of a section of a part at a given altitude and export an associated G-Code.
Since the machining is done at each new slice, it is possible to do everything in 3 axes and there should be no collision problem which should make things easier.
I don't think it's reasonable to want to compete with slicers for the additive part, but once the prototype is done, do you think it would be possible to make a FreeCAD mold that would run in batch that would be called from the slicer?

It is always possible to post-process the gcode and STL used to merge the files, I think that's what we're going to do first.

Best regards,
User avatar
sliptonic
Veteran
Posts: 3457
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: E3D tool changer ASMBL

Post by sliptonic »

If I understand everything you're describing, the answer is yes, it's possible.

You could write a python program that takes a couple arguments like:

contourgen.py -p mypart.stp -t 3.0 -h 1.0

-p would be the part solid that you want to process
-t is the tool radius for offsetting.
-h is the height at which you're slicing

The program would call FreeCAD in a headless way, generate and return the raw gcode for the profile. This isn't trivial but not too difficult. However, this would have a couple assumptions built into it.

First it would assume that the part is oriented and positioned correctly within the machine geometry. Most slicers let you drop in your model, rotate it and place it on the print bed. That positioning must match what FreeCAD is getting so the contour coordinates match. Obviously it would only work for a single part being printed, not a bunch of individual parts plated together.

This would only work for cylindrical tools (endmills). Ball end or toroidal cutters are not considered.
No tool change code is being generated so it's assuming that tool loading is already handled.
JeffWitz
Posts: 54
Joined: Fri Mar 27, 2015 9:14 am
Location: Lille, France

Re: E3D tool changer ASMBL

Post by JeffWitz »

The program would call FreeCAD in a headless way, generate and return the raw gcode for the profile. This isn't trivial but not too difficult. However, this would have a couple assumptions built into it.
It is not necessarily necessary to do this without a graphical interface.

The main issue for me, is to be able to process STL files directly, it seems to me that slicing 3D STL object with FreeCAD is not obvious and depends on OpenSCAD.

The other important thing is to be able to identify external and internals contours. Do you have any insight on this ?

Best regards
User avatar
sliptonic
Veteran
Posts: 3457
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: E3D tool changer ASMBL

Post by sliptonic »

I thought you wanted to run this in batch and fire it off from the slicer. Loading the GUI is just overhead.

Path itself isn't set up to work on the mesh models directly. To do anything in the Path workbench GUI, You'd have to convert them to solids. This can also be scripted but mesh-> solid conversion is far more difficult than solid -> mesh. Your results may vary. It's also pretty slow so if you probably want to write your script to only do that conversion once rather than for every layer.

But what you're talking about is way outside the scope of Path. Instead, I'd suggest hooking into your slicing process at a lower level. If you can cause the slicer to call an external process after each layer (or ever n layers) and insert the resulting gcode, then you could fully automate it.

Slicing the mesh is no problem. Look in the Mesh workbench at the cross-sections tool. Create a section at a specified height and you get a Part feature whose shape has wires representing the outer perimeter and the inner holes. Most or all of what you need to convert these wires into gcode already exists in the Path source code.
Post Reply