Macro Apothem Based Prism GUI/pl

Apothem Based Prism

Opis
To makro wyświetli dialog, w którym użytkownik poda odległość między środkami, liczbę boków oraz wysokość, a następnie utworzy pryzmat oparty na apotemie, czyli promieniu wpisanym w wielokąt. Jest to bardzo przydatne, gdy znana jest tylko odległość między płaszczyznami bocznymi. Przykładem może być sześciokątny pręt plastikowy lub metalowy oferowany przez dostawców. Większość dostawców określa takie pręty właśnie przez odległość między płaszczyznami. Jeśli korzystasz z takiego materiału w swoich projektach, to makro może znacząco przyspieszyć pracę.

Macro version: 1.0
Last modified: 2014-12-31
FreeCAD version: Wszystkie
Download: Ikona paska narzędzi
Autor: Quick61
Autor
Quick61
Do pobrania
Ikona paska narzędzi
Odnośniki
Wersja Makrodefinicji
1.0
Data zmian
2014-12-31
Wersja FreeCAD
Wszystkie
Domyślny skrót
Brak
Zobacz również
-

Opis

To makro wyświetli dialog, w którym użytkownik poda odległość między środkami, liczbę boków oraz wysokość, a następnie utworzy pryzmat oparty na apotemie, czyli promieniu wpisanym w wielokąt. Jest to bardzo przydatne, gdy znana jest tylko odległość między płaszczyznami bocznymi. Przykładem może być sześciokątny pręt plastikowy lub metalowy oferowany przez dostawców. Większość dostawców określa takie pręty właśnie przez odległość między płaszczyznami. Jeśli korzystasz z takiego materiału w swoich projektach, to makro może znacząco przyspieszyć pracę.

Jak używać

Skopiuj makro do katalogu makr FreeCAD. Następnie uruchom makro z okna dialogowego Uruchom makro lub stwórz skrót, aby używać go z własnego paska narzędzi.

Po uruchomieniu makra pojawi się okno dialogowe, jak pokazano poniżej. Najpierw wpisz żądaną odległość między płaszczyznami bocznymi. Może to być dowolna liczba, także z wartością dziesiętną, nie obsługuje jednak ułamków zwykłych. Następnie wpisz liczbę boków. Powinna to być liczba całkowita, najlepiej parzysta, aby uzyskać prawidłowy efekt. Na koniec wpisz wysokość pryzmatu, również dowolną liczbę z wartością dziesiętną. Kliknij OK, a pryzmat zostanie utworzony w dokumencie.

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

Dodatki

Ikona SVG do użycia jako skrót na własnym pasku narzędzi.

Podziękowania

Podziękowania dla dewelopera FreeCAD shoogen oraz programisty FreeCAD wandererfan za ich nieocenioną pomoc i wskazówki przy tworzeniu tego makra.