Macro Rectellipse/it: Difference between revisions
Renatorivo (talk | contribs) No edit summary |
(Updating to match new version of source page) |
||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
⚫ | |||
{{Macro/it |
|||
|Name=Rectellipse Macro |
|||
|Icon=Macro_Rectellipse.png |
|||
|Translate=Rectellipse |
|||
⚫ | |||
|Author=fcaponi78 |
|||
|Version=1.0 |
|||
|Date=2013-12-24 |
|||
|FCVersion=Tutte versione |
|||
|Download=[https://www.freecadweb.org/wiki/images/b/bf/Macro_Rectellipse.png Icona per la ToolBar] |
|||
}} |
|||
==Descrizione== |
|||
Crea un rettangolo con i bordi arrotondati parametrico |
|||
Crea una rectellipse parametrica |
|||
[[File:Rectellipse.png]] |
[[File:Rectellipse.png]] |
||
{{clear}} |
|||
==Script== |
|||
⚫ | |||
ToolBar Icon [[Image:Macro_Rectellipse.png]] |
|||
'''Macro_Rectellipse.FCMacro''' |
|||
⚫ | |||
from __future__ import division # allows floating point division from integers |
from __future__ import division # allows floating point division from integers |
||
import FreeCAD, Part, math |
import FreeCAD, Part, math |
||
Line 68: | Line 86: | ||
}} |
}} |
||
==Link== |
|||
⚫ | |||
⚫ | |||
⚫ |
Latest revision as of 11:13, 23 May 2020
Descrizione |
---|
Crea un rettangolo parametrico con i vertici arrotondati Versione macro: 1.0 Ultima modifica: 2013-12-24 Versione FreeCAD: Tutte versione Download: Icona per la ToolBar Autore: fcaponi78 |
Autore |
fcaponi78 |
Download |
Icona per la ToolBar |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
1.0 |
Data ultima modifica |
2013-12-24 |
Versioni di FreeCAD |
Tutte versione |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Descrizione
Crea una rectellipse parametrica
Script
Macro_Rectellipse.FCMacro
from __future__ import division # allows floating point division from integers import FreeCAD, Part, math from FreeCAD import Base class RectEllipseShape: def __init__(self, obj): ''' Add the properties: Radius, Eccentricity, Height, Segments (see Property View) ''' obj.addProperty("App::PropertyLength","a","Rectellipse","A - horizontal radius").a = 16.0 obj.addProperty("App::PropertyLength","b","Rectellipse","B - vertical radius").b = 9.0 obj.addProperty("App::PropertyFloat","n","Rectellipse","N ").n=0.2 obj.addProperty("App::PropertyBool","createFace","Rectellipse","Wheter to create a face or not").createFace=True obj.Proxy = self def onChanged(self, fp, prop): if prop == "a" or prop == "b" or prop == "n" or prop == "segments" or prop == "height" or prop == "createFace": #if one of these is changed self.execute(fp) def execute(self, fp): r1=fp.a r2=fp.b s=fp.n z=0.0 p=1.0 ####w=2**0.5/2.0 #Ellipse w=2**0.5/2.0/(1-s**p) curve=Part.BSplineCurve() curve.setPeriodic() curve.increaseDegree(2) #quadratic curve.insertKnots([i*1.0/(4) for i in (1,2,3)],[2]*(3)) #5Knots 8 Poles curve.setPole(1,FreeCAD.Vector(0,-r2,z),1) curve.setPole(2,FreeCAD.Vector(-r1,-r2,z),w) curve.setPole(3,FreeCAD.Vector(-r1,0,z),1) curve.setPole(4,FreeCAD.Vector(-r1,r2,z),w) curve.setPole(5,FreeCAD.Vector(0,r2,z),1) curve.setPole(6,FreeCAD.Vector(r1,r2,z),w) curve.setPole(7,FreeCAD.Vector(r1,0,z),1) curve.setPole(8,FreeCAD.Vector(r1,-r2,z),w) if fp.createFace == True: fp.Shape = Part.Face(Part.Wire(curve.toShape())) else: fp.Shape = curve.toShape() def makeRectellipseBlock(): doc = FreeCAD.activeDocument() if doc == None: doc = FreeCAD.newDocument() obj=doc.addObject("Part::FeaturePython","RectEllipseShape") #add object to document obj.Label = "RectEllipsse" RectEllipseShape(obj) obj.ViewObject.Proxy=0 viewObject = Gui.ActiveDocument.getObject(obj.Name) viewObject.ShapeColor = (0.00,0.33,1.00) viewObject.DisplayMode = "Flat Lines" obj.Shape.check() if __name__ == "__main__": #feature will be generated after macro execution makeRectellipseBlock()