Basics of 3 Dimensional Geometry and the SDS/2 Model Presented by Bruce Vaughan 2:00-3:20 Thursday, September 17 Track 3 Basic Geometry Elements Point Exact location and no size

Line Extends infinitely in either direction, no width or height, one dimensional Plane Extends infinitely in two dimensions, no thickness SDS/2 Coordinates

3 Dimensional Cartesian Coordinate System Points are defined by X, Y, and Z coordinates with respect to an origin Lines are defined with two points. A line segment is the portion of a line between two points. Planes are defined with three non-collinear points.

Vectors A vector is an object that represents a direction and magnitude. Commonly represented by the difference between 2 point locations. A load on a steel structure is an example of a vector. Unit Vectors

Contains direction information only A unit vector multiplied by a scalar value produces a vector with magnitude equal to that scalar in the direction of the unit vector. Unit Vectors >>> from macrolib import Geom3D >>> from Point3D import Point3D >>> from point import *

>>> from member import * >>> mem = MemberLocate() >>> mem.left.location -195, -85.678511, 16 >>> mem.right.location -195, -11.5, 219.875 >>> v = mem.right.location - mem.left.location >>> v 0, 74.178511, 203.875

>>> uv = Geom3D.unitV(v) >>> uv Point3D(0, 0.34191463864218158, 0.93973101464311926) >>> Geom3D.mag(v) 216.95037922891734 >>> uv*Geom3D.mag(v) Point3D(0, 74.178510517339532, 203.875) Spherical Coordinates

Defined by radial coordinate (r), zenith angle (theta), azimuth angle (phi) Zenith angle, also known as the inclination angle, is with respect to the positive "Z" axis. Azimuth angle is the angle in plan Points can be converted from Cartesian coordinates to spherical coordinates and back to Cartesian coordinates.

Spherical Coordinates >>> pt = Point3D(120, 41, 212) >>> spt = Geom3D.pointToSPt3D(pt) >>> spt SPt3D(247.032387, 0.539069, 0.329232) >>> spt.toPoint3D() Point3D(119.99999999999999, 41, 212) >>> pt = Point3D(-120, -41, 212) >>> spt = Geom3D.pointToSPt3D(pt)

>>> spt SPt3D(247.032387, 0.539069, -2.812361) >>> spt.toPoint3D() Point3D(-119.99999999999999, -40.999999999999979, 212) Orthonormal Basis A set of vectors whose lengths are all 1 and are orthogonal to each other is called an orthonormal basis.

The standard basis for 3D space and the SDS/2 model is: (1,0,0), (0,1,0), (0,0,1) Vector Operations Addition >>> p1 = Point3D(1,2,3) >>> p2 = Point3D(4,5,6) >>> p1+p2

Point3D(5, 7, 9) Scalar Multiplication >>> p1*10 Point3D(10, 20, 30) Vector Operations Dot Product

Result is a scalar value. The dot product operation is commutative. The dot product of 2 unit vectors is the cosine of the angle between the vectors. Vector Operations Dot Product >>> p1 = Point3D(1,2,3) >>> p2 = Point3D(4,5,6) >>> dot_product(p1, p2)

32.0 >>> dot_product(unitV(p1), unitV(p2)) 0.9746318461970762 >>> degrees(acos(Geom3D.dot_product(unitV(p1), unitV(p2)))) 12.933154491899135 Vector Operations Cross Product

The result is a vector that is perpendicular to both. The calculation is non-communitive, that is cross_product(p1, p2) is not equal to cross_product(p2,p1). Vector Operations Cross Product >>> v1 = Point3D(1,0,0) >>> v2 = Point3D(0,1,0) >>> cross_product(v1,v2)

Point3D(0, 0, 1) >>> v3 = Point3D(100,0,0) >>> cross_product(v1,v3) Point3D(0, 0, 0) Member and Material Coordinates Every SDS/2 model object has its own defined orthonormal basis. Example member xform of a beam framing left

to right: ref_xform: ((1.0, 0.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0), (0.0, -1.0, 0.0, 0.0), (-6.0, 637.0, 794.75, 1.0)) Define a Plane From 3 Points >>> import Point3D >>> from macrolib.Geom3D import *

>>> from point import * >>> p1 = PointLocate("") >>> p2 = PointLocate("") >>> p3 = PointLocate("") >>> plane1 = Plane(p1,p2,p3) >>> plane1.transXYZToGlobal(10,0,0) Point3D(9.8480775301220795, 1.5133884835558331, 0.85148356328538122) >>> Point3D.Point3D(p1)+plane1.transXYZToGlobal(10,0,0) Point3D(739.84807753012205, 172.31121931185208, 709.43676950380836)

Line and Plane Operations After defining lines and planes, several calculations can be performed that relate to the SDS/2 model. Plane methods: onPlane(point, tolerance=EPS) -> boolean distPtPlane(point) -> signed float (distance from point to plane) angleBetweenPlanes(other) -> float in radians isParallel(other, tol=EPS) -> boolean

