Macro Apothem Based Prism GUI/de

Apothem-basierte Prisma-GUI

Beschreibung
Dieses Makro zeigt dem Benutzer ein Dialogfeld an, in dem er den Abstand zwischen den Mittelpunkten, die Anzahl der Seiten und die Höhe eingeben kann, und erstellt dann ein Prisma basierend auf der Apothem oder dem Inradius eines Polygons. Dies kann äußerst praktisch sein, wenn man nur den Abstand zwischen den Flächen kennt. Ein Beispiel hierfür wären sechseckige Kunststoff- oder Metallprofile, die von Anbietern bereitgestellt werden. Die meisten Anbieter definieren solche Materialien anhand des Abstands zwischen den Flächen. Wenn man solche Materialien in seinen Projekten verwendet, kann dieses Makro eine echte Zeitersparnis sein.

Versionsmakro : 1.0
Datum der letzten Änderung : 2014-12-31
FreeCAD version : Alle
Herunterladen : Werkzeugleisten-Symbol
Autor: Quick61
Autor
Quick61
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
1.0
Datum der letzten Änderung
2014-12-31
FreeCAD-Version(s)
Alle
Standardverknüpfung
None
Siehe auch
None

Beschreibung

Dieses Makro zeigt dem Benutzer ein Dialogfeld an, in dem er den Abstand zwischen den Mittelpunkten, die Anzahl der Seiten und die Höhe eingeben kann, und erstellt dann ein Prisma basierend auf der Apothème oder dem Innenradius eines Polygons. Dies kann äußerst praktisch sein, wenn man nur den Abstand zwischen den Flächen kennt. Ein Beispiel hierfür wären sechseckige Kunststoff- oder Metallprofile, die von Anbietern bereitgestellt werden. Die meisten Anbieter definieren solche Materialien anhand des Abstands zwischen den Flächen. Wenn man solche Materialien in seinen Projekten verwendet, kann dieses Makro eine echte Zeitersparnis sein.

Anwendung

Kopiere das Makro in das FreeCAD-Makroverzeichnis. Führe das Makro dann entweder über den Dialog „Makro ausführen“ aus oder erstelle eine Verknüpfung, die über die benutzerdefinierte Symbolleiste verwendet werden kann.

Wenn das Makro ausgeführt wird, wird dem Benutzer ein Dialogfeld wie das unten abgebildete angezeigt. Geben Sie zunächst den gewünschten Abstand zwischen den Flächen ein. Dies kann eine beliebige Zahl sein, auch mit Dezimalstellen, jedoch keine Bruchzahlen. Geben Sie als Nächstes die Anzahl der Seiten ein. Diese Zahl muss eine ganze Zahl und für korrekte Ergebnisse auch eine gerade Zahl sein. Geben Sie zuletzt die gewünschte Höhe des Prismas ein. Auch hier kann es sich um eine beliebige Zahl handeln, die auch Dezimalstellen enthalten kann. Klicken Sie auf „OK“, um das Prisma in Ihrem Dokument zu erstellen.

Das Makro

ToolBar Icon

Macro_Apothem_Based_Prism_GUI.FCMacro

# # # # # # # # # # #
#
# 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()

SVG-Symbol zur Verwendung in benutzerdefinierten Symbolleisten-Verknüpfungen.

Danksagungen

Ein Dank a die FreeCAD-Hauptentwickler shoogen und FreeCAD-Programmierer wandererfan für ihre unschätzbare Hilfe und Beratung bei der Erstellung dieses Makros.