Arrancar FreeCAD con script

Este foro es para preguntas y debates en Español
Forum rules
reglas del foro e información útil

IMPORTANTE: Por favor leer antes de solicitar ayuda
Post Reply
xSprank
Posts: 2
Joined: Wed Nov 09, 2016 2:09 pm

Arrancar FreeCAD con script

Post by xSprank »

Hola, quiero saber si es posible que al iniciar freecad, automaticamente ejecute un comando como execfile(), es decir que al abrirlo pueda ejecutar otro archivo en .py


muchas gracias.

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6706 (Git)
Build type: Release
Branch: releases/FreeCAD-0-16
Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
damian
Posts: 583
Joined: Sun May 31, 2015 6:16 pm

Re: Arrancar FreeCAD con script

Post by damian »

Hola:
xSprank wrote:quiero saber si es posible que al iniciar freecad, automaticamente ejecute un comando como execfile()
Cuando se inicia freecad se ejecutan unas cuantas cosas. Las puedes ver en la 'vista de informe'.

Code: Select all

Run Gui init script
Init: Running FreeCADGuiInit.py start script...
Init:   Searching modules...
Init:      Initializing /home/damian/freecad-build/Mod/Sketcher... done
Init:      Initializing /home/damian/freecad-build/Mod/ReverseEngineering... done
Init:      Initializing /home/damian/freecad-build/Mod/Show(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Image... done
Init:      Initializing /home/damian/freecad-build/Mod/PartDesign... done
Init:      Initializing /home/damian/freecad-build/Mod/Measure(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Ship... done
Init:      Initializing /home/damian/freecad-build/Mod/Web... done
Init:      Initializing /home/damian/freecad-build/Mod/MeshPart... done
Init:      Initializing /home/damian/.FreeCAD/Mod/Calenda... done
Init:      Initializing /home/damian/freecad-build/Mod/OpenSCAD... done
Init:      Initializing /home/damian/freecad-build/Mod/Fem... done
Init:      Initializing /home/damian/freecad-build/Mod/Spreadsheet... done
Init:      Initializing /home/damian/freecad-build/Mod/Start... done
Init:      Initializing /home/damian/freecad-build/Mod/Draft... done
Init:      Initializing /home/damian/freecad-build/Mod/Test... done
Init:      Initializing /home/damian/freecad-build/Mod/Import... done
Init:      Initializing /home/damian/freecad-build/Mod/TechDraw... done
Init:      Initializing /home/damian/freecad-build/Mod/Complete... done
Init:      Initializing /home/damian/freecad-build/Mod/Plot... done
Init:      Initializing /home/damian/freecad-build/Mod/Material... done
Init:      Initializing /home/damian/freecad-build/Mod/Raytracing... done
Init:      Initializing /home/damian/freecad-build/Mod/Mesh... done
Init:      Initializing /home/damian/freecad-build/Mod/Path... done
Init:      Initializing /home/damian/freecad-build/Mod/Part... done
Init:      Initializing /home/damian/freecad-build/Mod/Arch... done
Init:      Initializing /home/damian/freecad-build/Mod/Robot... done
Init:      Initializing /home/damian/freecad-build/Mod/Points... done
Init:      Initializing /home/damian/freecad-build/Mod/Idf(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Inspection... done
Init:      Initializing /home/damian/freecad-build/Mod/Drawing... done
Init: Loading FreeCAD GUI
Init: Running FreeCADGuiInit.py start script... done
Init: Activating default workbench StartWorkbench
Module: Part
Loading Part module... done
Loading GUI of Part module... done
Pero desde luego no parece muy recomendable alterar los scripts del arranque de FreeCAD.
¿Es importante lo de 'automaticamente'?
Si es no, siempre se puede ejecutar este o cualquier otro comando mediante una macro o con la consola python de freecad.
Si es sí, tal vez crearía un nuevo banco de trabajo, lo declararía como banco de trabajo por defecto para que se carge en el arranque de freecad (arriba aparece Module:Part), e incluiría el código a ejecutar en el InitGui.py de mi banco de trabajo.
Seguro que hay otras soluciones posibles.
Suerte

OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.8864 (Git)
Build type: Unknown
Branch: master
Hash: 9fe82bfbb92b19e4e1466772eec126cde9cfcdb9
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.0.0
xSprank
Posts: 2
Joined: Wed Nov 09, 2016 2:09 pm

Re: Arrancar FreeCAD con script

Post by xSprank »

damian wrote:Hola:
xSprank wrote:quiero saber si es posible que al iniciar freecad, automaticamente ejecute un comando como execfile()
Cuando se inicia freecad se ejecutan unas cuantas cosas. Las puedes ver en la 'vista de informe'.

Code: Select all

Run Gui init script
Init: Running FreeCADGuiInit.py start script...
Init:   Searching modules...
Init:      Initializing /home/damian/freecad-build/Mod/Sketcher... done
Init:      Initializing /home/damian/freecad-build/Mod/ReverseEngineering... done
Init:      Initializing /home/damian/freecad-build/Mod/Show(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Image... done
Init:      Initializing /home/damian/freecad-build/Mod/PartDesign... done
Init:      Initializing /home/damian/freecad-build/Mod/Measure(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Ship... done
Init:      Initializing /home/damian/freecad-build/Mod/Web... done
Init:      Initializing /home/damian/freecad-build/Mod/MeshPart... done
Init:      Initializing /home/damian/.FreeCAD/Mod/Calenda... done
Init:      Initializing /home/damian/freecad-build/Mod/OpenSCAD... done
Init:      Initializing /home/damian/freecad-build/Mod/Fem... done
Init:      Initializing /home/damian/freecad-build/Mod/Spreadsheet... done
Init:      Initializing /home/damian/freecad-build/Mod/Start... done
Init:      Initializing /home/damian/freecad-build/Mod/Draft... done
Init:      Initializing /home/damian/freecad-build/Mod/Test... done
Init:      Initializing /home/damian/freecad-build/Mod/Import... done
Init:      Initializing /home/damian/freecad-build/Mod/TechDraw... done
Init:      Initializing /home/damian/freecad-build/Mod/Complete... done
Init:      Initializing /home/damian/freecad-build/Mod/Plot... done
Init:      Initializing /home/damian/freecad-build/Mod/Material... done
Init:      Initializing /home/damian/freecad-build/Mod/Raytracing... done
Init:      Initializing /home/damian/freecad-build/Mod/Mesh... done
Init:      Initializing /home/damian/freecad-build/Mod/Path... done
Init:      Initializing /home/damian/freecad-build/Mod/Part... done
Init:      Initializing /home/damian/freecad-build/Mod/Arch... done
Init:      Initializing /home/damian/freecad-build/Mod/Robot... done
Init:      Initializing /home/damian/freecad-build/Mod/Points... done
Init:      Initializing /home/damian/freecad-build/Mod/Idf(InitGui.py not found)... ignore
Init:      Initializing /home/damian/freecad-build/Mod/Inspection... done
Init:      Initializing /home/damian/freecad-build/Mod/Drawing... done
Init: Loading FreeCAD GUI
Init: Running FreeCADGuiInit.py start script... done
Init: Activating default workbench StartWorkbench
Module: Part
Loading Part module... done
Loading GUI of Part module... done
Pero desde luego no parece muy recomendable alterar los scripts del arranque de FreeCAD.
¿Es importante lo de 'automaticamente'?
Si es no, siempre se puede ejecutar este o cualquier otro comando mediante una macro o con la consola python de freecad.
Si es sí, tal vez crearía un nuevo banco de trabajo, lo declararía como banco de trabajo por defecto para que se carge en el arranque de freecad (arriba aparece Module:Part), e incluiría el código a ejecutar en el InitGui.py de mi banco de trabajo.
Seguro que hay otras soluciones posibles.
Suerte

OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.8864 (Git)
Build type: Unknown
Branch: master
Hash: 9fe82bfbb92b19e4e1466772eec126cde9cfcdb9
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.0.0
Como hago eso de crear un banco de trabajo, quiero añadir este comando: execfile('C:/Program Files/FreeCAD 0.16/bin/hola12.py')
muchas gracias
damian
Posts: 583
Joined: Sun May 31, 2015 6:16 pm

Re: Arrancar FreeCAD con script

Post by damian »

Estas hablando de modificar el arranque del programa. Es un tema avanzado y lo encuetras en la documentación en el área de desarrollo (developers hub). El punto tercero de este enlace es ''creating a new workbench" http://freecadweb.org/wiki/index.php?ti ... _workbench
Básicamente tienes que:

1º) buscar la carpeta oculta .FreeCAD en tu carpeta personal. En mi caso es /home/damian/.FreeCAD pero en windows será distinto
2º) dentro de .FreeCAD crear una carpeta Mod que alojará todos los bancos de trabajo que no vengan incluidos con freecad (de fábrica)
3º) dentro de Mod crea una caperta MiBanco que alojará tu banco de trabajo personalizado
4º) dentro de MiBanco incluye un archivo InitGui.py a semejanza del que vez en el enlace "creating a new workbench"
5º) incluye en el método Initialize(self) lo que quieras ejecutar
6º) registra como banco de trabajo por defecto MiBanco en el menú Edición-Preferencias-General-Módulo cargado despues del arranque

Algo seguro que se me olvida.

No es fácil! Suerte!
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: Arrancar FreeCAD con script

Post by sgrogan »

"fight the good fight"
Post Reply