Macro ArrayCopy/it: Difference between revisions
mNo edit summary |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
{{Macro/it|Icon=Text-x-python|Name=ArrayCopy|Name/it=Serie di copie|Description=Questa macro copia più volte gli oggetti selezionati in una griglia (matrice) rettangolare|Author=Yorik|Version=1.0|Date=2014-05-04}} |
{{Macro/it|Icon=Text-x-python|Name=ArrayCopy|Name/it=Serie di copie|Description=Questa macro copia più volte gli oggetti selezionati in una griglia (matrice) rettangolare|Author=Yorik|Version=1.0|Date=2014-05-04}} |
||
<div class="mw-translate-fuzzy"> |
|||
Questa macro copia più volte gli oggetti selezionati in una griglia (matrice). È possibile definire il numero di righe e di colonne e la distanza tra di loro. |
Questa macro copia più volte gli oggetti selezionati in una griglia (matrice). È possibile definire il numero di righe e di colonne e la distanza tra di loro. |
||
</div> |
|||
This macro copies the selected object several times, on an array grid. You can define the number of rows and columns and the distance between them. |
|||
Revision as of 17:04, 4 August 2018
File:Text-x-python ArrayCopy |
Descrizione |
---|
Questa macro copia più volte gli oggetti selezionati in una griglia (matrice) rettangolare Versione macro: 1.0 Ultima modifica: 2014-05-04 Autore: Yorik |
Autore |
Yorik |
Download |
None |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
1.0 |
Data ultima modifica |
2014-05-04 |
Versioni di FreeCAD |
None |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Questa macro copia più volte gli oggetti selezionati in una griglia (matrice). È possibile definire il numero di righe e di colonne e la distanza tra di loro.
This macro copies the selected object several times, on an array grid. You can define the number of rows and columns and the distance between them.
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