-
Estoy pensando en hacer una serie de videos sobre LinuxCNC. Desde lo mas basico hasta los mismisimos ficheros fuente de la aplicacion.
Si, ya se........ganas de complicarse la vida. Pero si no te la complicas, no tiene gracia ¿No? :o :o :o :o
Al grano. He hecho un primer video. Como parece logico, he empezado por la documentacion. Este primero dura unos 20 minutos.
Antes de seguir adelante con esta locura, me gustaria contar con vuestra opinion. ¿Os parace interesante?, ¿una tontada?, ¿mejos apuntarse a una academia de ingles?.... no se, la opinion que os merezca, incluso si lleva colleja de regalo. Aqui dejo el enlace:
https://youtu.be/RwC0VTtLiQ4 (https://youtu.be/RwC0VTtLiQ4)
EDITADO: añadido vídeo sobre instalación de algunas aplicaciones interesantes para el seguimiento de los videos: https://youtu.be/gnUiQcjdd3Q (https://youtu.be/gnUiQcjdd3Q)
Manual comentado, segunda entrega.
https://youtu.be/CMCEf0LXDzQ
Manual comentado, tercera entrega.
https://youtu.be/tiiOysjrgAw
Manual comentado. Cuarta entrega. Abriendo linuxcnc
https://www.youtube.com/watch?v=V0uBYdeSTlM
Manual comentado. Quinta entrega. El archivo INI. parte 1
https://youtu.be/qyMVz0WqTRs
Manual comentado. Sexta entrega. El archivo INI. parte 2
https://youtu.be/G5oDomrjEu0
-
Particularmente me parece muy interesante, seguro que aprendemoa muchas cosas
-
A mi en particular me parece una muy buena idea. .ereselmejor
Y creo que pueden ser de utilidad para muchos. .bien
Por cierto, veo que has andado algo con el Vismach.
Muchas gracias por este primer vídeo y animo para los próximos. ;)
Un saludo.
-
Aun a falta de poderlo ver, te daría mas que las gracias, me parece una idea genial y pienso que tendrá muchas visitas. .. .yupi .yupi .yupi
-
Me parece extraordinario el esfuerzo y desde luego algo que nunca nadie a echo..de echo es que los que sabeis de linux cnc desde ya hace años rara vez se os ve colaborando en este foro..asi que por mi parte solo felicitarte por este aporte de conocimiento que espero que a muchos nos saque de la oscuridad y que de paso a los usuarios de otros programas de pago les haga ver que linux es mejor en todo y encima gratis.
.bien .brinda
adelante maestro.
-
Muy interesante. Gracias por el video.
Te puedo garantizar que los voy a seguir. Yo lo uso pero me queda mucho que aprender.
Quiza el audio te ha quedado un poco bajo. Por lo demás muy bien.
-
Muy muy interesante.
Uno de los mayores problemas de Linux es la falta de información en castellano y que es un entorno muy poco amigable. Espero y deseo que esto nos ayude a todos los que nos gustaría poder utilizar Linux cnc.
Animo, animo animo
-
adelante con ello .bien .bien .bien
-
Añadido minituorial para el montaje de aplicaciones auxiliares en el primer post.
-
Estupendo. Sigue adelante.
-
Gracias ABU por tu aporte.
Podrías realizar un video tutorial de la instalación de linux cnc.
Y me gustaría saber si puede correr sin ningún problema el instalarlo en una maquina virtual como como XP mode corriendo sobre W7 64.
-
Me parece muy interesante.
Gracias por el aporte.
Andrés
-
Me parece una idea buenisima, muchas gracias
Un saludo
-
Gracias ABU por tu aporte.
Podrías realizar un video tutorial de la instalación de linux cnc.
Y me gustaría saber si puede correr sin ningún problema el instalarlo en una maquina virtual como como XP mode corriendo sobre W7 64.
Montar linux en una maquina virtual para juguetear con el, si. Para enchufarle una maquina............. :o :o :-\ :-\ :o :o :-\ :-\ :'( :'( :'( :'( :'( :'( :'( :'(
Yo instale en su dia bajo VMware la version 2.5, creo recordar, la que venia con Ubuntu......y bueno....iva..........al 21% ;D
Y sobre la instalacion, lo tenia pensado. Vere como lo hago porque hay algun que otro "problemilla tecnico" para hacer un video.
-
Publicadas partes dos y tres. Enlaces en el primer post.
-
Pillando sitio gracias
Como consejo, deberias especificar bien los títulos de los vídeos, así serán mas fáciles de encontrar o compartir
saludos
-
Pillando sitio gracias
Como consejo, deberias especificar bien los títulos de los vídeos, así serán mas fáciles de encontrar o compartir
saludos
Suscribo lo del compañero Fijo.
-
Abu nos podrías decir bajo tu experiencia que ordenador. procesador, RAM y cualquier otra característica nos pueda hacer falta para poder mecanizar en fresadora y torno y que funciones correctamente.
-
me parece una aportación muy buena. adelante que seguro que a mas de uno le servirá como ejemplo. gracias por compartirlo
-
He visto los videos y me han gustado mucho, solo quiero hacerte una recomendacion, a ver si puedes mejorar el audio, yo tengo los altavoces a tope, y se oye justito. Enhorabuenas y gracias.
Un saludo
-
Suscrito y muy atento .bien
Gracias por el esfuerzo .palmas
-
Me los he mirado y son mas que interesantes, voy atreverme a pedirte si no te sabe mal si puedes poner los link de descarga de todo el software necesario directamente ya que he visto que lo tienes instalado incluso en castellano y me dado un "voltio" por la red y lo que me he encontrado es una ensalada de descargas y no me atrevo a hacer ninguna por no saber exactamente cual es la/son la/s descarga/s correcta/s, si no fuera mucha molestia te lo agradecería y creo que alguno mas de este foro también, de nuevo gracias "Abu"
-
Abu nos podrías decir bajo tu experiencia que ordenador. procesador, RAM y cualquier otra característica nos pueda hacer falta para poder mecanizar en fresadora y torno y que funciones correctamente.
GUAUUUUUU.......LA PREGUNTA DEL MILLON........ .bien
Esa pregunta tiene una respuesta facilísima de dar y dificilísima de materializar, Becario.........la respuesta es LA CONFIGURACIÓN DE EQUIPO QUE TENGA LA MENOR LATENCIA. Anda, que me he quedado a gusto ;D.
Por ejemplo. Alguno diria que 4 gigas de memoria, mejor que 2 gigas ¿no?......pues ni si ni no......depende.
La velocidad de la memoria (que una cosa muy suya, nada que ver con la del procesador) parece que también tendrá que ver ¿no?.......pues de nuevo.........depende. Una RAM de 2 gigas a 100 Mhz puede introducir menos latencia que una mas rapida, con 4 gigas, a 166 Mhz. Cosas de la vida ;D
¿Y el video?. Ahhhhhh.....no es problema. Tengo una hipertarjeta de video con mogollon de RAM dedicada y con una GPU a tropecientosmil megahercios, PnP por supùesto, y pinchada en en el conector PCI-Express ............pues muy mal. PCIExpress tiene una mala fama de aupa para esto de la latencia.
Podria seguir con el chipset de la placa madre, discos duros, procesador, BIOS y parafernalia varia, pero la filosofia general para esto de la latencia es muy simple:
BASTA UNA MANZANA PODRIDA......PARA ESTROPEAR TODO EL CESTO ::) ::) ::)
La segunda pregunta del segundo millon es ...........¿que carajo es la latencia?
Estaria muy, muy, muy bien, que aquellos que trasteamos con el linuxcnc habriesemos un post con la características y latencia de nuestros equipejo. Si lo veis bien, lo abririamos con un par de programillas estandar para que todos "jugasemos con las mismas reglas".
En cuanto a los comentarios sobre los videos, agradeceros vuestras aportaciones. Tomo nota de todas. Me comprare un micro nuevo .bien
Creo que voy a variar el formato, haciendo unas presentaciones con una especie de resumen-guion y agrupando temas.
Paciencia.....dicen que es la madre de la ciencia .brinda
-
Muchas gracias Abu por estos grandes aportes. .palmas .ereselmejor
Un saludo.
-
Abu, muy muy interesante todo lo que nos cuentas, me encantaría que abrieses ese nuevo hilo, lo mismo con esos datos estadísticos conseguimos sacar un equipo mas eficaz...
Yo instale LinuxCNC en mi equipo el año pasado y por misterios que no supe resolver volví a mach3, (Entre otras cosas por no poder hacer funcionar el volante HB04 Xhc, cosa que RobertoMFS ya a conseguido).
-
;D ;D ;D Muy buen hilo, especialmente para los que tomamos el chocolate de espaldas con el ingles,especialmente despues del brekxing :o :o :o .
Bromas a parte es un trabajo inedito y ademas en castellano, estaré muy atento ya que se hace mas fácil la comprensión explicándolo en nuestro idioma.
Ya que tengo todo el "harware", componentes en nuestro idioma para montar la BF45 este hilo me anima a seguir montando el CNC.
Animo, estaré muy atento.
Un saludo .palmas .palmas .palmas .palmas .bien .bien .bien
-
Hola, interesantes los vídeos. .bien
Yo instale LinuxCNC en mi equipo el año pasado y por misterios que no supe resolver volví a mach3, (Entre otras cosas por no poder hacer funcionar el volante HB04 Xhc, cosa que RobertoMFS ya a conseguido).
Yo me llevo pegando con el HB-04 mucho tiempo, de intentarlo, no conseguirlo y dejarlo, al tiempo igual, así durante un año.
Hace un par de noches lo conseguí, tenía pensado abrir un hilo explicando un poco lo que hice, pero me gustaría hacerlo cuando termine de ver como programar los botones, que algunos van y otros no (a empollar un poco de HAL y HALUI).
Saludos
Rob.
-
Muchas gracias abu por la dedicacion y tuntiempo que hoy en dia no es poco,estare atento al hilo para aprender algo mas .brinda .brinda .brinda
-
Publicadas partes cuatro, cinco y seis. Enlaces en el primer post.
-
Abuu , exelente , gracias
mi interes es por que nesecito poner un teclado adicional y solo usar las teclas para mover los ejes ,y poder cambiar las velocidades del movimiento y asi poder hacer bien los offsets , crees que esto sea possible?? saludos.
-
Te voy siguiendo.
Gracias por el curro que te estas pegando.
-
Otro mas que se apunta.
Enhorabuena por el trabajo.
-
Algún problema. Hace tiempo que no aparecen nuevos capítulos.
-
¿Problemas?..............todo lo contrario. Aqui lo explico.
https://youtu.be/jyPIOoEUnrc
-
Hola a todos
Muy bueno el aporte gracias por el esfuerzo. Si pudieras mejorar el audio, con los altavoces a tope se oye bajo.
Estoy intentando traducir el manual de linuxcnc al castellano (LinuxCNC_Documentation.pdf) para poder entender el hal y demás, pero mi ingles es muy deficiente, gracias al traductor de google y el bing, hay bastante hecho pero me hace falta que alguien con un buen dominio del ingles lo corrigiera, ya que hay innumerables errores, pero aun así se entiende bastante.
Si hay alguien interesado en la tarea tengo el LinuxCNC_Documentation.pdf en .odt para modificar, ya que los conversores de pdf a odt no hacen bien la conversión.
Un saludo
-
el manual tienes esta traduccion
http://www.helmantikos.com/cnc/texto/emc2usman/emc2usermanual.html
-
Para que veais que no estoy parado. Ando trabajando en el programa xemc; una interfaz grafica, aunque no lo parezca, tal que asi:
(http://fennetic.net/art/emc-splash/xemc.jpg)
Al ser tan simple, se puede uno concentrar en lo importante.........los mecanismos internos.
Los siguiente es un mero avance del tema. No esta terminado ni de lejos y, tal como lo pongo, no vale para nada de nada............pero todo se andara.
Insisto............paciencia
*******************************************************************************************************************
XEMC como ejemplo de una GUI para EMC/LinuxCNC.
La GUI xemc fue originariamente escrita por "los padres fundadores" Proctor y Shackleford y adaptada a emc2 por Alex Joni. Contrariamente a la GUI's mas "modernas", esta escrita en C++ y utiliza las API's de X11 (X Toolkit), tambien en C/C++, para el interface grafico. Con ello, se evita tener que "lidiar" con mas de un lenguaje a la hora de "descifrar matrix"..aaaahhhhggg....
Ficheros de cabecera incluidos:
Estandar:
ctype.h // tipos caracter
fcntl.h // file control options. O_CREAT(Create file if it does not exist.)
inttypes.h // fixed size integer types.
limits.h // DBL_MAX, maybe
stdarg.h // handle variable argument list
stdint.h // integer types
stdio.h // standard buffered input/output
stdlib.h // standard library definitions
string.h // string operations
sys/stat.h // data returned by the stat() function struct stat, stat()
unistd.h // standard symbolic constants and types
values.h // Old compatibility names for <limits.h> and <float.h> constants. DBL_MAX, maybe.
Especificos:
rcs.hh // should be included with NML, CMS, libnml function.etime()
emc.hh // Declarations for EMC NML vocabulary
emc_nml.hh // Declarations for EMC NML vocabulary
emcglb.h // EMC_NMLFILE, TRAJ_MAX_VELOCITY, TOOL_TABLE_FILE. Declarations for EMC NML vocabulary
emccfg.h // DEFAULT_TRAJ_MAX_VELOCITY Declarations for globals found in emcglb.c
inifile.hh // INIFILE Declarations for INI file format functions
rcs_print.hh
nml_oi.hh // Defines Generic NML Message structures used to log errors and
interact with an Operator Interface from within an NML_MODULE.
timer.hh // A TIMER object lets you wait on the expiration of a cyclic
period, to the resolution of the system clock.
Cabeceras para X Toolkit:
Include <X11/Intrinsic.h> in your application programs. This header file automatically includes <X11/Xlib.h>, so all Xlib functions also are defined. It may also be necessary to include <X11/StringDefs.h > when setting up argument lists, as many of the XtNsome-thing definitions are only defined in this file.
X11/Intrinsic.h /* Intrinsics Definitions */
X11/StringDefs.h /* Standard Name-String definitions */
Widget: Objeto que proporciona una abstracción de interfaz de usuario (por ejemplo, un widget de barra de desplazamiento).
https://www.x.org/releases/X11R7.5/doc/libXaw/widgets.pdf
Cabeceras para widgets, todas en X11/Xaw/ (X Athena widgets):
Form.h //widget can contain an arbitrary number of children or subwidgets
Box.h // geometry management of arbitrary widgets in a box of a specified dimension.
Command.h // ‘‘push buttons.’’
Label.h // graphic displayed within a rectangular region of the screen
AsciiText.h // Text widget
MenuButton.h // pop up the menu named in the menuName resource
SimpleMenu.h // container for the menu entries
SmeBSB.h // reate a menu entry that contains a string, and optional bitmaps
SmeLine.h // add a horizontal line or menu separator to a menu.
Dialog.h // prompt for auxiliary input from a user.
Canales NML:
static *emcCommandBuffer, Clase RCS_CMD_CHANNEL
static *emcStatusBuffer, Clase RCS_STAT_CHANNEL
*emcStatus, Clase EMC_STAT
static *emcErrorBuffer, Clase NML
static char error_string[NML_ERROR_LEN] = "" (macro, 256)
static int emcCommandSerialNumber = 0;
the current command numbers, set up updateStatus(), used in main()
// forward decls for error popup
static void errorReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params);
static void errorDoneCB(Widget w, XtPointer client_data, XtPointer call_data);
static int createErrorShell();
creates a fresh error dialog widget
static int destroyErrorShell();
destruye un error dialog widget.
static void popupError(const char *fmt, …)__attribute__((format(printf,1,2)));
¿¿ widget Dialogo de error?
// forward decl for quit() function
static void quit();
// clean up NML buffers. // get rid of program file window string.
…..............Para continuar.......
Pseudo código.
Un pseudocodigo es una especie de “programa del programa” escrito en lenguaje 100% humano. Algo así como el plano del futuro programa, independiente del lenguaje de programacion escogido
Aqui va el pseudocodigo para la interfase de usuario xemc. Es una interfase limitada (solo 3 ejes), antigua y con acceso a librerias hoy obsoletas (aunque aun soportadas y funcionales) en Linux. El tabulado es MUY IMPORTANTE. Da el nivel de profundidad de ejecucion de cada uno de los pasos. Por ejemplo:
Si llueve
decidir si paraguas o impermeable
Si paraguas, terminar el proceso de decisión. Ir a listo:
En caso contrario (impermeable)
¿esta en el perchero?
No esta en el perchero
se fuerza paraguas. Ir a listo:
Si, esta en el perchero
Cogerlo
ir a listo:
listo:
Hala, a la calle a mojarse
La verdadera fiesta en xemc, como en todo programa C/C++, esta en la función main():
int main(int argc, char **argv)
Varias definiciones de variables locales, a saber:
t; contador en bucles
start; hora en el arranque ???
good; bandera (0/1)
string[80];
Varias de tipo Dimension (def. en intrinsic.h)
De tipo Font (tipo XID) (en X.h), posfont
****** PROCESADO DE LA LINEA DE COMANDOS
Procesar la linea de comandos con emcGetArgs()
Si error en linea de comandos
mensaje con rcs_print_error()
salida al sistema con status 1. Fin de la fiesta
****** PROCESADO DEL INI
Cargar y procesar fichero ini con iniLoad()
Varias definiciones de variables:
machine: nombre de la maquina cnc
version: version linuxcnc
displayString: cadena generica
Crear instancia inifile de clase IniFile (en inifile.hh)
Definicion de variables locales
Abrir ini con metodo inifile.Open() (en inifile.cc) . Si falla →
retornar -1
Buscar entrada MACHINE en seccion EMC (ver ini) con inifile.Find()
Si existe, copiar nombre en “machine”
Buscar entrada VERSION en seccion EMC (ver ini) con inifile.Find()
Si existe, mostrar maquina cnc y version linuxcnc
Buscar entrada DEBUG en seccion EMC (ver ini) con inifile.Find()
Si DEBUG, copiar valor en emc_debug (definida en emcglb.c)
Si no DEBUG, emc_debug = 0
Buscar entrada NML_FILE en seccion EMC (ver ini) con inifile.Find()
Si NML_FILE, copiarlo en emc_nmlfile (definida en emcglb.c)
Si no NML_FILE, emc_nmlfile por defecto (linuxcnc.nml)
Buscar entrada TOOL_TABLE en seccion EMCIO con inifile.Find()
Si TOOL_TABLE, copiarlo en tool_table_file
Si no TOOL_TABLE, tool_table_file=tool.tbl, por defecto
Buscar entrada PARAMETER_FILE en seccion RS274NGC con inifile.Find()
Si PARAMETER_FILE, copiarlo en PARAMETER_FILE
Si no PARAMETER_FILE, PARAMETER_FILE = rs274ngc.var
.
.
.
Asi con....(“entrada”, “seccion”)
"DEFAULT_VELOCITY", "TRAJ"
hacer jogSpeed = (traj_default_velocity * 60.0) + 0.5
"MAX_VELOCITY", "TRAJ"
hacer maxJogSpeed = (traj_max_velocity * 60.0) + 0.5;
"HELP_FILE", "DISPLAY"
"PROGRAM_PREFIX", "DISPLAY"
"PROGRAM_PREFIX", "TASK" (???no se especifica en documentacion)
"POSITION_OFFSET", "DISPLAY" (MACHINE, RELATIVE o ???ignorar)
"POSITION_FEEDBACK", "DISPLAY" (ACTUAL, COMMANDED)
"JOGGING_POLARITY”,”AXIS_0” ???? No se encuentra JOGGING_POLARITY en documentacion) igual para AXIS_1 y AXIS_2. Xemc solo admite tres ejes.
"MAX_FEED_OVERRIDE", "DISPLAY"
"INPUT_SCALE", "AXIS_0"
Cerrar fichero ini con metodo inifile.Close()
Retornar 0
******* VERIFICACION DE FUNCIONAMIENTO DE MENSAJES NML
Definir RETRY_TIME=10.0 RETRY_INTERVAL=1.0 (segundos)
Si no se ha activado debug, inhibir mensajes de diagnostico
Inicializa variable start (posiblemente con la hora actual en arranque)
Inicializa bandera good = 0
Hacer en bucle do-while mientras no se alcance el valor RETY_TIME
emcTaskNmlGet() (intenta conectar a canales command y status de nml)
Si retorna 0, bandera good=1, ir a fin del bucle:
Si no se ha consumido el tiempo RETY_TIME
Detenerse durante RETY_INTERVAL segundos
Repetir bucle
RETY_TIME consumido
Fin del bucle:
Si good = 0
imprimir error con rcs_print_error()
salida al sistema con status 1. Fin de la fiesta
******* VENTANA DE TEXTO
Crear una ventana de PROGRAM_FW_NUM_LINES(10) x PROGRAM_FW_LEN_LINES(80)
Reservar memoria para 10x80 caracteres
Inicializar ventana con fwInit()
Si no éxito
imprimir error
salida al sistema con status 1. Fin de la fiesta
******* WIDGETS GRAFICOS (artilugios varios para ventanas)
Comentario: Los widgets siguen una jerarquia padres-hijos. Los widgets de mayor nivel pueden “albergan” a los de menor. Asi, el widget de mayor nivel, topLevel en este caso, albergara a los demas.
Asignar topLevel, tipo widget, con XtVaAppInitialize de Xt. El widget de mayor nivel.
Asignar topForm, XtVaCreateManagedWidget, llama a XtCreateWidget y XtManageChild.
Asignar barMenuForm, XtVaCreateManagedWidget
…........................ para continuar
-
Otro video mas.
Va de latencia........y sus cosas, que las tiene :o :o ;D ;D
https://youtu.be/Z5cdnoayS7E
-
abu al ordenador se le ha tenido que joder un cuarto de de la unica neurona que le queda ;D ;D ;D ;D , por que el sonido es fatal y la imagen en esta ultima entrega esta de pena.
Si necesitas un micro nuevo te mando uno, lo de la imagen es mas complicado. ;D ;D ;D
Espero que lo puedas solucionar satisfactoriamente.
Un saludo . .brinda .brinda .brinda .brinda
-
abu un excelente aporte.
He seguido tu ultimo video
pero me decia que el comando lshw no existia
para ello he tenido que instalarlo, entrando como superusuario y tecleando aptitude install lshw
Saludos revenido.
-
abu al ordenador se le ha tenido que joder un cuarto de de la unica neurona que le queda ;D ;D ;D ;D , por que el sonido es fatal y la imagen en esta ultima entrega esta de pena.
Si necesitas un micro nuevo te mando uno, lo de la imagen es mas complicado. ;D ;D ;D
Espero que lo puedas solucionar satisfactoriamente.
Un saludo . .brinda .brinda .brinda .brinda
Estimado Sr. D. MachoteHispanico, se agradece enormemente su altruista oferta de un micro nuevo. ¿Puede ser un AMD Ryzen 7 1800X? ;D ;D ;D ;D ;D.
En cuanto a lo de la imagen, voy a proponerle a mi señora quitarme la barba y bigote o perder barriga. Lo mismo asi mejoramos........lo de la imagen, digo :P :P ;D ;D :P :P.
Bromas aparte...........si, ya se que el audio no es dolby-sensuround, pero yo lo escucho bien con los auriculales+microfono Logitech de los años 90 que tengo. Mirare el tema, a ver que puedo hacerle. Y sobre la imagen, poco que hacer. Youtube comprime el video con la consiguiente perdida y sobre eso nadie tiene control. Recomiendo poner youtube en pantalla completa.......se ve perfecto .bien
Respecto a lo que comenta revenido..........pues es verdad. lshw no viene instalado por defecto. Se monta como bien el dice o, sin meterse en cuenta de superusuario, con:
> sudo apt-get install lshw
-
Movido todo a un blog
https://lnxcncfma.wordpress.com/
Queda todo mas "ordenadito".
De momento no hay alli ningun video, solo texto. Pero todo se andara. .bien
-
No..........ni me he muerto ni he abandonado el tema............... :P
Lo que ocurre es que linuxcnc no tiene tripas................ES UNA CASQUERIA ENTERA ;D ;D ;D ;D
En serio........es un trabajo de narices, pero apasionantisimo. Y claro, es lo que tiene eso de aprovechar los ratos perdidos..........que la cosa corre poco :(
Me vais a permitir colgar un copy-paste de la ultima entrada del blog (siempre en "edicion" ,hasta nueva orden.....) porque en el ultimo enlace hay un "especimen arqueologico" de los que nos gustan a los frikis de mi calaña ;D
Sitios, sitios y…..sitios
15 julio, 2017 ~ jgardeto ~ Editar "Sitios, sitios y…..sitios"
Sitios de interés relacionados con el contenido de este blog. No necesariamente en orden de visita.
Completísimo, maravillosamente escrito y mejor estructurado curso de C++. Ingles.
http://www.learncpp.com/
Biblioteca Real-time Control System (RCS) del NIST (National Institute of Standards and Technology, entidad dependiente del Departamento de Comercio del gobierno estadounidense). Las comunicaciones entre los procesos de linuxCNC estan basadas en esta biblioteca.
https://www.nist.gov/el/intelligent-systems-division-73500/networked-control-systems-group/real-time-control-systems
La maquina del tiempo de las paginas web.
https://archive.org
La biblioteca RCS contine documentacion sobre las matematicas precisas para el tratamiento de posiciones, rotaciones, and translaciones en diferentes tipos de sistemas de coordenadas, asi como las funciones para operaciones y conversiones entre ello. Es una parte de enorme importancia en linuxCNC. La documentacion referida se encuentra en:
https://www.nist.gov/el/intelligent-systems-division-73500/networked-control-systems-group/pose-mathematics-path-planning
Existe una referencia a una serie de ejemplos de esta parte de la biblioteca RCS; Karl Murphy’s Posemath Examples, pero el enlace no funciona. Debido al interes que deberia tener el tema, he buscado esos ejemplos en archive.org………y alli estaban, como era de esperar.
http://web.archive.org/web/20120412201014/http://www.isd.mel.nist.gov:80/projects/rcslib/posemath_examples.html
Año 1991……Ahhhhhhhh…….que tiempos aquellos………o no.
Queda nada para que este documento tenga……… TREINTA AÑOS……..
Aun asi, su importancia historica (para el entonces EMC y hoy linuxCNC) es de destacar y merecedora de un enlace propio. Ni mas ni menos que el reporte final sobre el recien nacido…, que digo…..sobre el parto del Next Generation Controller. A ver de donde si no sale lo de RS232NGC 🙂
https://ia601600.us.archive.org/26/items/nistsupporttonex4888albu/nistsupporttonex4888albu.pdf
[/i]
-
Que no........
Que sigo con el "tema"
Que no abandono ;D ;D
Cambio de tercio. Abandono la idea del blog. Es difícil de organizar, y mas de leer en cierto orden.
Así que voy a escribir un libro :o :o :o :o por amor al arte 8) 8) 8) 8)
Suena a coña, pero ya llevo mas de 100 paginas. Aqui el indice de lo que llevo hecho.
Indice
PROGRAMACION; CONCEPTOS PREVIOS
El C++
Punteros
Declaración de punteros
Enumeraciones
Estructuras
Clases
CAPITULO I. LOS CIMIENTOS DE LINUXCNC.
XDR: Estándar de Representación de Datos Externos
Los mensajes
Real-Time Control System (RCS)
Documentos de referencia
xxx
Metodología
xxxx
Listas enlazadas; la clase LinkedList
CMS
NML. El lenguaje de mensajes neutros.
Introducción
Clases y ficheros de cabecera
La librería Pose Mathematics
CAPITULO II. LA INFRAESTRUCTURA
Directorios de fuentes
Librerías
La librería libnml.so.0
CAPITULO III. EL ARRANQUE.
El script linuxcnc
El servidor linuxcncsvr
El archivo fuente emc/task/emcsvr.cc
Ficheros de cabecera
Definiciones
main
Super server
.
.
.
y seguira....
Como muestra de esta locura, unas paginillas de la librería Pose Mathematics. Como vereis, se necesita una base teorica de matematicas y programacion
bastante "solida". Lo siento por los forofos de lo "practico".......pero esto es lo que hay :( :(
https://www.dropbox.com/preview/foro_ma/preview.doc?role=personal
Ni puñetera idea de cuando estará disponible una "versión beta", asi que no pregunteis ;D ;D
Y por supuesto, si alguien esta especialmente interesado y se ve con ganas y conocimientos para colaborar........que no dude en mandarme un mensaje .bien
-
Lo del libro me parece genial..ese curro que te estas pegando muchos miles te lo agradeceremos eternamente
gracias .bien
-
Muchísimas gracias por te enorme trabajo.
Un saludo.
-
Te felicito.
Me parece que el link que has puesto solo lo puedes ver tu. Si te fijas en la url no hay ninguna referencia única que incluya tu cuenta.
Deberías ir a compartir- copia enlace
-
.palmas
Esto promete.
.brinda
Me pregunto cuando vas a hacer el capitulo que explique como dominar la configuración. Crear displays, HAL... :)
-
¿No funciona el link.....? :( :( :(
¿ Y este?
https://www.dropbox.com/s/02gh9d3klntxwcx/preview.doc?dl=0
Me pregunto cuando vas a hacer el capitulo que explique como dominar la configuración. Crear displays, HAL... :)
Ni puñetera idea de cuando estará disponible una "versión beta", asi que no pregunteis ;D ;D
-
¿No funciona el link.....? :( :( :(
¿ Y este?
https://www.dropbox.com/s/02gh9d3klntxwcx/preview.doc?dl=0
SI, este si lo veo
-
Fin de semana super-productivo.
El indice de lo que va hecho ha pegado un buen tiron. Debo ir por el 5% del total final ??? ??? ??? ???
Animooooo......pal'2020.........mas o menos.......... :P :P ;D ;D ;D ;D
INTRODUCCION
CAPITULO I. PROGRAMACION; CONCEPTOS PREVIOS
El C++ para no programadores
Estructura de un programa
Variables y tipos
La directiva #define
Operadores; las matemáticas básicas
asignación
aritmética
operadores compuestos
incremento y decremento
operadores relacionales y de comparación
operadores lógicos
el ternario condicional
la coma como operador
Operadores a nivel de bits
Casting.
Tamaño; sizeof
la precedencia; tabla
Declaraciones y control de flujo
Enunciado compuesto
Declaraciones de selección: if y else
Declaraciones de iteración (bucles)
El ciclo while
El ciclo do-while
El bucle for
Rango para bucle for
Saltar declaraciones
La declaración break
La declaración continue
La declaración goto
Otra declaración de selección: switch
Punteros
Declaración de punteros
Enumeraciones
Estructuras
Funciones
Funciones sobrecargadas
Plantillas (templates) de funciones
Clases
Constructores
Sobrecarga de constructores
Constructor predeterminado
Inicialización uniforme
Inicialización de miembro en constructores
Punteros a clases
Clases definidas con struct y union
Sobrecarga de operadores
La palabra clave this
Miembros estáticos
Funciones miembro Const
Plantillas de clases
Especialización de plantillas
Miembros especiales
Constructor predeterminado
Destructor
Copiar constructor
Copiar asignación
Mover constructor y asignación
Miembros implícitos
Herencia y funciones friend
xxx...a completar
….........
CAPITULO II. OBTENCION DE LAS FUENTES DE LINUXCNC
Obtener linuxcnc, versión de desarrollo.
Git mediante terminal
Git mediante git-gui
Mediante .zip
CAPITULO III. LOS CIMIENTOS DE LINUXCNC.
XDR: Estándar de Representación de Datos Externos
Los mensajes
Real-Time Control System (RCS)
Documentos de referencia
xxx...a completar
….........
Metodología
Semáforos; la clase RCS_SEMAPHORE.
función wait
función trywait
función post
función getvalue
Constructor
Listas enlazadas; la clase LinkedList
Constructor
Destructor
La función set_list_sizing_mode
Las funciónes store_
Las funciónes get_
Las funciónes delete_
Funciones de impresión RCS.
Función rcs_print
Función rcs_print_error
Función rcs_print_debug
Función rcs_vprint.
Función rcs_puts
Función strip_control_characters
Función set_rcs_print_destination
Función set_rcs_print_flag
Función clear_rcs_print_flag
Función get_rcs_print_list
Función clean_rcs_print_list
Función set_rcs_print_list_sizing_mode
CMS
NML. El lenguaje de mensajes neutros.
Introducción
Estructura de una aplicación NML
Ficheros de cabecera y clases
Vocabulario NML
La clase NMLmsg
Clase CMS_USER
Clase NML
Clase IniFile
xxx...a completar
….........
El Interprete RS274
Clase InterpBase
Clase Interp
xxx...a completar
….........
La librería Pose Mathematics
Organizacion del codigo
Convenciones de nombres
Uso
Unidades
Representaciones
translacionales
rotacionales
de eje y angulo
combinadas
Funciones y operadores
Funciones translacionales
CAPITULO IV. LA INFRAESTRUCTURA
Directorios de fuentes
Librerías
La librería libnml.so.0
xxx...a completar
….........
CAPITULO V. EL ARRANQUE.
El script linuxcnc
El servidor linuxcncsvr
El archivo fuente emc/task/emcsvr.cc
Ficheros de cabecera
Definiciones
main
Super server
CAPITULO_X..........no, no es el 10...........es el capitulo misterio X de adonde llegaran :P
ANEXO 1
Árbol de clases
Ahhhh........modifico, que se me ha olvidado decir una cosilla....
Tengo pensado bautizar a los capitulos, o partes de los capitulos, como ROJOS, AMARILLOS, y VERDES para temas de nivel BASICO, AVANZADO, y NIVEL DIOS .
-
Abu, aplaudo tan gran objetivo de tienes, seguro que va ser un documento trivial para los hispanohablantes.algo que no entiendo por completo es si, este documento servira de refencia para hacer GUI's para linuxcnc o programar los archivos INI y HAL.
Se le agradece .palmas .palmas .palmas .palmas .brinda.
-
:-X :-X :-X
-
Felicidades!! .brinda
Que buena noticia.
Esta herramienta la había soñado en mis febriles encuentros con los .hal .palmas
A ver si lo pudieras explicar con mas detalle
-
me he reconectado a ver si habia noticias de mi baja. Veo que no.
Os dejo un panfleto, para el que le interese. Desordenado y guarrete.....es lo que hay. No hacen falta comentarios. Gracias.
https://www.dropbox.com/s/zrkz1238sawgob7/Capitulo_HAL.doc?dl=0
Y ahora, vuelta al modo :-X
-
Abu ,Gracias por el documento. ;)
Un saludo.
-
Muchas Gracias Abu!
-
no veo los videos , donde han ido?
-
Es una pena todo este embrollo, y toda esa informacion perdida. Esperemos que lo repiense y continue con este trabajo tan interesante.
-
Que paso.....????
-
Que ha pasado....no se ve ningún video ni el blog ???
-
Superinteresante!!!!
-
Interesante pero donde ha ido todo ??? Se ha perdido ???
-
Pues Abu abandonó el foro con lo que no habrá mantenido los enlaces o los habrá cambiado.
Está en el foro del LinuxCNC. Si te interesa, ponte en contacto con él: Lo encontrarás en la rama de español, en un post de traducción de los manuales al español.
Un saludo.
-
Vaya, que lastima.
Gracias
-
Hola.
Recien instale LinuxCNC y he llegado hasta la configuración con stepconf, misma que fue satisfactoria y los motores probados montados en la maquina con sus respectivas velocidades funcionando ok.
Los limites no se están utilizando al menos mientras supere esta fase.
Luego inicio mediante el lanzador "Launch my-mill" desde el escritorio, abro el programa y ejecuto el ejemplo (LinuxCNC) el cual se ejecuta en pantalla correctamente sin ningun error, pero la máquia no hace nada...
Alguien podria darme una mano con esto?
Como observaciones relacionadas:
Solo he ejecutado el stepconf, ninguna otra configuración del LinuxCNC y no se si deba configurar otra cosa.
Antes la CNC trabajaba con arduino y GRBL GNEA, funcionando ok, pero le cambié la electrónica, le instalé drivers TB6560 y una tarjeta China de cinco (5) ejes de los cuales solo tengo en uso 3.
Como decia al inicio, la prueba durante la etapa de configuración con stepconf es satisfactoria y los motores se mueven a la velocidad programada (25 mm/s y aceleracion probada entre 200 y 750).
De antemano les agradezco la colaboración, no soy muy bueno con el ingles y se que hay bastante documentación en ese idioma pero no es una opción. Gracias.
PD:
Estube tratando con los videos que habian publicado pero ya no estan disponibles...
-
Si mal no recuerdo, esos me pasó a mi también y era porque la máquina no se movía hasta que hacía el homming.
Luego se movías, pero tenía la velocidad muy baja y no lo notaba ... subir la velocidad y listo.
Un saludo.
-
Una vez lanzada y te aparezca la pantalla de control, tienes que darle al botón de encendido, y ya puedes mover la maquina en manual, pero necesitas hacer homing si o si, si quieres hacer algo con ella desde remoto o con un programa de codigo