| 213 | |
| 214 | |
| 215 | == Rebro s spremenljivo zaokrožitvijo == |
| 216 | [[Image(elbow7.png,right)]] |
| 217 | Ker si nismo točno zastavili velikost rebra, je le ta podan kar v enaki velikosti |
| 218 | kot zunanji radi. Za izdelavo rebra je potrebno podati črto `aWire` in ravnino, ki |
| 219 | seka model in iz katere je potem v smeri dveh vektorjev izvečeno. |
| 220 | {{{ |
| 221 | #!python |
| 222 | # Izdelamo navadno rebro |
| 223 | rib_thickness = 6.0 # polovica debeline rebra |
| 224 | rib1 = gp_Pnt(2*R,R,0) |
| 225 | rib2 = gp_Pnt(R,2*R,0) |
| 226 | aPlane = Geom_Plane(0,0,1.0,0.0) |
| 227 | edge1 = BRepBuilderAPI_MakeEdge(rib1, rib2).Edge() |
| 228 | aWire = BRepBuilderAPI_MakeWire(edge1) |
| 229 | rib = BRepFeat_MakeLinearForm( myShp4.Shape(), aWire.Wire(), aPlane.GetHandle(), \ |
| 230 | gp_Vec(0.,0.,rib_thickness), gp_Vec(0.,0.,-rib_thickness), 1, True ) |
| 231 | rib.Perform() |
| 232 | }}} |
| 233 | V vogal želimo dodati tudi zaokrožitev z naraščajočim radijem. |
| 234 | Poiščemo vse štiri robove na obeh debelinah rebra, ki imajo začetno in končno Z isto |
| 235 | in so vzporedni z osjo X ali Y ter jim dodamo spremenljivo debelino zaokrožitve. |
| 236 | Z nekaj sreče, ker je začetek in konec robov pravilno orientiran, lahko dodamo |
| 237 | vsem najdenim robovom še naraščajočo zaokrožitev. |
| 238 | [[Image(elbow8.png,right)]] |
| 239 | {{{ |
| 240 | #!python |
| 241 | TOL=1E-6 |
| 242 | with_fillet = BRepFilletAPI_MakeFillet(rib.Shape()) |
| 243 | topology_traverser = Topo(rib.Shape()) |
| 244 | for aEdge in topology_traverser.edges(): |
| 245 | first, last = TopExp().FirstVertex(aEdge), TopExp().LastVertex(aEdge) |
| 246 | first_vert, last_vert = BRep_Tool().Pnt(first), BRep_Tool().Pnt(last) |
| 247 | if abs(abs(first_vert.Z())-rib_thickness) < TOL and \ |
| 248 | abs(first_vert.Z() - last_vert.Z()) < TOL and \ |
| 249 | (abs(first_vert.X()-last_vert.X())<TOL or abs(first_vert.Y()-last_vert.Y())<TOL): |
| 250 | with_fillet.Add(25, 0.0, aEdge) |
| 251 | }}} |
| 252 | Končni program z dodanim rebrom je podan v priponki kot [attachment:elbow.py] |
| 253 | |