Plasma workflow

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!
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Plasma workflow

Post by sliptonic »

Konstantin wrote: Fri May 11, 2018 3:01 pm I have some experience in using FreeCAD for plasma. If you remember, here we discussed a little bit.

My machine does not need to set parameters in program, only speed, so it was easy to adapt postprocessor for my needs, I needed only to cut open contours. But even then I had some inconvenience:
  • I can't point a starting point, FreeCAD starts where he wants.
Contour, Face Profile, and Edge Profile, all have a start point property. Are you saying this doesn't work correctly?
But for more serious work it is a must additionally to have a:
[*]Good working DXF importing format (and it's a real problem not only in FreeCAD, It's a pain in opensource programs) But It's not Path workbench related
there are so many dxf versions and implementations and the options for what you can (validly) do in a dxf is big. Import is always going to be a messy process.
[*]Leadin/Leadout - It must lead in from outside to the starting point, and leadout outside. For now that I tried it - it just doesnt work right. Even for milling. I wanted to start a new thread about this problem, by the way.
Need more detail. Pictures, description of how it's failing. Bug reports. Just saying it's doesn't work isn't good enough.
[*]Cutting regimes. Man I hardly imagine it would be done without serious material management, torch management, corner management... And add to this how different controllers can be, No, I don't believe it can be done. No silver bullet in this area.
A lot can be done with job templates and setup sheets but there is plenty that still needs to be developed.
[*] Nesting. Someone said in architecture workbench they started something, but I don't know, is there any progress in this direction?
[/list]
Still largely experimental
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Plasma workflow

Post by sliptonic »

polemidis wrote: Sun May 13, 2018 11:48 am
Btw I saw your videos, and are GREAT!!
One quick question though hopefully will not divert the discussion out of the subject. What is your approach when an object is designed on a different plane? ZY for example. Do you rotate the "Base Body" and use the orientation and aligment under the Setup Tab of the Job? or is there any other way?
Thanks! I've got more videos planned and in the works.

The job creates its own copy of the base body object and a rotation position is maintained for the copy. Check out the video on Job setup.
Konstantin
Posts: 261
Joined: Wed Jul 23, 2014 10:10 am

Re: Plasma workflow

Post by Konstantin »

sliptonic wrote: Mon May 14, 2018 3:19 pm Contour, Face Profile, and Edge Profile, all have a start point property. Are you saying this doesn't work correctly?
Sorry, Can I choose a point and set it as starting point? How? Or I can only manually input coordinate? I need an easy way to point the start on contour. And I need a starting point on every contour I will cut in every part on sheet.
there are so many dxf versions and implementations and the options for what you can (validly) do in a dxf is big. Import is always going to be a messy process.
I understand the huge problem behind dxf and dwg, but still, in real life - every customer will bring me a dxf, or even dwg of latest autocad. And there is no way to convert it in format that FreeCAD understands. Only if someone produces everything from scratch in FreeCAD, only then he can avoid this problem. But it's a very rare situation, I dream to have that kind of workflow, but it's almost unreal (in metalworking at least).
Need more detail. Pictures, description of how it's failing. Bug reports. Just saying it's doesn't work isn't good enough.
I understand. I will try to start separate thread about this problem this week.
[*]Cutting regimes. Man I hardly imagine it would be done without serious material management, torch management, corner management... And add to this how different controllers can be, No, I don't believe it can be done. No silver bullet in this area.
A lot can be done with job templates and setup sheets but there is plenty that still needs to be developed.
No, I just don't believe it. I am not a plasma or laser or waterjet specialist, but I've had to set postprocessor in Lantek for four different plasma machines in the past... Man, there is no standard for them. One machine writes piercing, leadin/leadout and every needed parameter in the end of the file in format that only machine understands (no explanation for these magic numbers), Other needs to set everything, including corner management in subprograms. Third uses it's own subprograms with options that manufacturer doesn't want to uncover because "there is a postprocessor for that program of this developer that you can purchase". Last machine was easiest for me, there was no cutting control in the code, everything is in predefined recipes, so you need to only give command to move and to lift up, and get down the head, every piercing is done automatically and contour is cut by a recipe. And off course I tried to use FreeCAD here, with partial success.

