Macro Stairs/it: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro/it|Icon=Text-x-python|Name=Macro Stairs|Name/it=Scala a chiocciola|Description=Crea una scala a chiocciola.|Author=Mario52|Version=00.03|Date=2015-03-01}} |
|||
{{Macro/it |
|||
|Name=Macro Stairs |
|||
|Translate=Scala a chiocciola |
|||
|Icon=Macro_Stairs.png |
|||
|Description=Crea una scala a chiocciola. |
|||
|Author=Mario52 |
|||
|Version=00.04 |
|||
|Date=2019-07-24 |
|||
|FCVersion=All |
|||
|Download=[https://www.freecadweb.org/wiki/images/a/a3/Macro_Stairs.png ToolBar Icon] |
|||
}} |
|||
==Descrizione== |
==Descrizione== |
||
Crea una scala a chiocciola |
Crea una scala a chiocciola |
||
⚫ | |||
{{Codeextralink|}} |
|||
⚫ | |||
{{clear}} |
|||
==Uso== |
==Uso== |
||
Creare lo scalino modello, selezionare l'oggetto e avviare la macro |
Creare lo scalino modello, selezionare l'oggetto e avviare la macro |
||
Line 20: | Line 28: | ||
==Script== |
==Script== |
||
ToolBar Icon [[Image:Macro_Stairs.png]] |
|||
'''Macro_Stairs.FCMacro''' |
'''Macro_Stairs.FCMacro''' |
||
{{ |
{{MacroCode|code= |
||
# Select your object(s) give : |
# Select your object(s) give : |
||
Line 30: | Line 42: | ||
# the original object is not modify |
# the original object is not modify |
||
# Macro_Stairs.FCMacro |
# Macro_Stairs.FCMacro |
||
# |
|||
#01/03/2015 |
|||
import FreeCAD, Draft, Part |
import FreeCAD, Draft, Part |
||
__title__ = "CircularStair" |
__title__ = "CircularStair" |
||
__author__ = "Mario52" |
__author__ = "Mario52" |
||
__date__ = " |
__date__ = "2019/07/24" |
||
__url__ = "http://www.freecadweb.org/index-fr.html" |
__url__ = "http://www.freecadweb.org/index-fr.html" |
||
__wiki__ = "https://www.freecadweb.org/wiki/Macro_Stairs" |
|||
__version__ = "00. |
__version__ = "00.04" |
||
sel = FreeCADGui.Selection.getSelection() |
sel = FreeCADGui.Selection.getSelection() |
||
Line 52: | Line 66: | ||
vecligne=[FreeCAD.Vector(0.0,0.0,0.0),FreeCAD.Vector(rayon,0.0,0.0)] # vector for line directrice |
vecligne=[FreeCAD.Vector(0.0,0.0,0.0),FreeCAD.Vector(rayon,0.0,0.0)] # vector for line directrice |
||
ligne = Draft.makeWire(vecligne,closed=False,face=False,support=None) # creation de la ligne de base |
ligne = Draft.makeWire(vecligne,closed=False,face=False,support=None) # creation de la ligne de base |
||
coor_X = coor_Y = coor_Z = 0.0 |
coor_X = coor_Y = coor_Z = 0.0 |
||
for i0 in range(tours): |
for i0 in range(tours): |
||
for i in range(0,360,((360/nombre))): # boucle principale 0 to 360 degrees |
for i in range(0,360,(int(360/nombre))): # boucle principale 0 to 360 degrees |
||
FreeCAD.ActiveDocument.getObject(ligne.Name).Placement=App.Placement(App.Vector(0,0,coor_Z), App.Rotation(App.Vector(0,0,1),i), App.Vector(0,0,0)) |
FreeCAD.ActiveDocument.getObject(ligne.Name).Placement=App.Placement(App.Vector(0,0,coor_Z), App.Rotation(App.Vector(0,0,1),i), App.Vector(0,0,0)) |
||
try: |
|||
a = ligne.Shape.Edges[0].Vertexes[1] |
a = ligne.Shape.Edges[0].Vertexes[1] # fin de la ligne |
||
⚫ | |||
coor_X = (a.Point.x) |
|||
⚫ | |||
except Exception: |
|||
a = ligne.End |
|||
coor_X = (ligne.End.x) # fin de la ligne X |
|||
coor_Y = (ligne.End.y) # fin de la ligne Y |
|||
if cloner == 1: |
if cloner == 1: |
||
Line 81: | Line 101: | ||
FreeCAD.ActiveDocument.recompute() |
FreeCAD.ActiveDocument.recompute() |
||
}} |
}} |
||
==Link== |
==Link== |
||
La discussione nel forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=9921 Newbie question - spiral |
La discussione nel forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=9921 Newbie question - spiral stairs reloaded] |
||
{{clear}} |
{{clear}} |
||
⚫ |
Revision as of 11:21, 23 May 2020
Descrizione |
---|
Crea una scala a chiocciola. Versione macro: 00.04 Ultima modifica: 2019-07-24 Versione FreeCAD: All Download: ToolBar Icon Autore: Mario52 |
Autore |
Mario52 |
Download |
ToolBar Icon |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
00.04 |
Data ultima modifica |
2019-07-24 |
Versioni di FreeCAD |
All |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Descrizione
Crea una scala a chiocciola
Uso
Creare lo scalino modello, selezionare l'oggetto e avviare la macro
- Hmarche : alzata dello scalino
- nombre : numero di scalini per giro
- rayon : raggio (rispetto all'asse dello scalino)
- tours : numero di giri
- cloner : 1=crea cloni 0=crea copie
- cylindre : 1=crea cilindro 0=senza cilindro (piantone)
Script
Macro_Stairs.FCMacro
# Select your object(s) give : # head marche # number objects for 1 turn # radius (axe to object) # number turns # the original object is not modify # Macro_Stairs.FCMacro # #01/03/2015 import FreeCAD, Draft, Part __title__ = "CircularStair" __author__ = "Mario52" __date__ = "2019/07/24" __url__ = "http://www.freecadweb.org/index-fr.html" __wiki__ = "https://www.freecadweb.org/wiki/Macro_Stairs" __version__ = "00.04" sel = FreeCADGui.Selection.getSelection() ############## Modify here #################### Hmarche = 10 # head marche nombre = 18 # number objects for 1 turn rayon = 20 # radius (axe to object) tours = 5 # nomber turns pitch cloner = 1 # 1=clone 0=copy cylindre = 1 # 1=create cylinder 0=not cylinder ############################################### vecligne=[FreeCAD.Vector(0.0,0.0,0.0),FreeCAD.Vector(rayon,0.0,0.0)] # vector for line directrice ligne = Draft.makeWire(vecligne,closed=False,face=False,support=None) # creation de la ligne de base coor_X = coor_Y = coor_Z = 0.0 for i0 in range(tours): for i in range(0,360,(int(360/nombre))): # boucle principale 0 to 360 degrees FreeCAD.ActiveDocument.getObject(ligne.Name).Placement=App.Placement(App.Vector(0,0,coor_Z), App.Rotation(App.Vector(0,0,1),i), App.Vector(0,0,0)) try: a = ligne.Shape.Edges[0].Vertexes[1] # fin de la ligne coor_X = (a.Point.x) coor_Y = (a.Point.y) except Exception: a = ligne.End coor_X = (ligne.End.x) # fin de la ligne X coor_Y = (ligne.End.y) # fin de la ligne Y if cloner == 1: obj=Draft.clone(sel) else: obj = Draft.scale(sel,delta=App.Vector(1, 1, 1),center=App.Vector(),copy=True,legacy=True) try: for io in range(len(obj)): obj[io].Placement=App.Placement(App.Vector(coor_X,coor_Y,coor_Z), App.Rotation(i,0,0), App.Vector(0,0,0)) except Exception: obj.Placement=App.Placement(App.Vector(coor_X,coor_Y,coor_Z), App.Rotation(i,0,0), App.Vector(0,0,0)) coor_Z += Hmarche App.ActiveDocument.removeObject(ligne.Name) # remove ligne de base directrice # create cylinder if cylindre == 1: App.ActiveDocument.addObject("Part::Cylinder","Cylinder") App.ActiveDocument.ActiveObject.Label = "Cylindre" FreeCAD.ActiveDocument.ActiveObject.Height = (Hmarche * nombre * tours) # heigth of cylinder FreeCAD.ActiveDocument.ActiveObject.Radius = (rayon) # radius of cylinder FreeCAD.ActiveDocument.recompute()
Link
La discussione nel forum Newbie question - spiral stairs reloaded