Macro MacroMenu: Difference between revisions

From FreeCAD Documentation
(translate)
(Module to Workbench renaming.)
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:1-->
{{Macro
|Name=Macro MacroMenu
|Icon=Macro_MacroMenu.png
|Description=Adds the macros found in the macros folder to the FreeCAD Macros menu
|Author=Yorik
|Version=1.0
|Date=2014-08-07
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/1/1e/Macro_MacroMenu.png ToolBar Icon]
}}


==Description== <!--T:2-->
{{Macro|Icon=Text-x-python|Name=Macro MacroMenu|Description=Adds the macros found in the macros folder to the FreeCAD Macros menu|Author=Yorik}}
This code was part of the [[Draft Workbench]] and has been removed cf [http://freecadweb.org/tracker/view.php?id=490 issue #490].


==Script== <!--T:3-->


<!--T:4-->
This code was part of the [[Draft Module]] and has been removed cf [http://freecadweb.org/tracker/view.php?id=490 issue #490].
ToolBar Icon [[Image:Macro_MacroMenu.png]]

</translate>
</translate>


'''Macro_MacroMenu.FCMacro'''
<syntaxhighlight>

import os,FreeCAD,FreeCADGui
{{MacroCode|code=

import os,FreeCAD,FreeCADGui
macrosList = []
macrosList = []
macroPath = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro").GetString("MacroPath")
macroPath = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro").GetString("MacroPath")
class MacroCommand():
class MacroCommand():
"A template for macro commands"
"A template for macro commands"
def __init__(self,macroname):
def __init__(self,macroname):
self.macroname = macroname
self.macroname = macroname
def GetResources(self):
def GetResources(self):
return {'Pixmap' : 'Draft_Macro',
return {'Pixmap' : 'Draft_Macro',
'MenuText': self.macroname,
'MenuText': self.macroname,
'ToolTip': 'Executes the '+self.macroname+' macro'}
'ToolTip': 'Executes the '+self.macroname+' macro'}
def Activated(self):
def Activated(self):
target = macroPath+os.sep+self.macroname+'.FCMacro'
target = macroPath+os.sep+self.macroname+'.FCMacro'
if os.path.exists(target): execfile(target)
if os.path.exists(target): execfile(target)
if macroPath and os.path.isdir(macroPath):
if macroPath and os.path.isdir(macroPath):
macros = []
macros = []
for f in os.listdir(macroPath):
for f in os.listdir(macroPath):
if ".FCMacro" in f:
if ".FCMacro" in f:
macros.append(f[:-8])
macros.append(f[:-8])
for m in macros:
for m in macros:
cmd = 'Macro_'+m
cmd = 'Macro_'+m
FreeCADGui.addCommand(cmd,MacroCommand(m))
FreeCADGui.addCommand(cmd,MacroCommand(m))
macrosList.append(cmd)
macrosList.append(cmd)

</syntaxhighlight>
}}


{{clear}}
{{clear}}
<languages/>

Latest revision as of 20:33, 24 August 2021

Other languages:

Macro MacroMenu

Description
Adds the macros found in the macros folder to the FreeCAD Macros menu

Macro version: 1.0
Last modified: 2014-08-07
FreeCAD version: All
Download: ToolBar Icon
Author: Yorik
Author
Yorik
Download
ToolBar Icon
Links
Macro Version
1.0
Date last modified
2014-08-07
FreeCAD Version(s)
All
Default shortcut
None
See also
None

Description

This code was part of the Draft Workbench and has been removed cf issue #490.

Script

ToolBar Icon

Macro_MacroMenu.FCMacro

import os,FreeCAD,FreeCADGui
 
macrosList = []
macroPath = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro").GetString("MacroPath") 
 
class MacroCommand():
    "A template for macro commands"
    def __init__(self,macroname):
        self.macroname = macroname
 
    def GetResources(self):
        return {'Pixmap'  : 'Draft_Macro',
                'MenuText': self.macroname,
                'ToolTip': 'Executes the '+self.macroname+' macro'}
 
    def Activated(self):
        target = macroPath+os.sep+self.macroname+'.FCMacro'
        if os.path.exists(target): execfile(target)
            
if macroPath and os.path.isdir(macroPath):
    macros = []
    for f in os.listdir(macroPath):
        if ".FCMacro" in f:
            macros.append(f[:-8])
    for m in macros:
        cmd = 'Macro_'+m
        FreeCADGui.addCommand(cmd,MacroCommand(m))
        macrosList.append(cmd)