Oh, forgot to mention - G41 and G42, tool diameter offset. FreeCAD doesn't have this feature, it is a big misfortune. Imagine, I've generated huge program for hundreds of parts in a 6meters long sheet, It starts cutting, and I see that offset is wrong. What is easier: run to the office, open that project in FreeCAD again, fix tool diameter, regenerate everything (with possible problems), then upload it to the machine via network, or a flashdriver, or even rs232 cable. Or Just change tool diameter directly in machine? This applies to any kind of machine, plasma, milling, lathe and so on.
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Plasma workflow

Post by sliptonic »

Konstantin wrote: Mon May 14, 2018 5:56 pm Sorry, Can I choose a point and set it as starting point? How? Or I can only manually input coordinate? I need an easy way to point the start on contour. And I need a starting point on every contour I will cut in every part on sheet.
My point is that Path supports start points. As of now, you have to key in the coordinates but this is just a UI issue. We could add a point picker to make it easier. We had this at one time using the draft snap tool but it was deactivated during the refactor. Please add a feature request.
I understand the huge problem behind dxf and dwg, but still, in real life - every customer will bring me a dxf, or even dwg of latest autocad. And there is no way to convert it in format that FreeCAD understands. Only if someone produces everything from scratch in FreeCAD, only then he can avoid this problem. But it's a very rare situation, I dream to have that kind of workflow, but it's almost unreal (in metalworking at least).
Understood. I certainly hope over time your customers start working with solid models like step and igs which will improve importing dramatically. But I get that 2D conversion is reality. It's just going to be messy and I expect it's the same for every CAD/CAM (open or closed source).
No, I just don't believe it. I am not a plasma or laser or waterjet specialist, but I've had to set postprocessor in Lantek for four different plasma machines in the past... Man, there is no standard for them. One machine writes piercing, leadin/leadout and every needed parameter in the end of the file in format that only machine understands (no explanation for these magic numbers), Other needs to set everything, including corner management in subprograms. Third uses it's own subprograms with options that manufacturer doesn't want to uncover because "there is a postprocessor for that program of this developer that you can purchase". Last machine was easiest for me, there was no cutting control in the code, everything is in predefined recipes, so you need to only give command to move and to lift up, and get down the head, every piercing is done automatically and contour is cut by a recipe. And off course I tried to use FreeCAD here, with partial success.

I believe you and we will always need post processors (customizable) for exactly this reason. But having customized a post processor, job templates and setup sheets can go a long way toward streamlining the workflow.
Oh, forgot to mention - G41 and G42, tool diameter offset. FreeCAD doesn't have this feature, it is a big misfortune. Imagine, I've generated huge program for hundreds of parts in a 6meters long sheet, It starts cutting, and I see that offset is wrong. What is easier: run to the office, open that project in FreeCAD again, fix tool diameter, regenerate everything (with possible problems), then upload it to the machine via network, or a flashdriver, or even rs232 cable. Or Just change tool diameter directly in machine? This applies to any kind of machine, plasma, milling, lathe and so on.
Not true. Path can do this just fine. Using G41/G42 means you want the controller to calculate the offset so just tell Path not to do it. Add your operations and turn off compensation in each. Add a G41/G42 to the preamble and you're set. Of course the visualization of the path is now going to be "incorrect" because path has no knowledge of the tool diameter as it exists in your machine controller so the path is going to render 'on the line' instead of to the side.

Another issue is that there are several different ways in which compensation is used by shops. Sometimes called 'east coast' and 'west coast' methods. Path can support both but it requires the operator to know how they want to use compensation. But that's for another day.
Konstantin
Posts: 261
Joined: Wed Jul 23, 2014 10:10 am

Re: Plasma workflow

Post by Konstantin »

sliptonic wrote: Mon May 14, 2018 6:28 pm My point is that Path supports start points. As of now, you have to key in the coordinates but this is just a UI issue. We could add a point picker to make it easier. We had this at one time using the draft snap tool but it was deactivated during the refactor. Please add a feature request.
I can add a request, but first I need to collect all my thoughts about it and think of pro and contra. And maybe discuss it first in appropriate topic.
step and igs
No chances. In my life have never seen someone who uses this. Not in our city :) We are building ships, bridges, furniture, candies, and everything is in 2D.
I believe you and we will always need post processors (customizable) for exactly this reason. But having customized a post processor, job templates and setup sheets can go a long way toward streamlining the workflow.

