Macro Apothem Based Prism GUI/fr


Part Prism Apothem.png Apothem Based Prism

Description
A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.
Auteur
Quick61
Liens
Recettes macros
Comment installer une macro
Comment ajouter une barre d'outils
Version
1.0
Date dernière modification
2014-12-31


Part Prism Apothem.svgApothem Based Prism

Description

Cette macro présente à l'utilisateur une fenêtre de dialogue pour fournir la distance entre les centres, le nombre de côtés, et la hauteur permettra de créer un prisme sur la base du apothème ou in radius d'un polygone.

Utilisation

Copiez la macro dans votre répertoire des macros. lancez la macro ou créez un bouton raccourci dans une barre d'outils.

Lorsqu'elle est exécuté, le Macro présente à l'utilisateur une boîte de dialogue comme illustrée ci-dessous. Entrez d'abord la distance souhaitée entre les alvéoles. Cela peut être un nombre quelconque et peut inclure une valeur décimale, la macro ne reconnait pas les entrées fractionnaires. Ensuite, entrez le nombre de côtés. Ce nombre est un nombre entier et doit être un nombre pair pour des résultats corrects. Enfin entrez la hauteur que vous souhaitez donner au prisme. Encore une fois, cela peut être un nombre quelconque et peut inclure une valeur décimale. Cliquez sur OK et le prisme sera créé dans votre document.

ABP Screenshot.png

Script

# # # # # # # # # # #
#
# Apothem Based Prism
#
# This script will take the input of the distance between flats, (apothem, aka inradius), 
# and the number of sidesfor a regular polygon along with a height and produce a 
# correctly sized prism derived from the circumradius.
#
# # # # # # # # # # #
 
import FreeCAD, FreeCADGui, Part, PartGui, math
from FreeCAD import Base
from PySide import QtGui, QtCore
from math import cos, radians
App = FreeCAD
Gui = FreeCADGui
 
class p():
 
 
    def priSm(self):
 
        try:
            dbf = float(self.d1.text())
            nos = int(self.d2.text())
            hth = float(self.d3.text())
            aR = dbf / 2
            op1 = 180/float(nos)
            coS = cos(math.radians(op1))
            cR = aR / coS
            prism=App.ActiveDocument.addObject("Part::Prism","Prism")
            prism.Polygon=nos
            prism.Circumradius=cR
            prism.Height=hth
            prism.Placement=Base.Placement(Base.Vector(0.00,0.00,0.00),Base.Rotation(0.00,0.00,0.00,1.00))
            prism.Label='Prism'
            App.ActiveDocument.recompute()
            Gui.SendMsgToActiveView("ViewFit")
        except:
            FreeCAD.Console.PrintError("Unable to complete task")
 
            self.close()
 
    def close(self):
        self.dialog.hide()
 
 
#
# Make dialog box and get input for distance between flats, number of sides, and height
#
 
    def __init__(self):
        self.dialog = None
 
        self.dialog = QtGui.QDialog()
        self.dialog.resize(280,110)
 
        self.dialog.setWindowTitle("Apothem Based Prism")
        la = QtGui.QVBoxLayout(self.dialog)
 
        iN1 = QtGui.QLabel("Distance Between Flats")
        la.addWidget(iN1)
        self.d1 = QtGui.QLineEdit()
        la.addWidget(self.d1)
 
        iN2 = QtGui.QLabel("Number Of Sides (Best results - use even numbers)")
        la.addWidget(iN2)
        self.d2 = QtGui.QLineEdit()
        la.addWidget(self.d2)
 
        iN3 = QtGui.QLabel("Prism Height")
        la.addWidget(iN3)
        self.d3 = QtGui.QLineEdit()
        la.addWidget(self.d3)
 
        okbox = QtGui.QDialogButtonBox(self.dialog)
        okbox.setOrientation(QtCore.Qt.Horizontal)
        okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
        la.addWidget(okbox)
        QtCore.QObject.connect(okbox, QtCore.SIGNAL("accepted()"), self.priSm)
        QtCore.QObject.connect(okbox, QtCore.SIGNAL("rejected()"), self.close)
        QtCore.QMetaObject.connectSlotsByName(self.dialog)
        self.dialog.show()
        self.dialog.exec_()
 
p() 

Ajouts

Le fichier icône SVG pour utiliser dans votre barre d'outils.

Part Prism Apothem.svg

Remerciements

Remerciement à shoogen développeur et à wandererfan pour leur aide précieuse et les conseils dans la mise au point de cette macro.

Online version: "http://www.freecadweb.org/wiki/index.php?title=Macro_Apothem_Based_Prism_GUI/fr&oldid=240727"

Navigation menu