intersPlane(self, other, u1=1, u2=100) intersLinePlane(line, tol=EPS) -> Point or None isLineParallel(line, tol=EPS) -> boolean intersLineSegPlane(line, tol=EPS) -> Point or None inside(point, tolerance=EPS) -> boolean Line and Plane Operations Plane methods continued: transXYZToGlobal(self, X, Y, Z,

basePt=Point3D.Point3D()) transToGlobal(self, localPt) Line and Plane Operations Line methods: closestPtLine(self, pt): distPtLine(self, pt): ptNearSegment(self, pt, tol=EPS): ptOnSegment(self, pt, tol=EPS):

inters(self, other) isParallel(self, other) angle(self, other) Line and Plane Operations Other operations: Rotate a point about an arbitrary axis Three point construction circle (intersection of 3 planes)

Determine if a point is inside a Box. The box is defined with 6 planes. Solving Hip And Valley Roof Geometry

A roof composed of a series of intersecting planes that form a ridge and slope down to the eave on all sides is a hip or hipped roof. A valley is formed where two rectangular hipped roof areas intersect. The detailer needs the following information to prepare shop drawings for a hipped roof: 1. Ridge work point elevation at bottom of deck or elevation at top of roof and roof thickness dimension 2. Roof slope

3. Locating dimensions of ridge lines 4. Eave work point elevation at bottom of deck or elevation at top of roof and roof thickness dimension 5. Locating dimensions of eave lines The plan bevel of the hip beam is a function of the adjacent roof slopes and angle between the directions of the roof slopes. Solving Hip And Valley Roof Geometry Preparation of geometry plans can sometimes

be helpful on complicated hipped roofs. Solving Hip And Valley Roof Geometry Five Forks Library Partial Geometry Plan Solving Hip And Valley Roof Geometry Five Forks Library Sample Hip and Valley Details

The angle between the roof plane and rafter flange plane is L10. Solving Hip And Valley Roof Geometry

The roof beam that frames along a hip line is known as a hip rafter or hip beam. Roof beams framing perpendicular to the roof slope are also known as purlins. The geometry of the roof beams is straightforward for a framing member whose web is vertical, which is the case when sloping parallel to the roof. This member supports the purlins and will be referred to as the truss. The geometry presented on the following slides is based on the

book Hip and Valley Design by H. L. McKibben and L. E. Gray. McKibben and Gray were engineers with American Bridge Company. The book was originally published in 1912. Solving Hip And Valley Roof Geometry A = Roof slope B = Angle between hip line and truss R = Slope of rafter = atan(tan(A) * cos(B))

Solving Hip And Valley Roof Geometry L1 = Angle on PURLIN WEB PLANE made by intersection of RAFTER WEB PLANE L1 = atan(sin(A) * tan(B)) Solving Hip And Valley Roof Geometry

L2 = Angle on ROOF PLANE made by intersection of RAFTER WEB PLANE L2 = atan(cos(A) * tan(B)) Solving Hip And Valley Roof Geometry L3 = Angle on RAFTER WEB PLANE made by intersection of PURLIN WEB PLANE L3 = atan(sin(A) * cos(A) * sin(B) * tan(B))

Solving Hip And Valley Roof Geometry L4 = Angle on RAFTER FLANGE PLANE made by intersection of PURLIN WEB PLANE L4 = atan(cos(A) * tan(B) / cos(R)) Solving Hip And Valley Roof Geometry

L5 = Complement of angle between PURLIN WEB PLANE and RAFTER WEB PLANE L5 = atan(cos(L3) * tan(L4)) Solving Hip And Valley Roof Geometry L6 = Complement of angle between PURLIN WEB PLANE and RAFTER FLANGE PLANE L6 = atan(tan(L3) * cos(L4))

Solving Hip And Valley Roof Geometry L6 = Complement of angle between PURLIN WEB PLANE and RAFTER FLANGE PLANE L6 = atan(tan(L3) * cos(L4)) Solving Hip And Valley Roof Geometry

L7 = Angle on PURLIN WEB PLANE made by RAFTER FLANGE PLANE L7 = atan(tan(B) * sin(R) * cos(L2)) Solving Hip And Valley Roof Geometry L8 = Angle between PURLIN WEB PLANE and a plane perpendicular to both RAFTER FLANGE PLANE and RAFTER WEB PLANE

L8 = atan(tan(B) * cos(A)) Solving Hip And Valley Roof Geometry L9 = Bevel on a plane perpendicular to both RAFTER WEB PLANE and RAFTER FLANGE PLANE made by intersection of PURLIN WEB PLANE L9 = atan(tan(B) * sin(R))

Solving Hip And Valley Roof Geometry L10 = Angle between ROOF PLANE and RAFTER FLANGE PLANE L10 = atan(tan(B) * sin(R)) Vert Rafter Drop Dist = (bf/2 * tan(L10) + thk / cos(L10)) / cos(R) where thk is the hip plate thickness Solving Hip And Valley Roof Geometry

Vertical Rafter Drop Distance = (bf/2 * tan(L10) + brg / cos(L10)) / cos(R) where brg is the joist bearing depth Solving Hip And Valley Roof Geometry Ironstone Bank Hip And Valley Roof Solving Hip And Valley Roof Geometry

Caldwell County Hospital Solving Hip And Valley Roof Geometry Woodland Park Baptist Church hiproof.exe