1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
'''
Created on 24-Aug-2015
@author: deepa
'''
import svgwrite
from svgwrite import mm
from PyQt4.QtCore import QString
import numpy as np
class Fin2DCreatorFront(object):
def __init__(self, inputObj,ouputObj,dictBeamdata,dictColumndata):
beam_T = float(dictBeamdata[QString("T")])
D = int (dictBeamdata[QString("D")])
col_B = int(dictColumndata[QString("B")])
col_tw = float(dictColumndata[QString("tw")])
col_R1 = float(dictColumndata[QString("R1")])
plate_ht= ouputObj['Plate']['height']
plate_width = ouputObj['Plate']['width']
weld_len = ouputObj['Plate']['height']
weld_thick = ouputObj['Weld']['thickness']
self.bolt_dia = inputObj["Bolt"]["Diameter (mm)"]
self.pitch = ouputObj['Bolt']["pitch"]
self.gauge = ouputObj['Bolt']["gauge"]
self.end_dist = ouputObj['Bolt']["enddist"]
self.edge_dist = ouputObj['Bolt']["edge"]
self.no_of_rows = ouputObj['Bolt']["numofrow"]
self.no_of_col = ouputObj['Bolt']["numofcol"]
self.col_L = 1000
self.beam_L = 500
self.A2 =(col_B,(self.col_L-D)/2)
self.B = (col_B,0)
self.A = (0,0)
self.D = (0,self.col_L)
self.C = (col_B,self.col_L)
self.B2 = (col_B,(D + self.col_L)/2)
ptEx = (col_B-col_tw)/2
ptEy = 0.0
self.E = (ptEx,ptEy)
ptHx = (col_B-col_tw)/2
ptHy = self.col_L
self.H = (ptHx,ptHy)
ptFx = (col_B + col_tw)/2
ptFy = 0
self.F = (ptFx,ptFy)
ptGx = (col_B + col_tw)/2
ptGy = self.col_L
self.G = (ptGx,ptGy)
#Draw rectangle for finPlate PRSU
ptPx = (col_B + col_tw)/2
ptPy = ((self.col_L - D)/2) + (beam_T + col_R1 + 3)
self.P = (ptPx,ptPy)
self.ptP = np.array([ptPx,ptPy])
self.plate_ht = plate_ht
self.plate_width = plate_width
self.weld_thick = weld_thick
self.weld_len = weld_len
# Draw Rectangle for weld
ptCx1 = ((col_B + col_tw)/2 + 20)
ptCy1 = ((self.col_L - D)/2) + (beam_T + col_R1 + 3)
self.C1 =(ptCx1,ptCy1)
ptAx1 = ptCx1
ptAy1 = ((self.col_L - D)/2)
self.A1 = (ptAx1,ptAy1)
ptAx3 = ptCx1 + self.beam_L
ptAy3 = ptAy1
self.A3 = (ptAx3,ptAy3)
ptBx3 = ptAx3
ptBy3 = ((self.col_L + D)/2 )
self.B3 = (ptBx3,ptBy3)
ptBx1 = ptCx1
ptBy1 = ptBy3
self.B1 = (ptBx1,ptBy1)
ptC2x= ptCx1
ptC2y = ptCy1 + plate_ht
self.C2 = (ptC2x,ptC2y)
ptAx5 = ptAx1
ptAy5 = ptAy1 + beam_T
self.A5 = ptAx5,ptAy5
ptAx4 = ptAx3
ptAy4 = ptAy3 + beam_T
self.A4 = (ptAx4,ptAy4)
ptBx4 = ptBx3
ptBy4 = ptBy3 - beam_T
self.B4 = (ptBx4,ptBy4)
ptBx5 = ((col_B + col_tw)/2) + 20
ptBy5 = ptBy3 - beam_T
self.B5 = (ptBx5,ptBy5)
ptP1x = ((col_B + col_tw)/2 + self.edge_dist)
ptP1y = ((self.col_L - D)/2 +(col_tw + col_R1 + 3)+ self.end_dist)
self.P1 = (ptP1x,ptP1y)
ptP2x = ptP1x
ptP2y = ptP1y + self.pitch
self.P2 = (ptP1x,ptP1y)
ptP3x = ptP1x
ptP3y = ptP2y + self.pitch
self.P3 = (ptP1x,ptP1y)
# points for diamension
def saveToSvg(self):
dwg = svgwrite.Drawing('finfront.svg', profile='tiny')
dwg.add(dwg.polyline(points=[(self.A2),(self.B),(self.A),(self.D),(self.C) ,(self.B2)], stroke='blue', fill='none', stroke_width=2.5))
dwg.add(dwg.line((self.E),(self.H)).stroke('blue',width = 2.5,linecap = 'square'))
dwg.add(dwg.line((self.F),(self.G)).stroke('blue',width = 2.5,linecap = 'square'))
dwg.add(dwg.rect(insert=(self.P), size=(self.plate_width, self.plate_ht),fill = 'none', stroke='blue', stroke_width=2.5))
dwg.add(dwg.rect(insert=(self.P), size=(self.weld_thick, self.plate_ht),fill = 'none', stroke='blue', stroke_width=2.0))
#C1,A1,A3,B3,B1,C2
dwg.add(dwg.polyline(points=[(self.C1),(self.A1),(self.A3),(self.B3),(self.B1),(self.C2)],stroke = 'blue',fill= 'none',stroke_width =2.5))
#C1,C2
dwg.add(dwg.line((self.C1),(self.C2)).stroke('red',width = 2.5,linecap = 'square').dasharray(dasharray = ([5,5])))
#A2,B2
dwg.add(dwg.line((self.A2),(self.B2)).stroke('red',width = 2.5,linecap = 'square').dasharray(dasharray = ([5,5])))
dwg.add(dwg.line((self.A5),(self.A4)).stroke('blue',width = 2.5,linecap = 'square'))
dwg.add(dwg.line((self.B5),(self.B4)).stroke('blue',width = 2.5,linecap = 'square'))
nr = self.no_of_rows
nc = self.no_of_col
bolt_r = self.bolt_dia/2
for i in range(1,(nr+1)):
for j in range (1,(nc+1)):
pt = self.ptP + self.edge_dist * np.array([1,0]) + self.end_dist * np.array ([0,1]) + \
(i-1) * self.pitch * np.array([0,1]) + (j-1) * self.gauge * np.array([1,0])
dwg.add(dwg.circle(center=(pt), r = bolt_r, stroke='blue',fill ='black',stroke_width=1.5))
ptA = pt - (bolt_r + 4) * np.array([0,1])
ptB = pt + (bolt_r + 4) * np.array([0,1])
#dwg.add(dwg.line((ptA),(ptB)).stroke('blue',width = 2.0,linecap = 'square'))
ptC = pt - (bolt_r + 4) * np.array([1,0])
PtD = pt + (bolt_r + 4) * np.array([1,0])
dwg.add(dwg.line((ptC),(PtD)).stroke('blue',width = 2.0,linecap = 'square'))
ptE = self.ptP + self.edge_dist * np.array([1,0]) +(j-1) * self.gauge * np.array([1,0])
ptF = ptE + self.plate_ht * np.array([0,1])
dwg.add(dwg.line((ptE),(ptF)).stroke('blue',width = 1.5,linecap = 'square').dasharray(dasharray = ([20, 5, 1, 5])))
dwg.save()
print"Saved"
|