CAM Postprocessor Customization/es: Difference between revisions

From FreeCAD Documentation
(Created page with "La trayectoria en FreeCAD tendría este aspecto. Tenga en cuenta la pequeña flecha azul, que indica la dirección de inicio. Para un primer intento puede proporcionar sólo u...")
(Created page with "A continuación, puede echar un vistazo al archivo y compararlo con la salida de los postprocesadores existentes como {{FileName|linux_cnc_post.py}} o {{FileName|grbl_post.py}...")
Line 44: Line 44:
[[File:Path PostProcessorModel.png]]
[[File:Path PostProcessorModel.png]]


You can then have a look at the file and compare it to the output of existing postprocessors such as {{FileName|linux_cnc_post.py}} or {{FileName|grbl_post.py}} and try yourself to adapt them or you upload your to the Path forum https://forum.freecadweb.org/viewforum.php?f=15 to get some help.
A continuación, puede echar un vistazo al archivo y compararlo con la salida de los postprocesadores existentes como {{FileName|linux_cnc_post.py}} o {{FileName|grbl_post.py}} y tratar de adaptarlos usted mismo o subir el suyo al foro Path https://forum.freecadweb.org/viewforum.php?f=15 para obtener ayuda.


==Convención de denominación==
==Convención de denominación==

Revision as of 16:14, 15 July 2021

Tutorial
Tema
Ruta Ambiente de trabajo
Nivel
Tiempo para completar
Autores
chrisb
Versión de FreeCAD
Archivos de ejemplos
Ver también
None

Introducción

FreeCAD utiliza como representación interna para las trayectorias generadas, los llamados G-codes. Pueden describir cosas como: la velocidad y el avance, la parada del motor, etc... Pero lo más importante son los movimientos que describen. Estos movimientos son bastante simples: Pueden ser líneas rectas o arcos circulares. Curvas más sofisticadas como las B-splines ya son aproximadas por el de FreeCAD. Path Workbench/es.

Lo que el postprocesador puede hacer por ti

Muchas fresadoras utilizan también G-codes para controlar el proceso de fresado. Pueden parecerse casi a los códigos internos, pero puede haber algunas diferencias:

  • la máquina puede tener una secuencia especial de arranque
  • puede tener una secuencia de parada especial
  • los arcos pueden definirse con un centro relativo o absoluto
  • puede requerir números de línea en un formato determinado
  • puede utilizar los llamados ciclos enlatados para subprocesos predefinidos como el taladrado
  • Puede que prefiera la salida de su G-code en unidades métricas o imperiales.
  • Podría ser útil realizar un conjunto de movimientos antes de llamar a un cambio de herramienta para facilitar la acción al operario
  • Puede que desee incluir comentarios para facilitar la lectura o suprimirlos para que el programa sea pequeño.
  • Puede que desee incluir una cabecera personalizada para identificar o documentar el programa para futuras referencias.
  • ...

Además, existen otros lenguajes para controlar un molino, como HPGL, DXF u otros.

El postprocesador es un programa que traduce los códigos internos en un archivo completo, que puede ser cargado en su máquina.

Preparación para escribir su propio postprocesador

Puede empezar con un modelo muy sencillo que muestre cómo su máquina lee las líneas rectas y los arcos. Prepárelo con cualquier programa adecuado para su máquina.

Un archivo para estas trayectorias que comienzan en (0,0,0) y van hacia Y sería útil. Asegúrese de que es la propia herramienta la que se mueve a lo largo de esta trayectoria, es decir, no debe aplicarse ninguna compensación del radio de la herramienta.

La trayectoria en FreeCAD tendría este aspecto. Tenga en cuenta la pequeña flecha azul, que indica la dirección de inicio. Para un primer intento puede proporcionar sólo un nivel en el plano XY.

A continuación, puede echar un vistazo al archivo y compararlo con la salida de los postprocesadores existentes como linux_cnc_post.py o grbl_post.py y tratar de adaptarlos usted mismo o subir el suyo al foro Path https://forum.freecadweb.org/viewforum.php?f=15 para obtener ayuda.

Convención de denominación

For a file format <filename> the postprocessor should get the name <filename>_post.py. Please note that _post.py has to be in all lower case letters.

If you are testing, place it in your macro directory. If it functions well, please consider providing it for others to benefit (post it to the FreeCAD Path forum) so that it can be included in the FreeCAD distribution going forward.

Otros postprocesadores existentes

For comparison you may look at the postprocessors which come with your FreeCAD installation. They are located under the Mod directory in Path/PathScripts/post. Widely used are the linuxcnc and the grbl postprocessors. Studying their code can give helpful insights.

  • On Linux the path is /usr/share/freecad/Mod/Path/PathScripts/post

Programming your own postprocessor

This post discusses some internals from the linuxcnc postprocessors. The same strucure is used in other postprocessors as well.

Looking at linux_cnc_post.py, you'll see the export function (as of 0.19.20514 its at line 156)

def export(objectslist, filename, argstring):
    # pylint: disable=global-statement
    ...
    gcode = ""
    ...
    ...

it collects step by step in the variable "gcode" the processed G-codes and handles the overall exporting of post-processable objects (operations, tools, jobs ,etc). Export handles the high level stuff like comments and coolant but any objects that have multiple path commands (tool changes and operations) it delegates to the parse function (as of 0.19.20514 its at line 288).

def parse(pathobj):
    ...
    out = ""
    lastcommand = None
    ...
    ...

Similarly to the "export" function collects parse the G-codes in the variable "out". In the variable "command" the commands as seen in the Path workbench's "inspect G-code" function are stored and can be investigated for further processing.

for c in pathobj.Path.Commands:

            command = c.Name

It recognizes the different G, M, F, S, and other G-codes. By remembering the last command in the variable "lastcommand" it can suppress subsequent repetitions of modal commands.

Both parse and export are just formatting strings and concatenating them together into what will be the final output.

You'll see that both functions also call the "linenumber()" function. If the user wants line numbers, the linenumber function returns the string to stick in to the appropriate spot, otherwise it returns an empty string so nothing is added.

Relacionados

Template:Tutorials navi/es Template:Path Tools navi/es