Yes postprocessor, and I made (ish) one for simplest machine. But problem with this kind of machines is that all information is restricted and fragmented. And look, there is plenty of forums, books, manuals and even schematics for milling and lathe machines, and almost no where to get info and help for plasma, or laser, or waterjet. (I mean big machines, not the homemade) Even manufacturers do not want to uncover their precious secrets to the costumers that are ready to pay money (I was chocked)
G41 and G42
Not true. Path can do this just fine. Using G41/G42 means you want the controller to calculate the offset so just tell Path not to do it. Add your operations and turn off compensation in each. Add a G41/G42 to the preamble and you're set. Of course the visualization of the path is now going to be "incorrect" because path has no knowledge of the tool diameter as it exists in your machine controller so the path is going to render 'on the line' instead of to the side.
In the beginning I planed to use path without offset for my Fanuc postprocessor, and use information is it clockwise, or counterclockwise, to insert G41 or G42 commands in postprocessor. But stuck on two problems, that in real machine tool must come on rapid to some distance from starting point (not less then tool radius) in G40 mode (without offset) and then turn on offset and feed linearly to the starting point. (here's an example) FreeCAD does not generate this additional step. And setting it in preamble helps a bit in theory, but not in practise. Maybe leadin could help, if it wouldn't do a weird things. I think leadin is an answer, but it must be fixed and improved drastically.
pauluzs
Posts: 27
Joined: Wed Feb 27, 2019 7:48 pm
Location: Netherlands

Re: Plasma workflow

Post by pauluzs »

Bumping up this topic as i also still haven't found an ideal workflow.
Although no experience on waterjet's, still tried to describe a workflow that could suite laser/plasma/waterjet cutting.

There still seem some parts missing to this puzzle, or i haven't found them yet.
Considering the earlier mentioned start point see this post for some pictures.
If the hickups' in the LeadinOut Dressup still need explaining i can provide some pictures as well.

Please feel free to add or ask to this.

Example Laser/Plasma/Waterjet Workflow:

Code: Select all

### Part Creation
Have 3D part or pad a 2D sketch to material thickness.
	(missing pad/cut for single lines/arcs)

### Tool
Create cutting tool with Kerf/Beamwith as diameter.
	(missing how to change tool length between OFF and ON(Trough-all) state)

### Material
	#Material Parameters
	var Material: Steel			(Material Used)
	var Material Thickness: 10 mm 		(Op_Stock_Zmax)

### Job
Create New job with bounding box/stock of selected material thickness
Z0/origin ALWAYS! at sheet bottom=table top, this also prevents probing and cutting below table surface)
This way the program can stay generic by changing only Tool and Material and Parameters

### Cut
Cut/Machine specific setup parameters based on material properties
Best each machine also contains its own database to override these settings, derived from Program Material and Thickness
This way the program can stay generic by changing only Tool and Material and Parameters
Requires Z0 to be at sheet bottom=table top, this also prevents probing and cutting below table surface)
	#Cut Parameters
	var AssistMedium = Air 			(AssistMedium: Air/N2/O2/Water/Abrasive/None)
	var cutheight = 2 mm 			(tooltip above material during cut)
	var cutpower = 30 Amps 			(plasma/laser power)
	var cutpressure = 3 bar 		(AssistMedium pressure during cut)
	var cutspeed = 5400 mm/min 		(feedrate during cut)
	var pierceheight = 4 mm 		(tooltip above material during piercing)
	var piercepower = 50 Amps 		(plasma/laser power during piercing)
	var piercepressure = 5 bar 		(AssistMedium pressure during piercing)
	var piercedelay = 0.7 sec		(time taken to pierce material)
	bool probe = True			(use probecycle to find material top)
 	bool THC = True				(Plasma: TorchHeight Control, Laser: Autofocus)
	var probespeed = 3 mm/s			(z-axis speed during probing)
	var THCSetPoint = 100 Volt		(Tool Height Controll Setpoint)
	var tooloffdelay = 0.2sec		(Delay before switching off)
	var tooloffpower = 0 Amps		(plasma/laser power during tool off state)
	var tooloffpressure = 2 bar		(AssistMedium pressure during tool off state)
	(Var belong in setupsheet?)


