Macro ArrayCopy/es: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{Macro/es
{{Macro/es
|Name=ArrayCopy
|Name=ArrayCopy
|Icon=Macro_ArrayCopy.png
|Translate=ArrayCopy
|Translate=ArrayCopy
|Description=Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular
|Description=Esta macro copia el objeto seleccionado varias veces, a lo largo de una matriz rectangular
Line 8: Line 8:
|Version=1.0
|Version=1.0
|Date=2014-05-04
|Date=2014-05-04
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/9/9d/Macro_ArrayCopy.png ToolBar Icon]
}}
}}
</div>


==Descriptivo==
==Descriptivo==
Line 19: Line 20:
'''Macro_ArrayCopy.FCMacro'''
'''Macro_ArrayCopy.FCMacro'''


{{Code|code=
{{MacroCode|code=


import FreeCAD, FreeCADGui, Part
import FreeCAD, FreeCADGui, Part

Latest revision as of 09:44, 23 May 2020

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
Versión FreeCAD : All
Descargar : ToolBar Icon
Autor : Yorik
Autor
Yorik
Descargar
ToolBar Icon
Enlace
Versión Macro
1.0
Fecha última modificación
2014-05-04
Versión(es) FreeCAD
All
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

ToolBar Icon

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