Rebar Addon for FreeCAD
Classes | Functions | Variables
RebarDistribution Namespace Reference

Classes

class  _RebarDistributionDialog
 

Functions

def getCustomSpacingString (amount1, spacing1, amount2, spacing2, amount3, spacing3, frontCover, size)
 
def getupleOfCustomSpacing (span_string)
 
def runRebarDistribution (self)
 
def removeRebarDistribution (self)
 

Variables

string __title__ = "DialogDistribution"
 
string __author__ = "Amritpal Singh"
 
string __url__ = "https://www.freecadweb.org"
 
 CustomSpacing
 

Function Documentation

def RebarDistribution.getCustomSpacingString (   amount1,
  spacing1,
  amount2,
  spacing2,
  amount3,
  spacing3,
  frontCover,
  size 
)

Definition at line 63 of file RebarDistribution.py.

63 def getCustomSpacingString(amount1, spacing1, amount2, spacing2, amount3, spacing3, frontCover, size):
64  seg1_area = amount1 * spacing1 - spacing1 / 2
65  seg3_area = amount3 * spacing3 - spacing3 / 2
66  seg2_area = size - seg1_area - seg3_area - 2 * frontCover
67  if seg2_area < 0:
68  FreeCAD.Console.PrintError("Sum of length of segment 1 and segment 2 is greater than length of rebar expands.\n")
69  return
70  if spacing1 and spacing2 and spacing3 and amount1 and amount2 and amount3:
71  pass
72  else:
73  if spacing1 and spacing2 and spacing3:
74  amount2 = math.ceil(seg2_area / spacing2)
75  spacing2 = seg2_area / amount2
76  elif amount1 and amount2 and amount3:
77  spacing2 = math.floor(seg2_area / amount2)
78  CustomSpacing = str(amount1) + "@" + str(spacing1) + "+" + str(int(amount2)) + "@" + str(spacing2) + "+" + str(amount3) + "@" + str(spacing3)
79  return CustomSpacing
80 
def getCustomSpacingString(amount1, spacing1, amount2, spacing2, amount3, spacing3, frontCover, size)
def RebarDistribution.getupleOfCustomSpacing (   span_string)
gettupleOfCustomSpacing(span_string): This function take input
in specific syntax and return output in the form of list. For eg.
Input: "3@100+2@200+3@100"
Output: [(3, 100), (2, 200), (3, 100)]

Definition at line 81 of file RebarDistribution.py.

81 def getupleOfCustomSpacing(span_string):
82  """ gettupleOfCustomSpacing(span_string): This function take input
83  in specific syntax and return output in the form of list. For eg.
84  Input: "3@100+2@200+3@100"
85  Output: [(3, 100), (2, 200), (3, 100)]"""
86  import string
87  span_st = string.strip(span_string)
88  span_sp = string.split(span_st, '+')
89  index = 0
90  spacinglist = []
91  while index < len(span_sp):
92  # Find "@" recursively in span_sp array.
93  in_sp = string.split(span_sp[index], '@')
94  spacinglist.append((int(in_sp[0]),float(in_sp[1])))
95  index += 1
96  return spacinglist
97 
def getupleOfCustomSpacing(span_string)
def RebarDistribution.removeRebarDistribution (   self)

Definition at line 108 of file RebarDistribution.py.

109  self.CustomSpacing = ""
110  self.Rebar.CustomSpacing = ""
111  FreeCAD.ActiveDocument.recompute()
112 
113 #runRebarDistribution(App.ActiveDocument.Rebar)
114 
def removeRebarDistribution(self)
def RebarDistribution.runRebarDistribution (   self)

Definition at line 98 of file RebarDistribution.py.

99  frontCover = self.form.frontCover.text()
100  frontCover = FreeCAD.Units.Quantity(frontCover).Value
101  face = self.SelectedObj.Shape.Faces[getFaceNumber(self.FaceName) - 1]
102  size = (ArchCommands.projectToVector(self.SelectedObj.Shape.copy(), face.normalAt(0, 0))).Length
103  dialog = _RebarDistributionDialog(frontCover, size)
104  dialog.setupUi()
105  dialog.form.exec_()
106  self.CustomSpacing = dialog.CustomSpacing
107 
def getFaceNumber(s)
Definition: Rebarfunc.py:72
def runRebarDistribution(self)

Here is the call graph for this function:

Variable Documentation

string RebarDistribution.__author__ = "Amritpal Singh"
private

Definition at line 25 of file RebarDistribution.py.

string RebarDistribution.__title__ = "DialogDistribution"
private

Definition at line 24 of file RebarDistribution.py.

string RebarDistribution.__url__ = "https://www.freecadweb.org"
private

Definition at line 26 of file RebarDistribution.py.

RebarDistribution.CustomSpacing

Definition at line 106 of file RebarDistribution.py.