### Path
	Create path based on topface, cut perimeter last, cut holes by size/Area small>large.
	Without offsets.
	(missing correct working path)
	
### Dressups
	#Dressup Parameters
	bool leadin = true 			(use leadin)
	var leadinangle = 90 Degrees		(angle of leadin)
	var leadinlenght = 9 mm 		(lenght off leadin)
	var leadintype = arc			(arc/line/customG)
	var leadinStart = corner		(corner/center Moves start/endpoint to center of line if G1) 
	bool leadout = true 			(use leadout)
	var leadoutangle = 90 Degrees		(angle of leadout)
	var leadoutlenght = 6 mm 		(lenght off leadout)
	var leadoutype = arc			(arc/line/customG)
	1 Possibility to set/change startpoint of each cut
		split line/arc on gui preselection/selection
		relocate start/end points
	  (missing)
	2 Add toolcompenstation (None/Program/Machine)
	  (missing)
	3 Add Hole dressups (ie Dogbone)
	4 Add leadInOUt dressup
	  (not working correct)
	5 Delete single cut from path
	  (missing)

### Simulate
	(simulator is not showing full circles)
	  would it be possible split all arc's in half before showing?


### Phonetic Dressup/Simulator/Post description:

	simulation viewprovider:CutTool ShapeColor=blue

	Find startpoint of cut where G0>G1>G1/G2/G3 (rapid,movedown,move)
	
		If set StartPoint Dressup:
			recalculate start/point (gui preselection/selection)			

		If leadinStart == corner && first move is liniear G1
			move startpoint to center of first G1 move
			move endpoint to center of first G1 move
		else:# stay at original startpoint	
					
		If leadin
			if side: outside (perimeter)
				calculate new outside startpoint from leadinangle and leadinlenght
					else:# keep at calculated line/arc startpoint						
				if direction: CW G2
					If leadintype:arc
						place CWW G3 arc from new to old Startpoint
					else: # line
						place G1 line from new to old Startpoint
				else: #CCW G3
					If leadintype:arc
						place CW G2 arc from new to old Startpoint
					else: # line
						place G1 line from new to old Startpoint
			elif: inside (hole | circle)
				calculate new inside startpoint from leadinangle and leadinlenght
					if LineCenterStart: #first move is liniear G1
						move startpoint to center of first G1 line
					else:# keep at calculated line/arc startpoint	
				if direction: CW G2
					If leadintype:arc
						place CW G2 arc from new to old Startpoint 
					else: # line
						place G1 line from new to old Startpoint
				else: #CCW G3
					If leadintype:arc
						place CWW G3 arc from new to old Startpoint
					else: # line
						place G1 line from new to old Startpoint
			else: # noside ? single line/arc slot			

		If probe: 
			insert probe cycle: G38.2 Z=0 F=probespeed

		insert goto pierceheight: G0 Z=(#5063*probe + Material_thickness*!probe)+pierceheight
		insert set power: M68 E0 Q=piercepower
		insert set pressure: M68 E1 Q=piercepressure
		insert torch on: M3 S=THCSetPoint
		simulation viewprovider:CutTool ShapeColor=red
		insert wait piercedelay: G4 P=piercedelay
		insert goto cutheight: G1 Z=G1 Z=(#5063*probe+Material_thickness*!probe)+cutheight
		insert set power: M68 E0 Q=cutpower
		insert set pressure: M68 E1 Q=cutpressure

		if THC:
			insert enable THC: M4 S=THCSetPoint
			simulation viewprovider:CutTool ShapeColor=Orange

	Resume movecommands with cutspeed as feedrate

	Find endpoint of cut where G1/G2/G3>G1>G0 (move,moveup,rapid)

		If leadout
			if side: outside | perimiter
				calculate new outside endpoint from leadoutangle and leadoutlenght
				if direction: CW G2
					If leadintype:arc
						place CWW G3 arc from old endpoint(cutstart) to new endpoint
					else: # line
						place G1 line from old endpoint(cutstart) to new endpoint
				else: #CCW G3
					If leadintype:arc
						place CW G2 arc from old endpoint(cutstart) to new endpoint
					else: # line
						place G1 line from old endpoint(cutstart) to new endpoint
			elif: inside (hole | circle)
				calculate new inside endpoint from leadoutangle and leadoutlenght
				if direction: CW G2
					If leadintype:arc
						place CW G2 arc from old endpoint(cutstart) to new endpoint
					else: # line
						place G1 line from old endpoint(cutstart) to new endpoint
				else: #CCW G3
					If leadintype:arc
						place CWW G3 arc from old endpoint(cutstart) to new endpoint
					else: # line
						place G1 line from old endpoint(cutstart) to new endpoint
			else: # noside ? single line/arc slot			

		if THC:
			insert disable THC: M3 S=THCSetPoint
			simulation viewprovider:CutTool ShapeColor=red

		insert wait tooloffdelay: G4 P=tooloffdelay
		insert torch off: M5
		insert set power: M68 E0 Q=tooloffpower
		insert set pressure: M68 E1 Q=tooloffpressure
		simulation viewprovider:CutTool ShapeColor=blue

	Resume rapidcommands while finding next startpoint till program end.

	if ToolCompensation: Machine
		Aply G41.1 | G42.1 L=KerfWidht over toolpath


### Nest
	Using array function ATM

### Post

Success!!!!
User avatar
pl7i92LCNC
Posts: 208
Joined: Tue Mar 12, 2019 3:03 pm
Location: RLP DE

Re: Plasma workflow

Post by pl7i92LCNC »

for plasma G-code best is to use Sheetcam there is also a free open Version
and there are Inkscape CAD-tools that make plasma cutting very easy
mrwolfe
Posts: 6
Joined: Wed Sep 02, 2020 7:23 am

Re: Plasma workflow

Post by mrwolfe »

polemidis wrote: Fri May 11, 2018 1:55 am I designed my plasma cnc and build it a few days ago. Unfortunately so far the Freecad CAM is not good enough for plasma yet. The lead in/out is kind of important as the torch on/of. I use the PATH workbench heavily on my CNC Router, but for plasma these features are important. About the torch on/off maybe a post processor can replace the Z down movement with just the auto leveling routine+M3, I do not see that too difficult. Or maybe a option that uses just the 2D

I uploaded the project on https://github.com/goscommons/CNC-Plasma-Table.git, we are working to make it nice. On the "01 Design Issues" folder I have some pictures of the actual machine. One of my first videos is https://www.facebook.com/polemidis/vide ... 668246740/

Hopefully the Path will be suitable for plasma soon. Until then my only option is the SheetCam.
My build looks very similar. I used 12Nm steppers, which is WWAAAAYYYY too big. The y axis is driven by rack and pinion and the X axis is a ballscrew. I can get the y axis to move at close to 60,000mm/min (Mach3 won't let me go any faster, so I don't know what the physical limit actually is), and the X axis runs at 6000mm/min max. I've had to up to 10,000mm/min, but I get shaft whip in the ballscrew shaft. For plasma, I don't need any more than 2000mm/m anyway. I did some tuning and found that I get fairly clean cuts in 1.6mm steel with the following settings:

Plasma current: 22A
Feedrate: 800mm/min with 100mm/s/s acceleration*
Torch height: 1mm
Air pressure: 0.9MPa
Nozzle diameter: 06mm

* The acceleration gives better cuts in the corners, but causes the axes to overrun the sensors when homing. I think I'll put the acceleration back up to 500 or so and use loops for the corners.
karlnick
Posts: 54
Joined: Sat Jul 25, 2020 9:33 am

Re: Plasma workflow

Post by karlnick »

I added a post processor script for the Fangling plasma cutter to the CAM module, should be in the latest development branch. It work with the engrave operation.

It is possible to make some adjustments to start point by selecting start vertex, can't start on the middle of path but guess start vertex is good enough for most situations.

Path dressup is not solved. Add a path dressup with possibility to set entry move, direction and length is probably a rather general solution though choice between arc with an extra parameter for radius and line may be useful.
Post Reply