Macro Repro Wire

Macro ReproWire.png Macro Repro Wire

Description
This macro create on duplicate to wire subObject ... selected.
Author
Mario52
Links
Macros recipes
How to install macros
How to customize toolbars
Version
00.01
Date last modification
2015-10-24


Description

This macro create on duplicate to wire, face, object or subObject ... selected.

ReproWire


Use

Select your object and run the macro for create your copy, you can extrude created faces.

The copies are coloured red and renamed with the Shapexxx + original names

Script

Macro_ReproWire.FCMacro the icon for the toolbar icon for the button

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import codecs   #https://docs.python.org/2/howto/unicode.html
import Part,Draft
#
#__title__="Macro_ReproWire"
#__author__ = "Mario52"
#__url__     = "http://www.freecadweb.org/index-fr.html"
#__version__ = "00.01"
#__date__    = "24/10/2015"
#

sel = Gui.Selection.getSelection()
s   = Gui.Selection.getSelectionEx()

try:
    if len(sel) != 0:
            print "Object(s) : ", len(sel), " , SubObject(s) : ", len(s)
            i2 = ii2 = -1 
            for i in s:
                i2 += 1
                ii2 = -1
                try:
                    FreeCADGui.Selection.getSelectionEx()[i2].SubObjects[ii2]
                    for ii in i.SubElementNames:
#                        print "SubObject"
                        ii2 += 1
                        Part.show(FreeCADGui.Selection.getSelectionEx()[i2].SubObjects[ii2].copy())   # create repro shape subObject
                        print i2+1 ,"/", ii2+1 ,"/", len(s) ," ", i.ObjectName ," ", ii               # display the info SubObject
                        a = App.ActiveDocument.ActiveObject
                        #    object Name  / original object Name / SubObject Name
                        a.Label = a.Name + " " + i.ObjectName + " " + ii                              # Label for the repro shape
                        try:
                            FreeCADGui.activeDocument().activeObject().LineColor  = (1.0,0.0,0.0)     # give LineColor
                            FreeCADGui.activeDocument().activeObject().PointColor = (1.0,0.0,0.0)     # give PointColor
                            FreeCADGui.activeDocument().activeObject().ShapeColor = (1.0,0.0,0.0)     # give ShapeColor
                        except Exception:
                            None
                except Exception:
#                    print "Not SubObject"
                    Part.show(sel[i2].Shape)                                                          # create repro shape object
                    print i2+1 ,"/", ii2+1 ,"/", len(s) ," ", sel[i2].Name                            # display the info SubObject
                    a = App.ActiveDocument.ActiveObject
                    #        object Name  /  original object Name
                    a.Label =a.Name + " " +  sel[i2].Name                                             # Label for the repro shape
                    try:
                        FreeCADGui.activeDocument().activeObject().LineColor  = (1.0,0.0,0.0)         # give LineColor
                        FreeCADGui.activeDocument().activeObject().PointColor = (1.0,0.0,0.0)         # give PointColor
                        FreeCADGui.activeDocument().activeObject().ShapeColor = (1.0,0.0,0.0)         # give ShapeColor
                    except Exception:
                        None
    else :
        print "Select one object"
except Exception:
    print "Unexpected error" 

Version

00.01 24/10/2015 : extension to all objects

00.00 22/10/2015 :

Links

The forum are there any tools to extrude only selected surface from a sketch?


Online version: "http://www.freecadweb.org/wiki/index.php?title=Macro_Repro_Wire&oldid=240716"

Navigation menu