Macro ArrayCopy/es: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{Macro/es|Icon=Text-x-python|Name=ArrayCopy|Name/es=ArrayCopy|Description=Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular|Author=Yorik|Version=1.0|Date=2014-05-04}}
{{Macro/es|Icon=Text-x-python|Name=ArrayCopy|Name/es=ArrayCopy|Description=Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular|Author=Yorik|Version=1.0|Date=2014-05-04}}
</div>


==Descriptivo==
==Descriptivo==

Revision as of 14:54, 13 December 2018

File:Text-x-python ArrayCopy

Descripción
Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular

Versión macro : 1.0
Fecha última modificación : 2014-05-04
Autor : Yorik
Autor
Yorik
Descargar
None
Enlace
Versión Macro
1.0
Fecha última modificación
2014-05-04
Versión(es) FreeCAD
None
Acceso directo predeterminado
None
Ver también
None

Descriptivo

Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular. Puedes definir el número de filas y columnas y la distancia entre ellas.

Script

Macro_ArrayCopy.FCMacro

import FreeCAD, FreeCADGui, Part
from PySide import QtGui,QtCore
 
def proceed():
    try:
        u = (int(l1.text()),float(l2.text()))   
        v = (int(l3.text()),float(l4.text()))
    except:
        FreeCAD.Console.PrintError("Wrong input! Only numbers allowed...\n")
    sel = FreeCADGui.Selection.getSelection()
    if sel:
        sel = sel[0]
        name = sel.Name   
        shape = sel.Shape
        for column in range(u[0]):
            for row in range(v[0]):
                if (column != 0) or (row != 0):
                    delta = FreeCAD.Vector(column*u[1],row*v[1],0)   
                    newshape = sel.Shape.copy()
                    newshape.translate(delta)
                    newobject = FreeCAD.ActiveDocument.addObject("Part::Feature",name)
                    newobject.Shape = newshape
    else:
        FreeCAD.Console.PrintError("Error: One object must be selected")
    hide()
 
def hide():
    dialog.hide()
 
dialog = QtGui.QDialog()
dialog.resize(200,300)
dialog.setWindowTitle("Array")
la = QtGui.QVBoxLayout(dialog)
t1 = QtGui.QLabel("number of columns")
la.addWidget(t1)
l1 = QtGui.QLineEdit()
la.addWidget(l1)
t2 = QtGui.QLabel("distance between columns")
la.addWidget(t2)
l2 = QtGui.QLineEdit()
la.addWidget(l2)
t3 = QtGui.QLabel("number of rows")
la.addWidget(t3)
l3 = QtGui.QLineEdit()
la.addWidget(l3)
t4 = QtGui.QLabel("distance between rows")   
la.addWidget(t4)
l4 = QtGui.QLineEdit()
la.addWidget(l4)
okbox = QtGui.QDialogButtonBox(dialog)
okbox.setOrientation(QtCore.Qt.Horizontal)
okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel