AU700387B2 - Methods and apparatus for orienting power saws in a sawing system - Google Patents
Methods and apparatus for orienting power saws in a sawing system Download PDFInfo
- Publication number
- AU700387B2 AU700387B2 AU55251/96A AU5525196A AU700387B2 AU 700387 B2 AU700387 B2 AU 700387B2 AU 55251/96 A AU55251/96 A AU 55251/96A AU 5525196 A AU5525196 A AU 5525196A AU 700387 B2 AU700387 B2 AU 700387B2
- Authority
- AU
- Australia
- Prior art keywords
- board
- saw
- power
- power saw
- pivot axis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B27—WORKING OR PRESERVING WOOD OR SIMILAR MATERIAL; NAILING OR STAPLING MACHINES IN GENERAL
- B27B—SAWS FOR WOOD OR SIMILAR MATERIAL; COMPONENTS OR ACCESSORIES THEREFOR
- B27B5/00—Sawing machines working with circular or cylindrical saw blades; Components or equipment therefor
- B27B5/16—Saw benches
- B27B5/22—Saw benches with non-feedable circular saw blade
- B27B5/24—Saw benches with non-feedable circular saw blade the saw blade being adjustable according to depth or angle of cut
- B27B5/246—End cutting of automatically laterally-fed travelling workpieces
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23D—PLANING; SLOTTING; SHEARING; BROACHING; SAWING; FILING; SCRAPING; LIKE OPERATIONS FOR WORKING METAL BY REMOVING MATERIAL, NOT OTHERWISE PROVIDED FOR
- B23D59/00—Accessories specially designed for sawing machines or sawing devices
- B23D59/008—Accessories specially designed for sawing machines or sawing devices comprising computers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B27—WORKING OR PRESERVING WOOD OR SIMILAR MATERIAL; NAILING OR STAPLING MACHINES IN GENERAL
- B27B—SAWS FOR WOOD OR SIMILAR MATERIAL; COMPONENTS OR ACCESSORIES THEREFOR
- B27B25/00—Feeding devices for timber in saw mills or sawing machines; Feeding devices for trees
- B27B25/04—Feeding devices for timber in saw mills or sawing machines; Feeding devices for trees with feed chains or belts
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Wood Science & Technology (AREA)
- Forests & Forestry (AREA)
- Sawing (AREA)
- Heat Treatment Of Articles (AREA)
- Mechanical Treatment Of Semiconductor (AREA)
- Treatment Of Fiber Materials (AREA)
Description
METHODS AND APPARATUS FOR ORIENTING POWER SAWS IN A SAWING SYSTEM Reference to an Appendix An appendix commencing at page 40 of the description and having a total of 44 pages of computer program code constitutes part of this specification.
Technical Field of the Invention The present invention relates in general to automated sawing systems, and more particularly to techniques for orienting a number of power saws through which wood stock is moved to cut various angles therein.
Background of the Invention 15 Automated sawing machines and systems are well known and readily :.;..available for a host of different applications. For example, there are many 2."!.types of computer-controlled sawing systems to which lumber is fed so that it is i cut in prescribed lengths and at various angles, according to a cut list entered into the computer. In many prefabricated wood structures, various components thereof are cut and pre-assembled, using automated sawing machines to cut the lumber to various lengths and at various angles at the ends of the pieces. As one example, the web and chord components of wooden trusses are often cut and pre-assembled at a factory and then ."transported to the construction site of rebuilding floors, roof structures, and the 25 like.
Automated sawing systems for cutting the outer chord pieces and the inner web pieces of trusses are highly developed and automated to provide accurate, high speed cutting operations. One such cutting system is known as the "Automaster" saw, model 341, obtainable from Alpine Engineered Products, Inc., Grand Prairie, Texas. In such type of saw, the system is .A computer controlled to move a number of individual saws and simultaneously cut both ends of a board to desired angles in a single pass through the system.
A board is manually loaded on a frontal chain-type material conveyor which
I
transports the board to the cutting area of the system. The board is fed by the material conveyor between a pair of left-hand mounted saws and a pair of right-hand mounted saws, so that the ends of the board can be cut substantially simultaneously. The right-hand set of saws are mounted on a track and can be moved to accommodate different lengths of boards. Further, each of the individual saws can be moved at different angular orientations with respect to the material conveyor so as to saw each end of the board at desired angles as the board moves through the sawing system.
In such type of system, each circular saw blade is mounted directly to an lo electric motor, and the motor is rigidly fixed to the planar face of a large geardriven sprocket wheel. The large sprocket wheel is not circular, but is Cshaped with a portion of the middle removed so that the end of a board to be cut can be moved through the saw blade without interference by the sprocket wheel. The inside curved surface of the C-shaped wheel is mounted on 15 bearings so that the wheel and the power saw mounted thereto can be rotated about an axis that passes parallel to and extends through the plane of the front face of the saw blade. In this manner, the saw can be angled to different S. positions and be able to cut through a single point on the board without any corrective horizontal movements of the saw. Importantly, this saw's pivot axis is not physically embodied by a shaft, but rather is in the geometric center of the C-shaped sprocket wheel.
The angular orientation of the saw blade about a pivot axis can be oriented to different positions by turning the sprocket wheel with a gear-driven mechanism. The large sprocket wheel is mounted for rotation with respect to a 25 complicated bearing arrangement that requires lubrication frequently to prevent galling or wear to the curved bearing surfaces. Any wear in the gear or bearing surfaces leads to inaccuracy in the precise angular positioning of the saw blade, as well as slight play or wobble of the saw blade during actual sawing.
Further, the entire C-shaped sprocket wheel and saw motor can be moved vertically by way of an electric screw-driven arrangement. In like manner, the entire set of right-hand mounted saws can be moved horizontally by a gear -driven assembly. Only the right-hand set of power saws needs to be moved -2horizontally, toward or away from the left-hand set of power saws to accommodate different lengths of boards.
With regard to the sprocket wheel arrangement for angling each saw blade, the motor and saw blade are fixed to the sprocket wheel such that when moved through an arc of angles, an axis of pivotal movement is parallel to and extends through the plane of the front face of the saw blade. In this manner, to change the saw cut from a thirty degree angle to a forty-five degree angle, only the sprocket wheel and attached saw require angular movement, without a corresponding vertical adjustment of the respective electric screwmechanisms.
As further noted in connection with the Automaster saw system identified above, the in-feed chain conveyor is constructed such that an operator places a board on an upwardly-angled portion of the conveyor where such board is carried to a knee point, at which point the conveyor is oriented :I s15 horizontally to carry the board laterally into the sawing system. A chain-driven hold-down assembly holds the board to the material conveyor horizontal 'movement of the board into the sawing system. With this type of structure, while it is convenient for the operator to load the lumber on the conveyor *without having to lift it shoulder high, when the board is carried over the transition knee point to the horizontal part of the conveyor, the board often tumbles or is rolled before it is clamped and thus becomes misaligned with respect to the left-hand set of saws and the right-hand set of saws.
The in-feed chain conveyor of the Automaster saw has two sets of parallel feed chains for carrying the board into the sawing system. One chain 25 conveyor can be horizontally moved along the frame with the one set of power saws, toward or away from the other set of power saws, to accommodate different lengths of boards. In order to acccmmodate short boards, about two feet and shorter, the pair of parallel chain conveyors must be moved together, adjacent each other, so as to be able to move the short board between the left-hand set of saws and the right-hand set of saws. In practice, it has been found that because of the drive bearing arrangement at the rear of the conveyors and the chain-tensioning linkage at the frontal part of each chain -3conveyor, such conveyors cannot be moved as close to each other as would be needed to cut very short pieces of wood.
As noted above, one set of power saws is movable horizontally along the frame, as is the corresponding hold-down mechanism and chain conveyor.
The power drive for the hold-down mechanism and the movable chain conveyor is a long square drive shaft that extends essentially the length of the saw system. Various in-feed conveyors are driven by the drive shaft using a square tubular member through which the drive shaft extends to rotate the tubular member. The tubular member transfers the torque to the conveyor drive gears. The metal-to-metal driving engagement between the square shaft and square tubular member causes wear, thus requiring eventual replacement.
To replace the worn parts, the procedure is time consuming, as much of the infeed conveyors require disassembly and then corresponding assembly using new, and often expensive parts.
In view of the foregoing, it can be seen that a need exists for further ,,improvements in automated sawing systems to reduce costs, maintenance, increase the speed of operation, and generally provide an overall improvement with respect to accuracy and efficiency.
Summary of the Invention According to one aspect of the present invention there is provided a sawing system including: a material conveyor for moving lengths of wood stock, the conveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third power saw and a fourth power saw supported on the opposite side of the material conveyor, wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, and wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor.
According to another aspect, the present invention provides a sawing system including: a material conveyor for moving lengths of wood stock, the conveyor Ssystem defining an x-reference that is a bottom plane of the lengths of wood o stock moved on the material conveyor; and a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third
*S
power saw and a fourth power saw supported on the opposite side of the material conveyor, wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, and wherein at least one of the first and third power saws for making top angled cuts is supported for vertical movement of its pivot axis, whereby the vertical position of at least one power saw is adjustable to accommodate making top cuts on a large range of wood stock dimensions.
According to yet another aspect, the invention provides a sawing system including: I. a material conveyor for moving lengths of wood stock, the conveyor S.system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third power saw and a fourth power saw supported on the opposite side of the material conveyor 0. wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a .***opivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the frame is for additionally supporting a fifth power saw on one side of the material conveyor, -6wherein the fifth power saw is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, and wherein at least the fifth power saw is supported for horizontal movement of its pivot axis relative to the material conveyor, whereby the sawing system is capable of making scissor cuts.
According to a further aspect, the invention provides a sawing system including: ii. a frame; a fixed power saw carriage supported on the frame; a movable power saw carriage supported on the frame for 00 horizontal movement relative to the fixed power saw carriage; a material conveyor for moving lengths of wood stock between the fixed power saw carriage and the movable power saw carriage, the S.conveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and at least a first power saw and a second power saw supported on the movable power saw carriage, and at least a third power saw and a fourth power saw supported on the fixed power saw carriage, wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor between the fixed power saw carriage and the movable power saw carriage, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts and the second power saw is supported such that its pivot axis is located below the x-reference for making bottom angled cuts, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts and the -7
I
fourth power saw is supported such that its pivot axis is located below the x-reference for making bottom angled cuts, wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the movable power saw carriage, and wherein at least one of the third and fourth power saws is supported for horizontal movemrnent relative to the fixed power saw carriage.
In accordance with the preferred embodiment of invention, two of the four power saws are mounted to respective suspension beams by linear bearings for horizontal movement. However, all four saws can be positioned to different angular positions to cut respective angles in the truss boards. The suspension beam is oriented horizontally so that the power saw can be moved in fine increments in a horizontal direction, and maintained in a precise spatial o position. The power saw is mounted to the suspension beam via a rotatable shaft, and the shaft is driven by a gear-reduction motor to move the power saw S. to various desired angles. The axis of angular movement of the saw blade o need not be disposed in the plane of the saw blade, but rather can be 4 conveniently offset from the saw blade so that when the power saw is moved in an angular direction, the saw blade is swept through an arc. By utilizing the tlinear bearings and the beam for mounting the power saws, the cost of the unit is reduced, as is the maintenance thereof compared to the prior art sawing system. The gear-reduction positioning of the power saw assures precision and stable positioning thereof.
A related feature of the invention resides in the positioning of the two horizontally movable power saws, based on the angular position of the associated non-horizontally movable power saw to thereby carry out precision -7Arotated about an axis that passes through the plane of the saw blade, whenever the angle of the blade is changed, the horizontal position is also changed to make a cut through a desired point on the board. Hence, based on the particular angular orientation to which the saw blade is positioned, the computer of the sawing system processes a mathematical equation to determine whether, and how much, the power saw must be horizontally moved to achieve the angle cut through a predefined point on the board. Moreover, when a board end is to be cut with two angles, the processing of the mathematical equation takes into consideration the angular position of one power saw to determine the horizontal displacement of the other power saw to achieve both of the desired angle cuts through the predefined point on the board.
In accordance with another feature of the invention, the in-feed chain conveyors are not constructed with a knee between an upward-angled portion and a horizontal portion, but rather are straight along the length thereof, and angled upwardly from a lower in-feed entry end to an upper rear portion thereof which is disposed between the left and right power cutting blades. With this arrangement, the operator can easily load lumber thereon at the in-feed end, a short height above the floor, whereby the conveyor carries the boards upwardly and into the power saws of the cutting system.
In accordance with yet another feature of the preferred embodiment of the invention, the material conveyor is constructed with two chain-feed material conveyors which have cantilevered drive bearings at the back ends thereof, and take-up mechanisms that are generally internal to the body of the conveyor, thus reducing the width of each conveyor. In this manner, the chain conveyors can be moved very close to each other, thereby allowing very short lengths of boards to be carried and cut by the power saws.
In a second embodiment of the invention, the sawing system has five power saws. Two of the power saws are movable linearly in a horizontal direction, two of the power saws are movable linearly in a vertical direction, and one is movable linearly in both a horizontal and a vertical direction. The saws are controllable by a computer having an executable program. The program -8orients the saws to make cuts at different angular positions and linear distances.
In another aspect of the invention, a lift assembly is secured to the power saw for moving the power saw in a substantially vertical direction. A lift drive is operable connected to the lift assembly. The lift drive is electrically connected to the computer so that the vertical position of the saw can be adjusted by the computer.
In another aspect of the invention, a method positions the saws such that tips of the saw blades barely extend past an upper edge of a workpiece.
ThQ hold-downs are positioned near the tip.
In yet another aspect of the invention, the method parks the power saws not assigned to make a cut. Parking sets the power saw completely above or outside the board to be processed.
Throughout the description and claims of this specification the word 1s "comprise" and variations of that word, such as "comprises" and "comprising", are not intended to exclude other additives or components or integers.
Brief Description of the Drawing The above and further features and advantages of the present invention will become more apparent from the following detailed description of preferred "S embodiments of the invention, with reference to and as illustrated in the accompanying drawings in which like reference characters generally refer to S: the same parts or elements throughout the views, and in which: FIG. 1 is a generalized view of the cutting system employing the various 25 features of the invention; FIG. 2 are views of a wooden web for a truss, as the wood stock progresses through the sawing system of the invention; FIGS. 3a and 3b are views of a power saw secured to a base and the base secured to a shaft such that the pivot axis of the saw is offset from the saw's blade and orthogonal relation with the power saw's shaft for movably mounting the power saw to the sawing system; FIG. 4 illustrates the various angles at which the power saw can be oriented according to the saw's pivot axis shown in FIG. 3; -9- FIGS. 5 and 6 are respective side and end views of the suspension beam of FIG. 3; FIGS. 7a-7d illustrate the relationship between the angles to be cut in a truss board, and the calculation of a correction factor by which a horizontal movable power saw of the sawing system must be displaced to make an angle cut through a predefined point on the board; FIGS. 8a and 8b are flow charts showing the basic steps carried out by the sawing system computer to position the four power saws according to the calculation of the correction factors and angular position data; FIG. 9 is an exploded view of the drive mechanism of an upper portion of the material conveyor of the invention; FIG. 10 is a cross-sectional view of a material conveyor drive assembly with replaceable plastic inserts between the driven metal parts; FIG. 11 is a back view of the top portion of the material conveyor of FIG.
9; FIG. 12 is an exploded view of the chain take-up mechanism of a bottom portion of the material conveyor of the invention; and FIG. 13 is an isometric view of the assembled portion of the material S"conveyor of FIG. 12; FIG. 14 is a generalized view of a second embodiment of the sawing system; FIG. 15 is a perspective view of a power saw mounted to a lift assembly and a support beam; FIG. 16 is a top view of the power saw mounted to the lift assembly and ,the support beam; FIG. 17 is a partial cross-sectional view of the power saw mounted to the lift assembly and the support beam taken along line 17-17 of FIG. 16; FIG. 18 is a perspective view of a power saw mounted to a lift assembly; FIG. 19 is a top view of the power saw mounted to the lift assembly; 32 FIG. 20 is a schematic view of the "home" placement of the power saws in the second embodiment of the sawing system; FIGS. 21a and 21b are front views of a truss having a truss board having a scissor cut; FIG. 22 is a flow chart showing the basic steps carried out by the sawing system computer to position the power saws acuording to the calculation of the linear offsets and angles; FIGS. 23a and 23b illustrate the relationship of saws 40 and 500 with respect to the angles to be cut in a truss board, the linear offset calculations, and the minimal exposure of the saw blade tip of saw 500; FIGS. 24a, 24b, and 24c illustrate the relationship of saws 40 and 500 with respect to the angles to be cut in a truss board, the linear offset calculations, and the minimal exposure of the saw blade tip of saw 500; and FIG. 25 illustrates the distance for carriage length between carriage and movable carriage 22.
Detailed Description of the Invention A sawing system 10 employing the features and advantages of the 15 present invention is shown in generalized form in FIG. 1. The sawing system H: 10 of FIG. 1 can be located in an assembly operation where lumber or boards are input on a separate conveyor system (not shown) and carried to the sawing system 10. The operator can then manually move the lumber from the Sconveyor to the sawing system 10 for cutting to the appropriate lengths and angles. Then, the cut lumber is manually removed, or carried on another conveyor (not shown) to an assembly table where the cut lumber is laid together and fastened by nails or other hardware.
The sawing system 10 includes a frame structure 12 to which the other
S..
components are fixed so as to maintain the system in a unitary manner so that it can be transported or otherwise shipped or operated as a unit. The frame structure includes an upper back frame member 14, and a lower front frame member 16. The sawing system is computerized, and thus includes a cabinet 13 to house the computer and the associated electrical circuits and control equipment. The cabinet 13 may include a CRT 15, and various manual controls 18, such as knobs or push buttons for allowing the operator to communicate with the computer, in response to prompts and information displayed on the CRT 15. Those skilled in the art can readily devise the -11electrical hardware and software for controlling the sawing system 10 in the manner described below.
In accordance with the preferred form of the invention, the system frame structure 12 supports a fixed power saw carriage assembly 20 and a movable power saw carriage assembly 22. The fixed power saw carriage assembly includes a framework 24 that supports two power saws 26 and 28 mounted at the right of the system frame structure 12. The right hand set of saws can be independently angularly positioned with a high degree of precision and stability for cutting lumber at various angles. The framework 24 is welded or otherwise fastened to the system frame structure 12. Further, the right front power saw 26 is movable about twenty-one inches horizontally on a respective suspension beam, which is shown as reference numeral 30. The other associated right back power saw 28 is not longitudinally movable, but is fixed with respect to such movement. The angular movements of both power saws 26 and 28, as well as the longitudinal movement of power saw 26 via the suspension beam can be controlled automatically by a computer control mounted in cabinet 13 and controls 18. Conventional DC drive controls are utilized by the computer to drive the motors that provide angular displacements of all four power saws, as well as to provide horizontal displacements of power saws 26 S: 20 and 40. With such type of drive controls, the amplitude of the DC voltage determines the speed of the motor, while the duration of the voltage controls the time by which the motor is active.
The fixed power saw carriage assembly 20 also includes a material conveyor 32 angled downwardly to a frontal portion thereof to facilitate loading of boards or lumber thereon. A hold-down mechanism 34 disposed above the material conveyor 32 functions to hold lumber down on the material conveyor 32 to prevent tumbling or unwanted movement of the lumber. As will be described in more detail below, the material conveyor 32 is driven by a square shaft 36 which is itself driven at one end thereof (not shown).
The movable power saw carriage assembly 22 includes essentially the same components as the fixed power saw carriage assembly 20, but is longitudinally movable up and down the system frame 12. To that end, the movable power saw carriage assembly 22 includes first and second associated -12power saws 38 and 40, where power saw 40 is suspended from respective movable suspension beam 41. While the left back power saw 40 can be moved both horizontally and angularly with respect to the movable power saw carriage 22, the left front saw 38 can only be moved by angular rotational movements with respect to the movable power saw carriage 22. Both power saws 38 and 40 are controlled so as to be positioned at desired angles for cutting boards at corresponding angles. The power saw suspension assembly of power saw 40 is connected to a movable carriage framework 42 which, in turn, rests on the system frame 12 via rollers 43. Conventional roller io assemblies are utilized for providing movable attachment above and on each side of a rail which is attached to the horizontal frame members 14 and 16.
The movable framework 42 and rollers 43 allow the carriage assembly 22 to be moved longitudinally on the frame 12. Further, the carriage framework 42 is driven by a rack and spur gear arrangement (not shown) so that the power saws 38 and 40 can be positioned very accurately along the system frame 12 with respect to the power saws 26 and 28, thereby enabling the cutting of angles at each end of a board, and leaving the board with a precise overall length. The movable power saw carriage assembly 22 further includes a material conveyor 44 which, together with the associated material conveyor 32, 20 forms an in-feed or entry point of in-feed system 46. A hold-down mechanism 48 is disposed above the material conveyor 44, and is operable to move downwardly to clamp a workpiece to the material conveyor 44, and thus move the workpiece into the sawing system. An electrical umbilical chord (not shown) having a cable carrying all the electrical power and control signals is S' 25 connected to the movable power saw carriage assembly 22 and travels with the assembly as it is caused to move up and down the system frame 12, under control of the computerized control in cabinet 13. It should be noted that the power saws 38 and 40 are independently powered by respective motors, as are the power saws 26 and 28 associated with the fixed carriage 20. However, the material conveyors 32 and 44 are each powered from the common square drive shaft 36. The pair of hold-down mechanisms 34 and 48 are driven by the 1 t' -13same source as the square drive shaft 36 to move respective hold-down chains.
It can be appreciated that the long pieces of lumber, the movable power saw carriage assembly 22 is moved to the left in FIG. 1, carrying with it the movable material conveyor 44 and associated hold-down mechanism 48. In order to cut very short pieces of lumber, the movable power saw carriage assembly 22 is moved to the right, very close to the fixed power saw carriage assembly 20. The material conveyor 32 and the hold-down mechanism 34 associated with the fixed power saw carriage assembly 20 are movable longitudinally a short distance by a rack and spur gear arrangement (not shown), in coordination with the longitudinal movement of the suspension beam 30. Thus, the power saws 26 and 28 cannot be moved into the associated material conveyor and cut into the metal thereof. The left-hand material conveyor 44 and the associated hold-down mechanism 48 function in the same manner with respect to the movement of power saws 38 and FIG. 2 illustrates the various stages of a board as it is processed through the cutting system 10. An uncut piece of lumber, such as shown by reference numeral 60, is loaded on the material conveyors 32 and 44 of the infeed system 46. This is easily accomplished, as the frontal portion of the in- 20 feed system 46 is at an optimal distance above the floor, about thirty-two inches, thereby eliminating the need for the operator to lift boards to S. *uncomfortable heights. As noted in FIG. 2, the uncut board 60 constitutes raw material with either square or rough ends. Next, the chain (not shown) of each of the material conveyors 32 and 44 have steel dogs that pull the board So 25 forward until it is secured under each hold-down mechanism 34 and 48. Each hold-down mechanism has a driven chain which engages the top of the board.
The chains of the hold-down mechanism 34 and the associated material conveyor 32 move at the same speed, and thus uniformly move the board into the sawing system.
Assuming the right-side power saws 26 and 28 and the left-side power saws 38 and 40 are to be set up to cut two angles at each end of the board so as to achieve the board shown in the top illustration of FIG. 2, the following steps are carried out. First, the sawing set up would be programmed into the -14computer to move the movable power saw carriage assembly 22 toward the fixed power saw carriage assembly 20 so that the power saws 26 and 40 can then be angled and moved on their respective suspension beams to achieve the correct angles and the correct length of the board. It is noted that, although not a necessity, the front right saw 26 cuts the top angle cut 64 while the front left saw 38 cuts the bottom angle cut 62, then the back right saw 28 cuts the bottom angle cut 68 while the back left saw 40 cuts the top angle cut 66 in the board 60. While the system 10 has been described such that the front power saws 26 and 38 perform the respective upper and lower angle cuts l0 64 and 62, and the back saws 28 and 40 perform the respective lower and upper cuts 68 and 66 on the ends of the board, the operations can be reversed or otherwise changed by the appropriate orientations of the power saws in the respective frames. Assuming the angles at both ends of the board are to be forty-five degrees, for example, the front power saws 26 and 38 would be angled so that as the board 60 is moved through such saws, the angle cuts 64 and 62 are cut as the board is moved past the blades of frontal power saws 26 and 38 in the first cutting operation. The back power saws 28 and 40 are angled in the opposite directions so as to achieve the forty-five degree c'uts 68 and 66, respectively, in the second cutting operation. The entire cutting operation takes only a few seconds or so to complete. The fully cut board is thus carried by the in-feed system 46 through the saws and delivered to an out-feed structure to be carried to an assembly area.
The cut or scrap ends of the board drop onto a disposal system, such as a shaker type system (not shown) that is located in the lower portion of the frame, under the left and right sets of power saws. The disposal system extends the full length of the sawing system 10. The disposal system moves the scrap from the cutting area to a scrap disposal area. Because the disposal system is located under the power saws, more space is required. In order to circumvent a space problem, the material conveyors 32 and 44 are angled upwardly to provide sufficient space below the power saws.
FIGS. 3a and 3b illustrate the suspension beam and offset pivot axis mounting that allows horizontal positioning of the power saws 26 and 40, as well as provide angular movements for cutting various angles in the lumber
-A-
processed by the sawing system 10. The power saw 26 is mounted for precise angular movements with respect to the suspension beam 30. Suspension beam 30 can be linearly moved back and forth with respect to the board to be cut. The power saw 26 includes an electric motor 80 and an 18-inch saw blade 82, or other appropriately-sized saw blade. The saw blade 82 rotates about the axis of the rotating shaft of the motor 80. The electric motor 80 is fixed to a metal base plate 84 that is welded, bolted or otherwise attached to a bearing shaft 86 at one corner of the plate 84. The power saw 26 is angularly moved about the rotational axis of the bearing shaft 86. The pivotal or angular movements of the power saw 26 are shown in FIG. 4 in various positions.
While in the preferred embodiment of the invention, the rotatable shaft 86 is mounted near a corner of the mounting plate 84, the pivotal axis of the plate 84 can be at any other location thereon to achieve different paths of pivotal motion of the saw blade. Indeed, the saws that make the bottom cuts 62 and 68 on the board shown in as FIG. 2 are mounted for pivotal movement near a top corner of the base plate 84 as shown in FIG. 3a, while the saws that make the top angle cuts 64 and 66 are mounted for pivotal movement near the bottom left corner of the base 84, as viewed in FIG. 7c. Those skilled in the art may prefer to mount the rotatable shaft 86 in the middle of the base plate S: 20 84, or at corners of the base plate 84 other than described above.
"With reference to FIGS. 3-6, the shaft 86 passes through a hole in the suspension beam 30, but is fixed thereto by a pair of bearings 88 and 90. The bearings 88 and 90 are fastened to the suspension beam 30 by bolts or other suitable hardware. The shaft 86 constitutes an output of a first worm gear reduction unit 92. As noted in FIG. 5, the gear reduction unit 92 has an input shaft 94 connected via a coupling 96 to a second helical gear reduction unit 98 and a reversible drive motor 100. The motor 100 and gear reduction unit 98 are typically available as a gear motor unit. DC power is supplied to the drive motor 100 by way of the electrical wires 102 to drive the motor in a clockwise or counter-clockwise manner. Further, a conventional shaft encoder 104 is connected to the rear shaft end of the motor 100 to provide output signals indicating the angular displacement of the motor 100. The shaft encoder output is shown as the conductors identified by reference numeral 106. By -16-
U
ascertaining the angular displacement of the motor 100 and knowing the ratio of reductions of the gear reduction unit 98 and gear reduction unit 92, the angular displacement of the saw blade 82 can be accurately determined and maintained. By utilizing an overall gear reduction in excess of 1000:1, very accurate and stable angular positioning of the power saws can be achieved.
With reference again to FIGS. 3, 5, and 6, the suspension beam 30 is suspended by way of a pair of linear bearings 110 and 112. The linear bearings are of a conventional type. This type of bearing includes corresponding v-groove and v-tongue rail with mating surfaces, as better shown in FIG. 6. The v-groove rail is fixed to the top of the suspension beam by screws (not shown) that are threaded into the top edge of the suspension beam 30. The pair of v-tongue members of the bearings 110 and 112 are connected together by a support 114 between a pair of threaded stubs 116 and 118 that are fastened to the support 114, as well as fastened to lateral is bracket members 120 and 122. The bracket members 120 and 122 are rigidly fastened to the carriage framework 24 or 42 of the power saw carriage assemblies 20 and 22, respectively. The linear bearings allow the suspension beam 30 to be accurately suspended without any vertical or lateral play.
Further, two pairs of cam followers, one of which is shown as reference 20 numeral 124, straddle the bottom edge of the suspension beam 30 to limit the sideways movement of the rail, but allow longitudinal movement of the beam Each cam follower 124 is fastened to a bracket which, in turn, is fastened to the power saw carriage frame. Those skilled in the art may prefer to locate the linear bearings at the bottom of the suspension beam 30, and the cam followers at the top.
7 As can be best seen in FIGS. 5 and 6, the DC drive motor 100 and the two gear reduction units 92 and 98 are mounted on one side of the suspension beam 30, while the saw motor 80 and mounting plate 84 are mounted to the opposite side. This arrangement provides a certain degree of balance to the suspension beam 30, in that the weight is distributed across the suspension beam 30. This balance reduces wear on the cam followers 124 as well as uneven wear on the linear bearings 110 and 112.
17 -17- A DC drive motor 126 shown in FIG. 3b provides longitudinal drive to the suspension beam 30, via a rack gear 128 and a mating spur gear 130. The end of the rack gear 128 is bolted to the suspension beam 30. The motor 126 is suitably fastened to the power saw carriage frame in a manner not shown.
Further, the drive motor 126 also includes a shaft encoder to provide feedback pulses to the computer system, thereby providing position information as to the longitudinal position of the saw blade 82 of the power saw 26. While not shown, the motor 126 may be provided with internal or external gear reduction assemblies to reduce the speed of the spur gear 130, and thus provide more lo accurate longitudinal movements of the suspension beam 30. Alternative drive mechanisms, such as screw drives and the like can be utilized for moving the suspension beam 30 by way of the linear bearings 110 and 112.
The two power saws 26 and 40 of the sawing system of FIG. 1 are mounted for both longitudinal and angular movements in the same basic manner as shown in FIG. 3. The power saws 28 and 38 are not mounted by way of the suspension beam and linear bearing mechanisms, but rather are mounted to a fixed frame structure using the bearings 88 and 90 and gear reduction units 92 and 98 to provide only angular displacements of the respective saw blades. Those skilled in the art may find it advantageous to 20 equip a sawing system with fewer or more than the four power saws described above, using either angular rotational movement and/or longitudinal suspension beam movement.
As noted in FIG. 4, the pivot axis of each power saw mounted according to the invention, is coaxial with the axis of the bearing shaft 86, and does not extend through the planar face of the saw blade 82. Because the pivotal axis of the power saw is offset from the blade 82, the sawing path of the blade 82 is not blocked nor are complicated or maintenance intensive components required. However, because the pivotal axis of the power saw is offset from the plane of the saw blade 82, at least one power saw associated with the fixed power saw assembly 20 and one power saw of the movable power saw assembly 22 requires the capability of horizontal movement. As noted above, the right front power saw 26, as well as the left back power saw 40 are 9)1 18mounted to respective suspension beams 30 and 41, thereby allowing for precise horizontal movements.
FIG. 7a illustrates the reason why one of the power saws in each of the left and right assemblies requires the capability of horizontal movemrnent in order to cut an angle through a board at a precise location. As noted above, the power saw 40 is located at the left back of the sawing system, and is adapted for cutting the top angle in the board 60. Assume, for example, that a 1350 angle 133 is to be cut in the board 60, through the predefined point 131.
The back left saw 40 is controlled by the computer to rotate the power saw to the correct angular orientation, as well as horizontally move the power saw via the suspension beam 41 to mnake the 1350 cut through the predefined point 131. Then, assume next that a 1500 angle 135 is to be cut in the top of a subsequent board. If the power saw 40 were simply rotated to the 1500 location, then a cut 135 shown in FIG. 7a is made. However, the cut 135 does not pass through the predefined point 131, due primarily to the offset rotational axis of the power saw 40 with respect to the blade. A correction can be made by moving the power saw 40 to the left so that the cut will proceed directly through the predefined point 131. A cut "through" a predefined point is also construed herein to mean that the cut is made just adjacent to the point.
20 The computation to achieve the correction factor for horizontally locating the saw 40 is complicated by the fact that the associated left front power saw :38 is also pivotal about an offset axis, although not movable in a horizontal direction. The technique according to the invention for deriving the correction factor and cutting a board with precise angles through a predefined point of the 25 board is set forth below.
With reference to FIG. 7b, assume that the board 60 is to be cut with a *top 1350 angle 133 through point 131, and a bottom 600 angle 137, again through the predefined point 131. In the example, the predefined point 131 is o exactly midway between the top of the board 60 and the bottom of the board shown in FIG. 7b. In order to determine the correction factor, various dimensions between the pivotal axis of the power saws and the board must be known, it being realized that the board is constrained and fixed with respect to -19the power saws 38 and 40. The material conveyor 44 in conjunction with the hold-down mechanism 48 provide the function of fixing the board laterally with respect to such power saws.
With regard to FIG. 7c, the power saw 40 is shown with respect to the s board 60. The vertical distance h 1 between the top saw pivot point 139 and the predefined point 131 on the board 60 must be known. Another relevant dimension of the power saw 40 is Di which is the perpendicular distance between the power saw pivot axis 139 and to the front face of the power saw blade. Further, and with reference to FIG. 7d, the vertical distance h 2 between i the pivot axis 141 of the bottom power saw 38 and the predefined point 131 on the board 60 must also be known. Similarly, the perpendicular distance D 2 must be determined between the power saw pivot axis 141 and the front face of the blade of the power saw 38. Based upon the height of the board 60 and the particular angles to be cut in the board 60, the predefined point can be easily determined as a function of the distances hi and h 2 between the respective pivot axes 139 and 141 of the power saws 40 and 38, respectively.
Lastly, the required angular orientations of both the power saws 40 and 38 must be known, but the angle data can be easily obtained from the drawings or ooeoo 2 information relating to the truss chords or webs to be cut. It should be noted S• 20 that the power saw 40 is programmed to traverse an angular displacement of between 530-1660 with zero degrees being defined when the blade is oo: horizontal and 900 when the blade is vertical. On the other hand, the left front power saw 38 is programmed to rotate through an angular range of 140-128 It has been found that these angular displacements are suitable for cutting the various angles normally encountered in wooden trusses.
The power saws 40 and 38 are mounted for angular movements about the respective pivot axes 139 and 141 as shown in FIGS. 7c and 7d. It is to be understood that the right front power saw 26 is mounted for pivotal movement about the shaft 86 as shown in FIG. 3. The right back power saw 28 has a pivot axis below the motor of the power saw and to the lower left corner of the base plate, rather than the upper left corner as shown in FIG. 3 with respect to power saw 26.
It is further noted that the range of horizontal displacements of the power saw 40, due to movement of the suspension beam 30, is about 21 inches. A horizontal reference point from which a correction factor is determined from where the suspension beam 30 can be moved three inches to the right when facing the sawing system 10, and from where it can be moved 18 inches to the left. The horizontal reference points are entirely arbitrary and could be established at other positions. In other words, the reference point for determining horizontal displacements or correction factors, is at a point about one-seventh of the total horizontal displacement, as measured from the rightio most end position of horizontal travel. Thus, when positioning the horizontally movable power saws 26 and 40, such saws are initially positioned at a respective reference point or their carriage assemblies 20 and 22, and then displaced therefrom based upon the calculation of correction factors, according to the following formula: 2 2 +h .Sin% )Sin( 45O-2 -Tan Correction 2 2 h 2 Factor Sin(1 80 2) a 2 Sin 135 0 -Tan Sine, 21
*,O
As noted above, h is the vertical distance between the pivot axis 139 of power saw 40 and the predefined point 131 on the board, while h 2 is the distance from the pivot axis 141 of power saw 38 to the predefined point 131 of the board. In the equation noted above, 81 is the angle of the blade of power saw 40, while 02 is the angle of the blade of power saw 38, where a zero degree reference is when the saw blade is horizontal. The correction factor resulting from the calculation of this equation is the distance from the reference point of power saw 40 by which such power saw must be horizontally moved in order to cut the angle 61 through the predefined point 131 on the board Positive correction factors refer to displacements toward the left end of the machine, while negative correction factors refer to displacements toward the right of the machine, when viewed from the front of the sawing system 10 of FIG. 1. The portion of the equation is the first set of brackets, before the subtraction sign, represents a dimension contributed by the power saw 38, while the portion of the equation in the last set of brackets represents a dimension contributed by the power saw 40. For sawing systems utilizing only a single horizontally and angularly movable power saw, such as saw 40, then the only portion of the equation needed is the last bracketed portion. By S0. utilizing the correction factor of only a single power saw, it can be horizontally moved so that any angle can be cut through the same predefined point on the *board. A similar equation noted above can be utilized for determining the e. correction factor for horizontal displacements of the power saw 26 located on the suspension beam 30 of the fixed power saw carriage assembly 20 of the right hand side of the sawing system FIGS. 8a and 8b are flow charts depicting the general steps carried out to set up the angular positions of all four power saws, as well as the horizontal position of the horizontally movable power saws. Based upon the drawings of all the dimensions and angles of a truss to be cut with the sawing system, a predefined point associated with one or two angles at each end of the board can be determined. Further, the linear distance between the predefined points can also be determined, which distance is related to the carriage movement of the movable power saw assembly 22, again with respect to an arbitrary -22reference position. In other words, the parameters, 01, 0 21 hi, h 2 DI, D 2 the predefined points at each end of the board, and the distance between the predefined points is all known either from the truss drawings, tables or other dalculations. Such data is entered in a predefined format in the computer so that the computer can decode such information and utilize it in conjunction with the equation. When such data is loaded into the computer and the particular types of trusses associated with a program is selected to be run, the computer proceeds through the generalized steps set forth in FIG. 8. Those skilled in the programming art will readily recognize that the steps of the flow chart can be i carried out into many different program languages, utilizing the appropriate instructions to accomplish the result noted.
According to program flow block 300, the computer starts processing the truss and saw cut information to derive the correction factors and the other data necessary to position the power saws 26 and 28 on the fixed power saw carriage assembly 20, the movable power saw carriage assembly 22, the power saws 38 and 40 on the carriage assembly 22, the conveyors 32 and 44, and the hold-downs 34 and 48 of the sawing system 10. In program flow block 302, the angle data and dimension data are retrieved from the d:"2,base associated with the particular truss board to be cut. Program flow block 304 20 includes those instructions for determining which saws can accomplish the desired cuts most efficiently. For example, the front left saw 38 can make cuts i at the bottom of a board at angles between 140-900, whereas the front right saw 26 can make cuts at the top of a board at angles between 140-900. If a board requires the type of cuts within the ranges noted by the front saws, then the back saws 28 and 40 do not even have to be activated. In carrying out the instructions of program block 304, the computer essentially assesses the type of cuts at each end of the board, and then assigns a particular cut to each ,•power saw, recognizing that one or more of the four power saws may not be o:4" Crequired. In program flow block 306, the parameters that include the angle data and dimension data are substituted in the equation to the right of the subtraction sign noted above, and the correction factor for the right hand fixed power saw 28 is calculated. The right hand power saw carriage assembly 20 is 1 -23fixed with respect to any horzontal carriage movement. In program flow block 308, angle and dimension data corresponding to the left edge of the truss board is substituted into the equation and the correction factor for the left fixed power saw 38 is determined. Then, in program flow block 310, the distance between the predefined point at each end of the truss board is calculated so that it is known where the movable power saw carriage assembly 22 should be positioned. In program flow block 312, the computer calculates the correction factor for the right, front movable power saw 26. The next set of instructions carried out by the computer of the sawing system 10 is shown in program flow l0 block 314. Here, the correction factor for the left, back movable power saw is calculated. The bracketed portion of the foregoing equation to the right of the subtraction sign is processed to determine the horizontal displacement, or correction factor, from the reference position. In program flow block 316, the computer drives the right hand power saws 26 and 28 to the calculated angular positions. As noted in program flow block 318, the power saws 38 and associated with the left assembly 22 are driven to the desired angular positions. The suspension beam 30 to which the right, movable power saw 26 is rotatably attached, is driven horizontally from its reference position according to the calculated correction factor determined in program flow block 312. This 20 is shown in program flow block 320. Then, as noted in program flow block 322, •the suspension beam 41 to which the left power saw 40 is rotatably mounted, displaced horizontally from the reference position according to the correction S: factor calculated in program flow block 314. Lastly, the movable power saw carriage assembly 22 is moved according to program flow block 324 either S° 25 right or left so that the correct spacing will exist between the predefined points "on each end of the board after the sawing operation is complete. In other words, the cut board is then of the correct length between the predefined points. The computer then exists the subroutine of FIG. 8b as noted in program flow block 326. It is to be noted that all movements of the saws are processor controlled and occur at substantially the same time.
From the foregoing, it can be seen that the horizontal displacement associated with the correction factor is a function of the angular orientations of both of the associated saws. In practice, it has been found that with the -24-
-A
sawing system 10 disclosed above, angles can be cut in truss boards with a precision of ±0.05, and various dimensional characteristics of the truss board can be cut with an accuracy of +1/32 inch (about 0.79 millimeters).
FIGS. 9-13 illustrate the details of one material conveyor 32 of the ins feed conveyor system 46. Particularly, FIG. 9 illustrates an upper portion of the material conveyor 32 of FIG. 1, while FIG. 13 shows a lower portion of the material conveyor 32, again of FIG. 1. As noted above, the upper portion of the material conveyors 32 and 44 rest on the horizontal frame member 14 while the lower portion of the material conveyors 32 and 44 rest on the lower horizontal frame member 16. Also as noted above, the material conveyors 32 and 44 can be accurately moved laterally by a spur and rack gear arrangement (not shown). Irrespective of their lateral positions on the frame 12, the material conveyors 32 and 44 remain driven by the square drive shaft 36. The material conveyor 32 described in connection with FIGS. 9 and 10 is substantially identical to the other material conveyor 44.
The material conveyor 32 includes an elongate tubular metal span support 140 that substantially spans the distance between the top back frame member 14 and the top front frame member 16 of the sawing system frame 12 shown in FIG. 1. An upper set of cam rollers 138 and a lower set of cam rollers 141 are mounted for rotation to the bottom of the span support 140. FIGS. 9 and 12 illustrate the upper set of cam rollers 138 fixed to the underside of the span support 140, and the lower set of cam rollers 141 fixed to the span support. Each set of rollers 138 and 141 are spaced apart so as to straddle a square key stock member (not shown) along the top surface of each horizontal frame member 14 and 16 of FIG. 1. With this construction, the material conveyors 32 and 44 are supported for horizontal movement along the frame members 14 and 16.
A pair of upper protective enclosure plates 142 and 144 are bolted on each side of the span support 140 via the holes, such as shown by reference numerals 146 and 148. A metal chain 150 of the conventional link-type, with dog-ear extensions 151 welded to a link every 16 inches, or so, is routed and over the top surface of the span support 140 and back inside the interior of the span support 140, and in between the protective enclosure plates 142 and 25 0
L-.
I
144. To facilitate travel of the chain 150 on the span support 140, a narrow square key stock 153 is welded to the top surface thereof. The key stock 153 provides a guide on which the chain 150 can move, as well as reduce wear on the span support 140 itself. A sprocket wheel 152 is disposed between the protective enclosure plates 142 and 144, and provides a drive for driving the chain 150. It is noted that the chain 150 and dogs 151 engage the lumber or wood and carry the material into the sawing system 10. The return path of the chain 150 is inside the hollow span support 140.
A pair of spaced-apart cantilever bearings 154 and 156 are mounted by bolts (FIG. 11) to a support plate 158.. The support plate 158 is welded to the protective enclosure plate 142. Both bearings 154 and 156 are mounted in a cantilever manner outside and to the left (when viewed from the back of the sawing system) of the protective cover 142, as shown in FIGS. 9 and 11. A flanged tubular stub 160 passes through both bearings 154 and 156, and into a QD type bushing 155. Once the tubular stub 160 is situated through the bearings 154 and 156 and snugly inserted into the QD bushing 155, the bushing 155 is tightened to secure the sprocket wheel 152 to the tubular stub 160. Then, the sprocket wheel 152 is laterally adjusted for alignment of the chain 150 with the span support 140. Lastly, the center part of the cantilever 20 bearings 154 and 156 are secured to the tubular stub 160 by set screws (not shown) or other suitable means. With this arrangement, the bearing 154 and *156 support the sprocket wheel 152 in a cantilever manner for rotation and for driving the chain 150. As noted, a flange 162 having a central hole 164 therein is welded or otherwise secured to the end of the tubular stub 160. A square S* 25 tubular drive member 166 about six inches long is provided, with a flange 168 "and 170 fixed at each end thereof. The flange 170 is then bolted to the flange °o e S° 162 of the tubular stub 160.
Four plastic inserts 172 are provided as a durable cushion between the square drive shaft 36 and the square tubular drive member 166. An end cap 174 having a square hole 176 therein is fabricated for fastening with screws or other suitable means, to the flange 168 of the square tubular drive member 166. With this arrangement, the square drive shaft 36 is passed through the end cap 174, through the square tubular drive member 166, through the round -26-
I
tubular stub 160 and thus exists the protective enclosure plate 144, as shown in FIGS. 9 and 11. Once the square drive shaft 36 is routed through the square tubular drive member 166, the individual plastic cushions 172 can be manually inserted between the four sides of the 3square drive shaft 36 and the four corresponding internal surfaces of the tubular drive member 166. Once the plastic cushions 172 are installed, the end cap 174 can be secured to the flange 168 to capture the inserts 172 and maintain them in place. In the preferred embodiment, the drive shaft 36 is i.25 inches square, and each plastic inserts about one inch wide and about six inches long, with a thickness of about 3/8 inch.
The plastic inserts 172 are fabricated of a UHMW type of plastic that is extremely durable for transferring the rotational drive torque of the square shaft 36 to the square tubular drive member 166. Other types of plastic or cushion material, such as Nylatron, may be equally effective as a durable interface between the metal parts. Each plastic insert is cut from sheet material of 3/8 inch thickness, to pieces about one each by six inches, The plastic members 172 prevent direct metal-to-metal contact between the drive shaft 36 and the tubular drive member 166, thus eliminating wear between the metal parts.
Rather, the wear incurred is on the plastic inserts 172, which can be easily .o 20 replaced by removing the end cap 174, pulling out the old inserts, and inserting new inserts, all without having to remove the drive shaft 36 from the material conveyor 32. Moreover, with the arrangement shown in FIG. 9, the material conveyor can be moved up and down the square drive shaft 36 and yet remain driven at any axial location. It should also be noted that the top portion of the S 25 material conveyor 32 is not otherwise fixed to the frame system shown in FIG.
1, but rather rests on the lateral frame member 14 on a set of cam rollers 138 (FIG. as noted above.
Lastly, the upper end of the material conveyor 32 includes an out-feed arm 178 bolted to the protective enclosure plates 142 and 148 for catching the cut boards after having been processed through the sawing system 10 of the invention. The arms 178 of each material conveyor 32 and 44 provide a catch mechanism so that the cut boards do not fall on the floor, but rather can be accumulated so that they can be manually unloaded and carried or otherwise 27 conveyed to a truss assembly area. If a conveyor is provided so that the cut boards can be automatically transported to an assembly area, the out-feed arms 178 can be eliminated or removed.
FIG. 10 illustrates a cross-sectional view of the square drive shaft 36 as it passes through and drives the square tubular member 166, with the plastic inserts 172 disposed therebetween. It can be appreciated that as the square drive shaft 36 is rotationally driven, the side walls thereof exert a torque onil the plastic inserts 172 which, in turn, drive the square tubular member 166. As noted above, any wear that wear that is caused by way of this driven 0io relationship is on the plastic inserts 172, which are easily replaceable and inexpensive. The down time of the system due to replacement of the inserts 172 is small, as only the end cap 176 need be loosened and moved away from the flange 168, the worn inserts withdrawn, and new inserts inserted. While the preferred embodiment of the invention utilizes four individual inserts 172, it s can be appreciated that all four inserts can be connected at an elongated corner edge thereof by a living hinge, with two of the longitudinal edges of the inserts being disconnected, so that the unit can be wrapped around the drive shaft 36 and slid into the square tubular member 166. It can be appreciated that the down time for removal of the worn inserts and replacement thereof 20 with new inserts is very short and is easily accomplished.
~It should be understood that the other in-feed material conveyor 44 is i: constructed in a mirror image of the material conveyor 32 described above. In other words, the cantilever bearings and drive mechanism of the other material conveyor 44 are mounted on the right (as viewed from the back) of the material 25 conveyor 44 so that the two material conveyors 32 and 44 can be moved very •close together to accommodate short pieces of lumber.
S°With reference now to FIGS. 12 and 13, there is illustrated the in-feed ••i assembly comprising the lower or bottom portion of the material conveyor 32.
The bottom portion of the span support 140 is shown, in its relationship to a left side cover plate 180 and a right side cover plate 182 that are welded or otherwise secured to the opposing sides of the span support 140. The side Kcover plates 180 and 182 enclose a chain take-up mechanism 184 that includes a toothed chain gear sprocket 186 and a yoke 188 having a threaded -28adjustment rod. The sprocket 186 is secured to the yoke 188 by use of a bearing 194 that is press fit into the bore 196 of the sprocket 186. A pin 198, welded to a square head 200, passes through the sprocket bearing 194 which is disposed within the yoke 188. The end of the pin 198 is fastened to a s square head 202 by using a split pin 203 that is press fit through a bore drilled through the head 202 and the end of the pin 198. The square heads 200 and 202 fit within the square slots 204, 206 of the respective side cover plates 180 and 182. It can be seen that the sprocket 186 is longitudinally constrained by movement of the pin 198, via the square members 200, 202 in the respective lo slots 204 and 206 of the cover plates 180 and 182. Further, the longitudinal movement or adjustment of the sprocket 186 is obtained by way of the threaded rod 208 which is welded to the yoke 188 at one end, and is threadably adjusted by a lock nut 210 with respect to a bracket 190. The threaded rod 208 passes through a hole in the bracket 190, and the bracket 190 is welded to the internal surface of the side covers 180 and 182 during assembly thereof. An access opening 212 is formed in the right-hand cover plate 182 for making adjustments of the sprocket 186 by way of the lock nut 210. An isometric view of the completely assembled in-feed assembly is shown in FIG. 13, with the access cover 214 removed to show the adjustment mechanism. Further, it can be seen that the square slide member 202 can be moved longitudinally in the slot 206 to provide take-up adjustment of the sprocket 186 and thereby loosen or tighten the conveyor chain 150. It is noted that the top portion of the left and right cover plates 180 and 182 are enclosed only on the top by metal 218 for protection which prevents small objects and 25 the like from falling into the idler chain mechanism. Other spacer pegs can be welded or bolted between the protective cover plates 180 and 182 to maintain •o i S• the plates securely spaced apart. As further noted in FIG. 13, an opening 220 exists between the span support 140 and the cover plates 180 and 182 for exit of the chain 150 so that it can ride on the top of the key stock 153 welded to the top of the span support 140 and thereby carry boards into the sawing system.
It is noted that the top flat surface 218 of the in-feed assembly provides S a rest on which boards can be initially placed, without being moved by the -29- -I M chain 150. When it is desired to feed the board into the sawing system, the operator simply pushes the board from the surface 218 onto the open top of the protective cover plates 180 and 182, whereby the board is moved forwardly by the protruding dog-ear extensions 151. The board is then captured between the material conveyor 32 and the upper hold-down mechanism 34 and automatically fed to the left and right power saws by a controlled and uniform movement. The upright edge 222 of the in-feed assembly provides an edge to prevent boards from sliding off the assembly, due to its upward incline.
While the right-hand in-feed system 32 has been described, it is noted that the left-hand in-feed assembly 44 is identically constructed in a mirror image.
The advantage of the in-feed assembly shown in FIGS. 10 and 11 is that such assemblies are very narrow, whereby the left in-feed assembly 44 can be placed adjacent to the right in-feed assembly 32 to thereby convey very short boards so that both ends thereof can be cut at desired angles by the power saws. Further, no external adjustment mechanism exists that could catch an operator's clothes or that can be covered with sawdust and the like to make adjustment difficult. Boards as short as nine inches can be cut with square angled ends, due to the feature of the in-feed assemblies which can be placed close together to support the short boards as they are carried into the sawing system. This is due also in part to the utilization of the cantilever bearings located on the outside of each material conveyor at the upper ends thereof, thereby allowing the conveyor assemblies to be of a very narrow width and located between opposing saws to cut short lengths of boards.
Description of a Second Embodiment Referring to FIG. 14, a second embodiment of the invention with five power saws is shown. Movable-power-saw-carriage assembly 22 has a first power saw 500 and a second power saw 40. First power saw 500 is suspended from movable vertical support and can be moved both vertically 3o and angularly. Second power saw 40, discussed above in detail, is suspended from movable suspension beam 41 and can be moved both horizontally and angularly. Fixed-power-saw-carriage assembly 20 has a third power saw 600, a fourth power saw 26 and a fifth power saw 400. Third power saw 600 is 30 a a a o.
7/,
I
suspended from a movable vertical support and can be moved both vertically and angularly. Fourth power saw 26, discussed above in detail, is suspended from movable suspension beam 30. Fifth power saw 400 is vertically and horizontally positionable.
For the second embodiment, power saws 500 and 600 are movable along vertical supports. For clarity, power saw 500 is discussed in detail with the understanding that power saw 600 substantially mirrors the mechanical structure of saw 500. The mechanical structure and operation of power saws 26 and 40 are already set out above in detail.
Referring to FIG. 18, power saw 500 is movable vertically along a vertical support 516. Saw blade 508 has a diameter of about 55.88 cm (22 inches). it should be noted that different-sized saw-blades can be used depending upon the length of the cut desired. Saw-blade 508 is mounted to electric saw motor 510 such that the saw blade rotates about the motor axis 511. The pivot axis of the saw motor 510, as shown, is perpendicular to and intersects the motor axis 511.
Secured to the motor mount 520 is a reversible electric motor and gear box assembly 522. A shaft encoder 504 is connected to the rear shaft end of motor assembly 522 to provide output signals indicating the vertical S: 20 displacement of the motor assembly 522. Assembly 522 is secured to the o imotor mount with bolts or the like. A lift assembly 523 has a sled plate 524 with linear bearings 530 and 532 which are slidably secured to bearing rails 534.
Bearing rails 534 are attached to support 516. Linear bearing rails 534 are mounted substantially vertically to the vertical support 516 by welding, bolting 25 or the like.
Sled plate 524 is slideably fastened to support member 516 such that sled plate 524 and the motor assembly 522 are in the same physical frame of reference. Power saw 500 is mounted to the carriage assembly 22 (see FIG.
14) with threaded studs 528 extending from lift support 516 having a longitudinal axis aligned substantially vertical.
Referring to FIG. 19, a rack gear 538 is mounted to the side of the lift engages rack gear 538. When motor assembly 522 is activated, torsional force -31 is imparted to spur gear 540, such that the power saw 500 can be selectively raised or lowered along the lift support 516 with respect to the rack gear 538.
Conventional direct current drive controls are utilized by the computer to drive the motors that provide angular displacements of power saw 500, and to vertically position power saw 500. With such type of drive controls, the amplitude of the DC voltage determines the speed of the motor, while the duration of the voltage controls the time by which the motor is active. The vertical, as with the angular and horizontal, movement can be controlled automatically by the computer control mounted in cabinet 13 and controls 18 i shown in Figure 14. An example of a suitable computer control is a model PC- A984-145 Compact Controller available from Modicon, Inc. North Andover,
MA.
Referring to FIG. 15, power saw 400 is shown. Power saw 400 is movable longitudinally on a horizontal suspension beam 30 with a horizontal range of about twenty-one inches, but can be increased with minor modifications. Saw blade 408 has a diameter ("DIA 5 of about thirty-two inches. It should be noted that different-sized saw-blades can be used depending upon the length of the cut desired. Saw-blade 408 is mounted to electric saw motor 410 such that the saw blade rotates about the motor axis 411. The horizontal movement mechanism for power saw 400 is the same as for power saw 26, described in detail above. The pivot axis 412 through base plate 84 of the saw motor 410, as shown, is perpendicular to and intersects with the axis 411 of motor 410.
Lateral bracket members 120 and 122 are rigidly fastened to support 25 member 426 by welding or the like. Extending from a irst end 418 is a motor *ooS° mount 420 with a reinforcement member 421 (shown in FIG. 16). Secured to the motor mount 420 is a reversible electric motor and gear box assembly 422.
.oto•i S:o• A shaft encoder 404 is connected to the rear shaft end of motor assembly 422 to provide output signals indicating the vertical displacement of the motor 3o assembly 422. Assembly 422 is secured to the motor mount with bolts or the like. A lift assembly 423 has a sled plate 424, a first lift support member 426 and a second lift support member 427. Referring briefly to FIG. 16, sled plate S 424 has linear bearings 430 and 432 which are slidably secured to bearing -32- 1j rails 434. Bearing rails 434 are attached to support 416. Linear bearing rails 434 are mounted substantially vertically to the vertical support 416 by welding, bolting or the like.
Sled plate 424 is slideably fastened to support member 416 such that sled plate 424 and the motor assembly 422 are in the same physical frame of reference. With respect to frame 24 shown, in FIG. 14, power saw 400 is mounted to the carriage assembly 20 with threaded studs 428 extending from lift support 416 having a longitudinal axis aligned substantially vertical. It should be noted that power saws such as fifth power saw 400 can also be lo mounted to movable carriage frame 22 to achieve the same effects.
A rack gear 438 is mounted to the side of the lift support 416, best shown in Figures 16 and 17. A mating spur gear 440 mounted on the gear box axle 442 engages rack gear 438. When motor assembly 422 is activated, torsional force is imparted to spur gear 440, such that the power saw 400 can be selectively raised or lowered along the lift support 426 with respect to the rack gear 438. Conventional direct current drive controls are utilized by the computer to drive the motors that provide angular displacements of power saw 400, and to provide horizontal displacements and vertically position power saw 400. With such type of drive controls, the amplitude of the DC voltage 20 determines the speed of the motor, while the duration of the voltage controls :the time by which the motor is active. The vertical, as well as the angular and horizontal movement can be controlled automatically by the computer control mounted in cabinet 13 or manually by way of the computer and controls 18 shown in Figure 14.
25 Referring to FIG. 20, a positional schematic of saws 26, 40, 400, 500 °.°and 600 in a home position is shown. Power saw 500 is mounted on a pivot °eooa axis 512 intersecting axis 511 of saw motor 510. Pivot axis 512 is located a °looo distance Ph from saw blade face 509 and a distance I11 from the x -reference.
Of course, the perpendicular distance ("Hcl between the pivot axis 512 of the saw and the axis 511 of the saw motor 510 is zero. The dHyl-reference line represents the direction of linear motion of power saw 500. The x-references of each saw is designated by the top-of-chain plane of the material conveyor I-33- 33 32, which is also the bottom plane of a board being processed by the assembly. Power saw 40 is mounted on a pivot axis 139 distal from axis 41 of saw motor 80. Pivot axis 139 is located a distance Ph 2 from saw blade face 82, a distance H2 from the x 2 -reference, and a distance Hcl 2 from axis 41. The dHx2-reference line represents the direction of linear motion of power saw 26.
Power saw 600 is mounted on a pivot axis 612 intersecting axis 611 of saw motor 610. Pivot axis 612 is located a distance Ph 3 from saw blade face 609 and a istance H 3 from the x 3 -reference. Of course, the perpendicular distance ("Hcl 3 between the pivot axis 612 of the saw and the axis 611 of the saw lo motor 610 is zero. The dHY 3 -reference line represents the direction of linear motion of power saw 26. Power saw 26 is mounted on a pivot axis 27 located distal from axis 41 of saw motor 80. Pivot axis 27 is located a distance Ph 4 from saw blade face 83, a distance H from the x 4 -reference, and a distance 44 Hcl 4 from axis 41. The dHx 4 -reference line represents the direction of linear motion of power saw 26. Power saw 400 is mounted on a pivot axis 412 intersecting axis 411 of saw motor 410. Pivot axis 412 is located a distance Ph 5 from saw blade face 409, and a distance H 5 from the x -reference. Of course, the perpendicular distance ("Hcl5") between the pivot axis 412 of the saw and the axis 411 of the saw motor 410 is zero. The dHx 5 and dHy 5 20 reference lines represent the direction of linear motion of power saw 400.
The vertical positioning capability of power saws 400, 500 and 600, respectively, allow processing of larger dimensioned boards. For example, the horizontally-adjustable power saw 26 can readily accommodate two-by-four boards, but cannot provide shallow-to-deep saw cuts in two-by-twelve boards.
The three-saw configuration of power saws 600, 26 and 400 on fixed-powersaw-carriage assembly 20 also enables complex board end processing for trusses implementing "scissor cuts." Referring to FIG. 21a, a truss 700, assembled with various-sized connector plates 701, implementing a scissor cut is shown. Referring to FIG.
21b, truss board 702 is illustrated in greater detail. The scissor cut has a seat i cut 704, a scarf cut 706, and a butt cut 708. Board 702 has a plurality of
S
S.
S
S
S
(i -34j, LL -L I consecutively numbered points: point-zero 710, point-one 711, point-two 712, point-three 713, point-four 714, point-five 715, and point-six 716, The location of these points are stored within the computer in cabinet 13 and used to process uncut boards. The points are defined in accordance with angle and dimensional data associated with a desired truss board. For convenience, the points are numbered clockwise beginning at the lower-left point.
FIG. 22 is a flow chart depicting the general steps carried out to set the angular positions of the five power saws, the horizontal position of saws 26, and 400, and the vertical position of saws 400, 500 and 600. Based upon the io drawings of all the dimensions and angles of a truss to be cut with the sawing system, a predefined point associated with one or two angles at each end of the board can be determined. FIGS. 23a-b and 24a-c serve to illustrate the positioning of the power saws to cut the truss board 702 (shown in FIG. 21 b).
The saw blades of power saws 26, 40, 400, 500 and 600 are positioned utilizing variations of a general algorithm. This algorithm takes into account the pivot-axis positions of the saws with respect to the x-reference axis and the yreference axis, as shown in FIG. 20. The general algorithm is:
Y-T,
XOFFSET=Txtan where: *0 i 20 Tx=(Phm)cos(Om-)-(Hclm)cos(m)+dHxm-Phm a +(Hclm)sin(0m)+dHym+ Hm Angle 0 is the angle between the x-reference and the face of the power saw blade (using the sign convention of assuming the x-reference is zero degrees 25 and measuring the angle clockwise from the x-reference, as shown throughout FIGS. 23 and 24), and where the subscript indicates the particular power saw 40, 500, 600, 26, or 400.
In program flow block 802, the angle data and dimension data are retrieved from the database associated with the particular truss board to be 30 cut. Program flow block 804 assigns the saw cuts to the left side saws 500 and 40 for single cuts or double cuts accordingly. In the example shown in FIGS. 21a and 21b, a double cut is made on the left end of the board 702.
In program flow block 806, the position of the assigned left side saws 500 and 40 are determined such that a distance from the saw blade edges to the hold-down 34 and to the material conveyor 32 is minimized. In other words, power saw blade 82 is positioned so as not to interfere with material conveyor. Power saw blade 508 has an upper-blade tip 514 that is positioned to extend sufficiently past the board top edge 720 to cut through the board yet avoid interfering with hold-down 34 ("MINTIPOFFSET"). An advantage of minimizing the amount upper-blade tips of the saws extend past the top edge 720 is that the hold-downs 34 do not interfere with the processing of shorter truss boards.
As shown in FIG. 23b, hold-down 34 can be placed at about two-inches from the upper-blade tip 514. In the example provided, power saw 500 having a vertical adjustment is making the top cut. The dHy 1 compensation is determined by the following formula: Smax d=dHy=Ty+(Ph )sin(l)-")-(Hcll)sin()-H 1 where: 20 T =Y+(DIA 1 /2-M/NT/POFFSET)sin0 y 1 1 minadj=dHy=Ty+(Phl)(sin9 )-(Hcl)sin(0 1
)-H
where: T =Y-(DIA /2-MINTIPOFFSET)sinO 25 For the saw configuration present, minad parameters for power saw 500 cannot ad be less than about negative four-inches. MaX ad cannot be more than a positive twelve-inches. The dHy I up-down adjustment is made in ten iterations beginning from the minad value. Similarly, the dHx in-out adjustment for saw is determined after blade 82 is oriented to an angle 0 The dimension from the y 2 -reference axis to the object point is determined. In this example, the -36object point is first-point 711. Knowing this value, saw 40 is aligned to make its cut by the following formula:
Y-T,
dHx2=XOFFSET=Tx tan(O, where: Tx=(Ph 2 )cos(62-")-Hcl 2 (cos0 2 )+dHx 2 -Ph 2 T=-(Ph 2 )sin -")+Hcl,(sin 2 )+dHy2+H 2 In program block 808, the saw cuts are assigned to the right side saws 26, 400 and 600 for single cut, double cuts or scissor cuts, accordingly. For the scissor cut shown in FIG. 21b, all the right side saws are assigned for the cut. In program block 810, the positions of the assigned right side saws are determined such that a distance from the saw blade edges to the hold-down and to the material conveyor is minimized. In this case, saw 400 is of primary concern for interfering with hold-down 34. In other words, power saw blade S- 408 is positioned so as not to interfere with material conveyor 34. Power saw blade 408 has an upper-blade tip 414 that is positioned to extend sufficiently past the board top edge 720 to cut through the board yet avoid interfering with hold-down 34 ("MINTIPOFFSET"). Power saw 600 is positioned to make the butt cut between points 714 and 715. To position the saw 26, the seat-butt i point elevation, or fifth-point 715 elevation, is determined where Y is the difference measured from the x-reference and X is the distance from the fifthpoint 715 to the y 4 -reference axis. Based on this seat-butt point 715, saw 26 is put into place using the following formula: dHx 4 =Tx+Ph4+Hcl 4 cose 4-Ph 4 cos(6 4 where: -37- (Y-T Tx=X+ tan ,4 and where: T =-Ph4sin(984-)+Hcl sine4+dHY +H With respect to positioning power saw 400, the scarf-butt point elevation, or fourth-point 714 elevation, is determined. Referring to FIG. 24c, the XOFFSET value is determined, which is length A minus length B. Based on this scarf-butt point 714 and the angle (5 of saw blade 408, the following formula is used to determine the dHy value and dHx value such that upper-blade tip 414 barely clears the top edge 720: Hx5=Tx-Phcos(6-")+Hclscos6 5 +Ph Hy,=TY-Ph s sin (es-)-HclsinO 5
-H
where: Ty=Y-(DIA/2-MINTIPOFFSET)sino i 2 Tx=X+(DIA/2-MINTIPOFFSET)cose Program step 812 sets the carriage length between fixed carriage 20 and movable carriage 22. The carriage length is set to position the movable carriage 22 so that the board is cut at the proper length. For example, saws 26 and 40, as shown in FIGS. 23a and 24b, respectively, are assigned to make .5 the bottom cuts for the scissor-truss board 702. The carriage length L is the bottom edge length D plus the left offset F minus the right offset E.
Program step 814 parks the saw heads not used for processing the truss board. Parking a head consists of setting its height adjustment dHy, horizontal adjustment dHx, and angle e m so that the saw blade is completely above our outside the board to be processed. In the scissor-cut example provided, all the heads are used to process the board 702, so none are parked.
-38-
I
Program step 816 sets the height and horizontal position of hold-downs 34 to avoid the saw blades while still remaining close to the blades.
Positioning is accomplished by determining which saw on the fixed carriage and the saw on the movable carriage 22 extend the furthest along the xreference axis. It is desirable to place the hold-downs as close as possible to the blade tips such that short truss board members can be processed.
Program step 818 physically positions the saws 26, 40, 400, 500 and 600. Movable carriage 22 is driven into place, and hold-downs 34 are positioned according to the determinations made in program step 816.
1o In program step 820, the truss board 702 is processed through the setup. A plurality of boards can be processed in the configuration. When a new configuration is desired, the program steps shown in FIG. 22 are repeated with the new angle and dimension data.
From the foregoing, the various component part of an efficient sawing system are disclosed, with the enhanced capability of moving the power saws, as well as the in-feed material conveyors. With the provisions of the present invention, the various component parts can be manufactured in a more cost efficient manriner, and require less maintenance without sacrificing precision or S• accuracy. Accordingly, various modifications may suggest themselves to those S 20 skilled in the art without departing from the spirit and scope of the invention, as defined by the appended claims. Also, those skilled in the art may prefer to utilize some of the features and advantages of the invention, without using all of the features. The invention is not to be restricted to the specific forms shown, or the uses mentioned, except as to the extent required by the claims.
APPENDIX
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <windows.h> #include "malpine.h" #include t"msaw h"
C
9 11 12 13 14 16 17 18 19 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 46 47 48 49 51 while ((board->angles[i]>.00 1 )1(board->angles [il<-.00 1)) return(i); extern int rotate; int Head lTopHead2Bottom(Boardlnfo *board); int 11ead2TopHead IBottom(Boardlnfo board); int Head3TopHead4Bottom(Boardlnfo *board); int Head4TopHead3Bottom(Boardlnfo *board); int HeadsTopHead3Bottom(Boardlnfo *board); int Head5TopHead4Bottom(Boardlnfo board); int ScissorRight4Bottom(Board Info *board); int ScissorRight3Bottom(Boardlnfo *board); int precut -for -head4( BoardInfo *board) int precut for-head5( BoardInfo *board) int TopOfBoard(Boardlnfo *board) float RoundToSixteenth(float dec-inch) double i,f; f'-modf(dec -inch,&i); if 125)) if ((.031 75)) f-.0625; if ((.093 15625)) 125; if f-.1875; if 125)) if 125; if f=.375; if f-.4375; if 125)) if ((.531 f--.5625; if ((.59375<Af)&&(f<.65625)) f--.625; if 875)) f-.6875; if 125)) if f-.8125; if f--.875; if ((.90625<=f)&&(f<96875)) f= .9375; if .03125)) return(i+f); 40 53 int BottomOfBoard(Boardlnfo *board) 54 return(board->num edges- 1); 56 57 mnt SingleCutLeft(Boardlnfo *board) 58 59 return(TopOfBoard(boarl)= 1); 61 mnt DoubleCutLeft(Boardlnfo *board) 62 63 return(TopOfBoardl(board)=2); 64 mnt SingleCutRight(Boardlnfo *board) 66 67 return((BottomOfBoard(board)-TopOfBoard(board)) 68 69 int DoubleCutRight(Boardlnfo *board) 71 return((BottomOfBoard(board)-TopOfBoard(board)) 3); 72 73 int ScissorBottomRight(Boardlnfo *board) 74 return((BottomOfBoard(board)-TopOfBoard(board))4); 76 77 mnt UnFlipableBottomChord(Boardlnfo *board) 78 79 if (boardl->type~1 1){ if(DoubleCutRight(board)IlDoubleCutLeft(board)) 81 return(1); 82} 83 return(0); 84 int LumberSize(float size, BoardInfo *board) 87 88 if (size> 1.4 size<1.6){ 89 if ((board->type 1) 11 (board->type 11)) return (LUM2X4); 91 else 92 return (LUM4X2); 93 94 if (size>2.4 size<2.6) return (LUM2X); if (size>3.4 size<3.6) return (LUM2X); 96 if (size>4.4 size<4.6) return 97 if (size>5.4 size<5.6) return (LUM2X); 98 if (size>7.2 size<7.3) return (LUM2X); 99 if (size>9.2 size<9.3) return (LUM2XIO); 100 if (size>1 1.2 size<1 1.3) return (LUM2X12); 101 return(- 1); 102 103 104 float HoldDown(float board-ht, Boardinfo board) -41- 105 106 if (LumberSize(board -ht, boardl)=LUM4X2) return(1.40); 107 if (LumberSize(board_ht, board)==LUM2X) return(2.40); 108 if (LumberSize(board -ht, boardl)=LUM2X4) return(3 109 if (LumberSize(boardolit, board) LUM2X) return(4.40); 110 if (LumberSize(board-ht, board)=-LUM2X) return(5.40); III if (LumberSize(board-ht, boardl)=LUM2X8) return(7. 112 if (LumberSize(board -ht, board)=LUM2X10) return(9. 113 if (LumberSize(board~ht, boardl)=LUM2X12) return(1 1. 114 return(- 1); 115 116 117 float HeadHeight(float height, BoardInfo *board) 118 119 if (LumberSize(height, boardl) LUM4X2) 120 if (LurnberSize(height board)==LUM2X3) return(1.25); 121 if (LumberS ize(height, board)==LUM2X4) return(1.75); 122 if (LumberSize(height, boardl) LUM2X) return(2.25); 123 if (LumberSize(height, boardl)=LUM2X) return(2.75); 124 if (LumberSize(height, board) ==LUM2X) return(3 .625); 125 if (LumberSize(height boardl)=LUM2XI return(4.625); 126 if (LumberSize(height, boardl)LUM2X12) return(5 .625); 127 return(-1); 128 129 130 float BoardHeight(PRoardlnfo *board) 131 132 int i; :133 float ht=0O; 134 for (i=TopOfBoard(board);i<BottomOfBoard(board);i++) :::135 ht--board->height[i]+ht; 136 return(ht); 137 4 138 float BoardLength(Boardlnfo *board) 139 140 return(board->Ionglen); 141 4 142 143 float DegToRad(float angle) 144 145 return PI*angle/180; 146 4 ::147 148 float RadToDeg(float angle) 149 rtr 8*nl/I 150 rtr 8*nl/l 151 4 152 float ConvertTolI80(float angle) 153 HI returns a positive Mastersaw angle from a real-world angle 154 HI if (angle 0) return (fabs(angle)); 155 HI if (angle return (1 ~-45_6 II return(-1); K) -42- 157 while( angle>360 angle-360; 158 while( angle<0 angle+=360; 159 if (angle> 180) angle-180; 160 return (180 angle); 161 162 163 float ScarfLength(float angle,float height) 164 165 return(DegToRad(angle)*heiglit); 166 167 168 float CalcF~eight(float angle,float length) 169 170 if (angleo0.0 return(0.0); 171 return (sin(DegToRad(fabs(angie)))*Ilength* 12); 172 173 174 void FigureOutHeight(Boardlnfo *board) 175 176 int i; 177 for (i=0;i<board->numedges;iI+) 178 board->height[i]=CalcHe ight(board->angles[i] ,board-> length 179 180 181 182 int FloorTruss(Boardlnfo *board) 183 184 if ((BoardHeight(board)>1I.49)&&(BoardHeight(board)< 1.5 return(1); 185 return(0); 186 :::187 188 float ArcSin(float angle) 18 f,{ :::190 if (angle>= 1.0) return(0.01); return(- 100000); 191 return(RadToDeg(asin(angle))); 193 1943 la ruddobefitn 195 196 double p; 197 f*=pow(i 0,(double)n); 198 if (modff,&p)>=.499) p+=1; 199 200 201 202 void CopyFloatArray(float *from,float *to,int n) 203 204 int i; 205 for to[i]=from[i]; 206 207 float ScarfCutPivotHeight(Boardlnfo *board) 208 -43- 209 int top; 210 float pivot height-0,a 1,11; 211 top=TopOfBoard(board); 212 /ibot--BottomOfBoard(board); 213 a I =tan(DegToRad(board->angles~top+ll)); 214 11 =board->height[top+2]/tan(DegToRad(board->angles[top+2])); 215 pivot -height,--board->height[topt2]-(a I*11); 216 retumr(pivot heighit); 217 218 219 void CalePoints(Boardlnfo *board) 220 221 hit i=0,top; 222 float htlen, sqrt_va[; 223 224 board->xpts[]=0; 225 board->ypts[O]0O; 226 top=TopOfl~oard(board); 227 for (i=0;i<board->num-edges;i++){ 228 ht--fabs(board->height[i]/1 229 len=fabs(board->length[i]); 230 sqrt -val~len*len-ht*ht; 231 if (fabs(board->angles[i]-(int) (board->angles[i]/ 1 180)<.00 1) 232 sqrtvya~en; 233 else 234{ 235 if (fabs(board->angles[i]-(int) (board->angles(i]/90) *90)<.00 1) 236 237 else 238 sqrt val=sqrt(sqrt vat); i::239} 240if(<to, a 241 board->ypts[i+1]=board->ypts[i]+ht; 242 if (board->angles[i]<0) 243 board->xpts[i+ I ]=board->xpts[i]-sqrtval; 244 else 245 board->xpts[i+1 ]=board->xpts~i]+sqrt-val; 246} 247 else{ **248 board->ypts[i+1]=boari->ypts[i]-ht; 249 if (board->angles[i]<0) 250 board->xpts[i+l ]=board->xpts[i]+sqrt_val; 251 else 252 board->xpts[i+ 1j=board->xpts[i]-sqrt val; 254} 255 board->numJtsboard->num edges; 256 257 258 259 void AssignHead(Boardlnfo *board) 260 This is the main logic routine. It tries to assign heads for each -44- 261 cut, checking each head in the order shown. If a board isomer cannot 262 be cut, board.board-val is set to CANNOT CUTr and the turn-on's to 0.
263 264 H/ left sie start H I 265 if (SingleCutLeft(board)) 266 if (single-cut -head_2(board)) 267 board->bottom-blade-left--2; 268 else if (single -cut -head -I (board)) 269 board->bottom_blade_left-- 1; 270 else 271 board->turn-on 1 =0; 272 273 board->boardvaCANNOTCUT; 274} 275} 276 else 277 if (DoubleCutLeft(board)) 278 if (Head I TopHead2Bottom(board)) 279 board->bottom-blade-left--2; 280 else if (Head2TopHead 1 Bottom(board)) 281 board->bottom-bladeIeft=1I; 282 else 283 turn-off all heads(board); 284} 285 else 286 turn -oft all -heads(board); 287 return;, 288 289 right side start****** 290 :::291 if (SingleCutRight(board)) *292 if (single-cut head_3(board)) K 293 else boto blade right-3; :295 ele board->bottom blade_right=4; 296 else if(single -cut -head 297 board->bottom blade 298 else 299 turn-off all heads(board); *300} 301 else *302 if (DoubleCutRight(board)) *~303 if (Head3TopHead4Bottom(board)) 304 board->bottom -blade -right-4; 305 else if (Head4TopHead3 ottom(board)) 306 board->bottom blade right--3; 307 else if (Head5TopHead3Bottom(board)) 308 board->bottom-blade-right-3; 309 else if (Head5TopHead4Bottom(board)) 310 board->bottom-blade-right'$; 311 else _312. turn-off all heads(board); 313} 314 else 315 if (ScissorBottomRight(board)) 316 if (ScissorRight4Bottom(board)) 317 board->bottom-blade-right=4; 318 else if (ScissorRight3 Bottom(board)) 319 board->bottom-blade-right--3; 320 else 321 turn off all heads(board);, 322} 323 else HI bad piece....
324 turn-off all -heads(board); 325 return; 326} 327 328 board->left-hold-down=HodDown(BoardHeight(board), board); 329 board->right hold-down=HoldDown(BoardHeight(board), board); 330 33 1 set-carriage Length(board); 332 set-lumber stop(board); 333 set-material-and-hold-down io(board); 334 335 if( board->turn -onlI==O) 336 if( ParkHead(,board)=O turn-off all heads(board); 337 if( board->turn -on2==0 338 if( ParkHead(2,board)=0 turn-off all heads(board); 339 if( board->urn 340 if( Park~lead(3,board)==0) turn-off all heads(board); :341 if( board->urn 342 if( Parkl-ead(4,board)=0) turn-off all heads(board); 343 if( board->turn 34 if( ParkHead(5,board)==0) turn-off all heads(board); :::346 if( board->board val =CANNOTCUT) 347 turn -off all -heads(board); 348 return; 349} 350 12miiucaiaelnt 351 12I iiumcrigelnt 352 if board->carriage length<MIN_-CARRIAGE-LEN) turnoff all_h1eads(board); 353 16" maximum lumber stop to left.
**354 if board->lumber-stop<MINLUMSTOP) turn-off all-heads(board); 355 maximum lumber stop to right.
356 if board->lumber Stop>MAXLUMSTOP) turn-off all-heads(board); 357 H/minimum 8" between hold-downs at center of saw.
358 if board->carriage length board->left hold down io 359 -board- 360 >right hold down-io MINHOLD CENTER) 361 362 turn-off all-heads(board); 363 H/minimum 8" between lumber carriage dogs at center of saw.
364_. if (board->carriage length board->left carriageio -46 365 board->right carriage _io+ 366 MINLUMCENTER) 367 368 turn-off all-heads(board); 369 370 371 372 373 mnt Head lTopHead2Bottom(Boardlnfo *board) H/Normal double-cut left end 374 375 float x-offset, max adj, min adj, adj, incr; 376 float x int; 377 378 set-board-to-zero(board, LEFT); 379 board->headl1=ConvertTol180(board->angles[l1]); 380 board->head2=ConvertTo I 80(board->angles[0]); 381 382 m in-adj=m in head ht( 1, board->head 1, board->ypts[2]); 383 max -adj=mnax head ht( 1, board->head 1, board->ypts[ 384 if(minadJ<MLNRHEADIUP) min-adj=MN-LEADI_UP; 385 if(max -adj>MAXHEADIUP) maxadj=MAXHEAD1-UP; 386 incr- 387 388 for (adJ=m.in adj; adj<max adj; adj=adj+incr) 389 x,_offset-- blade-x-loc(1,board->headl,board->ypts[1],0,adj); 390 x-int-- head-xloc(2,board->head2,x-offset,board->ypts[ 13,0); 391 392 board->htl =adj; 393 board->io2 =x-int; .394 :::395 if (headjparams-ok(1,board) headparams-ok(2, board)) :396 board->urn onll 398 board->turn on2=1 39 return 1; 400} 401} 402 return(0); I/tried everthing, 1 over2 just won't work....
403 404 405 mnt Head2TopHead IBottom(Boardlnfo *board) O 0 406 float x offset, max adj, mini adj, adj, incr; 408 float x-int; 409 410 set board to zero(board, LEFT); 41 bor-ha2Cnetolabad>nlsI) 411 board->headl=ConvertTolI80(board->angles[ 413 414 m in-adj=min head-ht( 1, board->head 1, board->ypts[ 415 max_adj~~max heaQ..ht( 1, board->head 1, board->ypts[0]); if(minadJ<MIN_HEAD 1_UP) min adJ=MIN_HEAD I_UP; 4 7 417 if(max-ad>MAXHEAD I_UP) max adj=MAX HEAD 1_UP; 418 incr- (min -adj-max-adj)/1O; 419 adj=max-adj; 420 for (adj=max adj; adj>min_adj; adj+=incr) 421 x,_offset-- blade -x -loc(1,board->headl,board->ypts[1],0,adj); 422 x-int-- head-xloc(2,board->head2,x-offset,board->ypts[ 13,0); 423 424 board->htl adj; 425 board->io2 x-int; 426 427 if (headparams ok(l1,board) headparams-ok(2,board)) 428{ 429 board->turn onl=l; 430 board->turnon2=[; 431 return 1; 432} 433} 434 return(0); 435 436 437 mnt Head3TopHead4Bottom(Boardlnfo *board) 438 439 float x-offset, max adj, min adj, adj, incr; 440 int top; 441 float x-int,y; 442 443 set-board-to--zero(board, RIGHT); 444 top=TopOfBoard(board); 445 board->head3=ConvertTol180(board->angles[top+ 446 board->head4=ConvertTo 1 80(board->angles[top+2]); 447 y--board->ypts[board->numpts-2]; HI elev of vertex point dbl-cut right 448 449 min_adj=min head_ht(3, board->head3, BoardHeight(board)/12.0); :::450 max adj=max head ht(3, board->head3, 0); 451 if(min -adj<MfN-HEAD3_UP) min adj=MI-NHEAD3_UP; 452 afxmaadlj>MAX_-HEAD3_UP) max-adj=MAX-HEAD3_UP; 453 incr-- a. 454 455 for (adj=min -adj; adj<max adj; adj+=incr) 456 x-offset=- blade -xI oc(3,board->head3,y,0,adj); 457 xint-- head-xIoc(4,board->head4,x-Offset,y,0); 458 459 board->ht3 =adj; 460 board->io4 x-mt; 461 462 if (headparams ok(3,board) headjparams ok(4,board) 463 lead ing__cut ok( 3, board)) 464{ 465 board->turn--on3=1; 466 board->turn- on4=I; 467 board->tumnonS=0; 468 return 1; 48 469} 470 471 472 return(O); H/tried everthing, 3over4 just won't work....
473 474 475 mnt Head4TopHead3Bottom(Boardlnfo *board) 476 H 1 Double cut using these blades...
4-17 float x-offset, max-adj, mm iadj, adj, incr; 478 float x -int, y; 479 int top; 480 set-board-to-zero(board, RIGHT); 481 top=TopOfBoard(board); 482 483 board->head4=ConvertTolI80(board->angles[top+1 3); 484 board->head3=ConvertTolI 80(board->angles[top+2]); 485 y=board->ypts[board->numypts-2]; HI elev of vertex point dbl-cut right 486 487 mm _adj=m in head ht(3, board->head3, BoardHeight(board)/ 12.0); 488 max-adj=max -head -ht(3, board->head3, 0); 489 if(min-adj<MIN_-HEAD3_UP) min adJ=MIN_HEAD3_UP; 490 if(maxadj>MAX_HEAD3_UP) max-adj=MAXHEAD3_UP; 491 incr-- (min 492 HI start at max height to minimzed holdown distance 493 adjmax-adj; 494 for (adjmax-adj; adj>min adj; adj=adj+incr) *495 x-offset-- blade -xI oc(3,board->head3,y,0,adj); ::'496 X-int- head-xloc(4,board->head4,x-offset,y,0); *9 .497 .498 board->hit3 adi; *499 board->io4 x-int; 4* 500 :::501 if (headparams ok(3,board) head~paramsok(4,board) 502 leading__qut ok( 3, board)) 503{ 504 board'>turn -on3=i; 506 **507 return 1; 508} *509} 510 return(0); H/tried everthing, 4over3 just won't work....
511 512 513 mnt Head5TopHead3Bottom(Boardlnfo *board) 514 {fDouble cut using these blades...
515 float x-offset, max adj, mm _adj, adj, incr; 516 float x -int'0O, y, xtop ,ytop; 517 int top; 518 set-board-to-zero(board, RIGHT); 519 top=TopOfBoard(board); 520 49
I
521 board->head5=ConvertTo 1 80(board->angles [top+ 1I]); 522 board->head3=ConvertTo I 80(board->angles[top+2]); 523 y--board->ypts[board->numjpts-2]; elev of vertex point dbl-cut right 524 525 minadj=min head ht(3, board->head3, BoardHeighit(board)/ 12.0); 526 max -adj=max head ht(3, board->head3, 0); 527 if(min -adj<MNHEAD3_UP) min adJ=MINHEAD3_UP; 528 if(max-ad>MAX_HEAD3_UP) max-adj=MAX-HEAD3_UP; 529 incr-- (min -adj-max -adj)/ 530 HI start at max height head3 to minimzed holdown distance 531 for (adj=max adj; adj>min adj; adj=adj+incr) 532 x,_offset-- blade-xIoc(3,board->head3,y,O,adj); 533 x -int-- board->xpts[top+l] board->xpts[top+2] x-offset; 534 HI head-x loc(5,board->head4,x-offset,y,O); 535 headS -mini-It- maxIo( &xtop, &ytop, board->head5, x-int, y); 536 board->io5 xtop; 537 board->ht5 ytop; 538 539 if( headparams ok(3,board) 540 lead ing_cut-ok( 3, board)) 541{ 542 board->turni~n3=1 543 board->turn 544 board->turn -on5=1; 545 return 1; 546} 547 548 return(0); H/tried everthing, Sover3 just won't work....
*549 :550 551 C552 ine Head5TopHead4Bottom(Boardlnfo, *board) :::553 {IDouble cut using these blades...
554 float x-offset, adj; 555 float x-int, y; 556 int top; 557 set-board-to-zero(board, RIGHT); 558 top='TopOfBoard(board); 559 560 board->head5=ConvertTo 1 80(board->angles [top+ 561 board->head4=ConvertTo I 80(board->angles[top+2]); 562 563 y=board->ypts[board->numpts-2]; /H elev of vertex point dbl-cut righit 564 adj=min -head -ht(5, board->head5, BoardHeight(board)/ 12.0); 565 if(adj<MIN -_HEADS UP) adj=MJN HEADS_UP; 566 x-offset- blade-x Ioc(5,board->head5,y,0,adj); II xoffset at ioSO0 567 568 board-> io4=head-x-loc( 4, board->head4, x-offset, y, 0) 569 if(board->io4>MAXIHEAD4 570 ximt =board->io4 MAX_-HEAD4_-10; II move both 4&5 to the left 571 board->io5 =board->io5 xint; 572 board->io4 board->io4 x-int; 573} 574 if( precut~for -head4(board) precut -for eiad4(board)) 575 if (head _params -ok(4,board) headparams-ok(5, board) 576 lead ing__cut ok( 3, board)) 577{ 578 board->turn-on31 579 board->turn -on4=1 580 board->turn -on5=1 581 return 1; 582} 583} 584 return(0); H/ Sover4 won't work....
585 586 587 mnt ScissorRight4Bottom(Boardlnfo *board) 588 H I Scissor cut using these blades... 5-3-4 589 float x -offset; 590 float x,_int=0O, y, xtop ,ytop; 591 inttop; 592 set-board-to-,zero(board, RIGHT); 593 top=TopOfBoard(board); 594 595 board->head5=ConvertTol180(board->angles[top+ 596 board->head3=ConvertTo 1 80(board->angles[top+2]); 597 board->head4=ConvertTolI 80(board->angles[top+3]); 598 board->ht3=max_head_ht(3, board->head3, 0); 599 600 y=board->ypts[board->numpt-s-2]; HI elev of seat-butt point 601 x offset-= blade x loc(3,board->head3,y,0,board->hit3); fixof same 602 board->io4=head -x -loc( 4, board->head4, x offset, y, 0) 603 if(board->io4>MAX_H-EAD4_10) return(0); 604 *605 y--board->ypts[board->numpts-3]; HI elev of scarf-butt point 606 x-offset-- blade -x loc(3,board->head3,y,0,board->ht3); //ix of same 607 xint-- x-offset board->xpts[board->numjpts-3] board->xpts[board->numpts- 608 609 headS -minHt-Maxlo( &xtop, &ytop, board->head5, x-nt, board->ypts [board- 610 >numpts-4]); 611 board->io5 =xtop; 612 board->ht5 ytop; 613 614 if( leading cut ok( 3, board) headparams ok(3,board) 615 headjparams ok(4,board) headjparams 616{ 617 board->turn-on3=1 618 619 board->turn -on41 620 return 1; H/ works Stop 3 butt 4bottom 621} 622 623 return(0); HI Sover4 won't work....
624 51 625 626 mnt ScissorRight3 Bottom(Boardlnfo *board) 627 IScissor cut using these blades... 5-4-3 628 float x offset; 629 float x -int-z-0, y, xtop ,ytop; 630 int top; 631 set -board -to_zero(board, RIGHT); 632 top=Top~fBoard(board); 633 634 board->head5=ConvertTolI 80(board->angles [top+ I]) 635 board->head4=ConvertTo 1 80(board->angles[top+2]); 636 board->head3=ConvertTo, 1 80(board->angles[top+3]); 637 board->ht3=max -head -ht(3, board->head3, 0); 638 if( leading cut_ok( 3, board)) return(O); H/cannot cut thru board 639 640 y--board->yptstboard->numjpts-2]; HI elev of seat-butt point 641 x -offset-- blade-)x loc(3,board->head3,y,0,board->ht3); HI x of same 642 board->io4=head x loc( 4, board->head4, x-offset, y, 0 643 if(board->io4>MAX_H-EAD4 10 11 board->io4<MIN_-HEAD4 10) return(0); 644 645 y=board->ypts[board->numjpts-3]; //elev of scarf-butt point 646 x offset-- blade-)x-loc(4,board->head4,yboard->io4,0); HI x of same 647 x int-- board->xpts[board->numpts-4] board->xpts~board->numpts-3] 648 x offset; 649 headS -minHt-maxlo( &xtop, &ytop, board->head5, xint, board->ypts[board- 650 >numjts-4]); 651 board->io xtop; 652 board->ht5 ytop; 654 if( leading cut -ok( 3, board) head params-ok(3,board) 655 headparams-ok(4,board) headjparams-ok(5, board)) 656{ 657 board->turn on3=1; 658 board->turn_onS=1; 659 board->turn -on4=1; 660 return 1; H/works Stop 4butt 3bottom 661} 662 663 return(0); 5over4 won't work....
66 void FlipLeftRight(Boardlnfo *board) 666 667 int i; 668 float angles[ I0],length[1O0); 669 CopyFloatArray(board->angles,angles, 670 CopyFloatArray(board->length,length, 671 for(i= I ;i<=BottomOfloard(board); 672 board->angles[i- I *angles[(BottomOfBoard(board)- i]; 673 if (board->angles[i- 1 board->angles[i- 1 674 board->length I1]=Iength[BottomOfBoard(board)- i]; 675} 676 52 677 678 void Ft ipTopBottom(Boardlnfo *board) 679 680 mnt i,top,bot; 681 float angles[ 10],Ilength[1I0],tmplen; 682 top=TopOfBoard(board); 683 bot--BottotnOfBoard(board); 684 CopyFloatArray(board->angles,angles, 685 CopyF loatArray(board->length,Ilength, 686 for(i=1 687 board->angles[top-i]=- I *aflgles[j.. 1I 688 if (board->angles[top-i]==-90) board->angles [top- 689 board->length [top- i]=length 1]; 690} 691 for(i=0;i<={bot-top);i++){ 692 board->angles[bot-i=- I *ainge[top+j]; 693 if (board->angles[bot-i] -90) 694 board->Ilength [bot- i] =length [top+ i]; 695} 696 tmplen=board->toplen; 697 board->toplen=board->bot_len; 698 board->bot-len--tmplen; 699 700 701 void CopyBoard(Boardlnfo *from,Boardlnfo *to) 702 f 703 to->type=from->type; 704 to->num edges=from->num edges; 705 CopyFloatArray(from->angles,to->angles, ::706 CopyFloatArray(from->Iength,to->length, 707 to->numjpts=from->numjpts; 708 CopyFloatArray(from->xpts,to->xpts, 709 CopyFloatArray(from->ypts,to->ypts, 710 to->board -val=from->board-va[; 711 to->headl=from->headl; 712 to->head2=frorn->head2; 713 to->head3=frorn'>head3; 715 to->head4=from->head4; 71 o>ed=fo-ha4 716 to->htlfrom->htl; 717 to->ht2=from->ht2; 718 to->ht3=from->ht3; 719 720 to->ht4=from->ht4; 721 to->iolfrom->iol; 722 to->io2=from->io2; 723 to->io3=from->io3; 724 725 to->io4=from->io4; 726 to>ethl-onfrm>ethl-on 727 to->right hold down=from->right hold_down; 728 to->left-hold-down io=from->left-hold-down-io; -53 729 to->right -hold -down io=from->right-hold_down_io; 730 to->left carriage__io=from->left carriage_io; 73 1 to->right -carr iage_iofrorn->right carriage io; 732 to->carriage Iength=from->carriage _length; 733 to->toplen=from->toplen; 734 to->bot -lenfrom->bot_len; 735 to->Ionglen~from->Iong~len; 736 to->turn- onl=from->tur_onI; 737 to->turn- on2=from->tur_on2; 738 to->turn- on3=from->tur_on3; 739 to->turn- 740 to->tum -on4=from->tum on4; 741 to->lumber stop=from->lumber stop; 742 743 744 void Make4Boards(Boardlnfo *bl,Boardlnfo *b2,Boardlnfo *b3,Boardlnfo *b4) 745 746 CopyBoard(b 1 ,b2); 747 CopyBoard(b I ,b3); 748 CopyBoard(bl ,b4); 749 750 if (UnFlipableBottomChord(bl)){ 751 FlipLeftRight(b2); 752 FlipLeftRight(b3); 753} 754 else{ 755 FlipLeftRight(b2); 756 FlipLeftRight(b3); ~.:757 FlipTopBottom,(b4); S 760 Figureoutoeightbbl) 761 FigureOutHeight(b2); 762 FigureOutHeight(b3); 763 FigureOutHeight(b4); 764 CacF inue~ tse(bl); 765 CalcPoints(b2); 766 CalcPoints(b3); 767 CalcPoints(b4); 768 769 770 void MakelIBoards(Boardlnfo *bl) 771 772 773 if (rotate~l) 774 FlipLeftRight(bl); 775 else 776 FlipTopBottomn(bl); 777 FigureOutHeight(b 1); 778 CalcPoints(b 1); 779 780 -54- 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 void set board to zero(Boardlnfo *board, int end-of piece) switch (end-Of piece) case LEFT: case RIGHT: board->head 1 board->head2=90; board->htl=0; board->io board->tur-n on board->head3=90; board->head5=90; board->head4=90; board->turn- board->turn- a a board->carriagejength=0; void turn-off alhasBrdno* board) board->turn-onl=0; board->tum board->board-val=CANNOTCUT; int CutBoard(Boardlnfo *board) int max,i; HI double okAngles; BoardInfo boards[4]; CopyBoard(board,&boards[0]); if (rotate0O) I w 1 Ll 55 m 833 834 835 836 837 838 839 840 841 842 H 843 H 844 H 845 H 846 H 847 H 848 849 850 851 852 H 853 854 855 856 857 858 859 860 861 vo 862 863 864 865 866 867 868 869, 870 871 872 873 8 7 4 875 876 877 878 879 880 881 882 883 884 {Make4 Boards(&boards &boards 1I boards &boards 131) max=0O; for boards [i].board-vahti Ass ignHead(&boardsi]); for if (boards[i].board-val !=CAN NOT-CUT) max=i; AssignPointValue(&boards[i]); temp. until recode of AssignPointValue boards board-val)=i; els max=0O; for (i=1 if (boards[max] .board val boards[i] .board val) mnaxi; Make 1 Boards (&boards Ass ignHead(&boards[0]); AssignPointValue(&boardslO]); max=0; CopyBoard(&boards [max], board); if (rotate 0) return(1); else return(0); HI new a a.
*4~
S
0 00 a
S
*55 a S S S
S
S
05.505 a id get -blade -offsets( mnt head-num, float *Phi, float float *Hcl, float *DIA) H/ backfilIls blade offset values into addresses passed as arguments.
switch (head num) case 1:
*H=PPHI;
*DIA=ffiAD1_DIA;} break; *Ph=PHl; *Hcfr=0; case 2: case 3: case 4: *H=PPH2; break; *H=PPH3; break; *H=PPH4; break; *H=PH5; break; *Ph=PH2; *Hcl=HCL2; *Ph=PH3; *Hcl=O; *Ph=PH4; *HcI=HCL4; *Ph=PH5; *HcI=O; *DIA=HEAD2_DIA;} *DIAzFfJAD3_DIA;} *DIA=HEAD4_DIA;} case 56 885 float max_head ht( int head_num, float angle, float Y) 886 return maximum head up/down at a Mastersaw angle so that 887 H the lower tip of the blade barely clears the Y distance 888 889 float Hcl, Ph, H, DIA; h,PH,H head data local variables 890 float Ty; H coordinates of the blade face center 891 float dHy=O, IO=0; 10 values 892 float h3_motor8.75/12; I diameter of head 3 motor housing 893 894 angle=DegToRad(angle); 895 get bladeoffsets( headnum, &Ph, &Hcl, &DIA); 896 if(head_num=3) 897 DIA= 2*(sqrt((DIA*DIA/4)-(h3_motor/2 +0.125)*(h3_motor/2+0.125))); 898 /Needed for cut-off end of board to clear motor housing 899 900 Ty Y (DIA/2 MIN_TIP OFFSET)*sin(angle); 901 dHy Ty Ph*sin(angle-PI/2) Hcl*sin(angle) H; 902 IO-dHy; 903 904 return 905 906 907 float min head ht( int head_num, float angle, float Y) 908 return minimum head up/down at a Mastersaw angle so that 909 I the upper tip of the blade barely clears the Y distance 910 911 float Hcl, Ph, H, DIA; H h,PH,H head data local variables **912 float Ty; I height of the blade face center 913 float dHy; H IO values 914 float h3 motor8.75/12; I diameter of head 3 motor housing 915 float hi motor-9.0/12; H diameter of head 1 motor housing 916 917 angle=DegToRad(angle); 918 get blade offsets( headnum, &Ph, &Hcl, &DIA); 919 if(headnum=l) 920 DIA= 2*(sqrt((DIA*DIA/4)-(h 1_motor/2 +0.125)*(h lmotor/2+0.125))); S921 if(headnum=3) 922 DIA= 2*(sqrt((DIA*DIA/4)-(h3motor/2 +0.125)*(h3motor/2+0.125))); 923 I Needed for cut-off end of board to clear motor housing 924 925 Ty Y (DIA/2 MIN_TIPOFFSET)*sin(angle); 926 dHy Ty Ph*sin(angle-PL/2) Hcl*sin(angle) H; 927 928 return (dHy); 929 930 931 void headS _minHt maxlo( float *io5, float *up5, float angle, float x, float y) 932 returns to io5,up5 the head5 position at a Mastersaw angle so that 933 the upper tip of the blade barely clears the x,y point 934 935 float Hcl, Ph, H; h,PH,H head data local variables 936 float Tx, Ty, DIA; coordinates of the blade face center 57 937 float di-ly, dHx; H/10 values 938 939 angle=DegToRad(angle); 940 get blade-offsets( 5, &Ph, &Hcl, &DIA); 941 942 Tx x (DIA/2 MIN-TIP -OFFSET)*cos(angle); 943 Ty y (DIA/2 MINTIP -OFFSET)*sin(angle); 944 dHx= Tx Ph*cos(angle-PII2) Hcl*cos(angle) Ph; HI best position to 945 dHy=- Ty Ph*sin(angle-PI/2) Hcl*sin(angle) H; HI avoid hold-downs 946 947 if(dHx>MAXJHEAD5 10) HI keep point in range...
948 949 951 956 coordinates of the blade face center 957 958 angle=DegToRad(angle); 959 get blade-offsets( head num, &Ph, &Hcl, &DIA); 960 961 Tx Ph*cos(angle-PI/2) Hcl*cos(angle) -Ph dHx; 962 Ty -Ph*sin(angle-PI/2) Hcl*sin(angle) H dHy; 963 964 X Tx (Y Ty)/tan(angle); 966: return 967 float head x loc(int head num, float angle, float X, float Y, float 971 /returns the head in-out for aMastersaw angle thru a point 972 H/For Head 5, also use its head elevation, 0 default.
973 :974 float Hcl, Ph, H, DIA; H1 h,PH,H head data local variables 975 float Tx,Ty; HI coordinates of the blade face center *976 float dHx=0, dHy=0, 10=0; ff10 values *977 978 angle=DegToRad(angle); 979 get blade-offsets( head num, &Ph, &Hcl, &DIA); 980 981 switch (head num) 982 case 1: 983 10=0; 984 break; 985 case 2: 986 {Ty=-Ph*sin(angle-PI/2)+Hcl*sin(angle)+dHy+H; 987 Tx=X+(Y-Ty)/tan(angle); 988 dHx=Tx+Ph+Hcl*cos(angle)-Ph*cos(angle-PII2); -58- 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 break; case 3: 10=0; break; case 4: Ty---Ph*sini(angle-P1/2)+Hcl*sin(angle)+dHy+H; Tx--X+(Y-Ty)/tan(angle); dHx=Tx+Phi+Hcl*cos(angle)-Ph*cos(angle-PI/2); IO-dHx; break; case {dHy Ty--Ph*sin(angle-PI/2)+Hcl*sin(angle)+dHy+H; Tx-X-+(Y-Ty)/tan(angle); dHx--Tx+Ph+Hcl *cos(angle)-Ph*cos(angle.P1/2); IO=dHx; break; return(I0); float heady Ioc( int head-num, float angle, float X, float Y, float H I returns the head up/down for a Mastersaw angle thru a point /H For Head 5, also use its head x-offset, 0 default.
a. a. a 0 4 a..
a .3 4 float Hcl, Ph, H, DIA; H/ h,PH,H head data local variables float Tx,Ty; HI coordinates of the blade face center float dHx=0, dHy=0O, 10=0; /110 values angle=DegToRad(angle); get blade-offsets( head num, &Ph, &I-cl, &DIA); switch (head num) case 1 cas case case Tx=Ph*cos(angle-PI/2)-Hcl *cos(angle)+dI.x..Ph; Ty--Y+(X-Tx)/tan(angle); dHy--Ty+Ph*sin(angle-PI/2)-Hcl*sin(angle)-H; I0=dHy; break; 10=0; break; Tx=Ph*cos(angle-P1I2)-Hcl *cos(angle)+dHx..Ph; Ty=Y+(X-Tx)/tan(angle); dHy=-Ty+Ph*sin(angle-Pl/2)-Hc1*sin(angle)-lH; break; 10=0; 59 'K
I
1041 break; 1042 case 1043 {dHx 1044 Tx--Ph*cos(angle-PI/2)-Hcl*cos(angle)+dHx-Ph; 1045 Ty--Y+(X-Tx)/tan(angle); 1046 dHy--Ty+Ph*sin(angle-PI/2)-Hcl*sin(angle)-H; 1047 IO=dHy; 1048 }break; 1049} 1050 return(IO); 1051 1052 1053 float blade-bottom elev( int head-num, float angle, float dHy) 1054 Ireturn elevation of the lower edge of a blade at a certain angle 1055 H/the lower tip of the blade barely clears the Y distance 1056 1057 float Hcl, Ph, H; HI h,PH,H head data local variables 1058 float Y, Ty, DIA; HI coordinates of the blade face center 1059 1060 angle=DegToRad(angle); 1061 get blade-offsets( head-num, &Ph, &Hcl, &DIA); 1062 1063 1064 Ty---Ph*sin(angle-PI/2)+Hcl*sin(angle)+dHy+H; 1065 Y Ty sin(angle)*(DIAI2-MINTIPOFFSET); 1066 return 1067 *1068 ::1069 float blade top__elev( mnt head-num, float angle, float dHy) ~.:1070 H Ireturn elevation of the upper edge of a blade at a certain angle :1071 I/the upper tip of the blade barely clears the Y distance *::1072 float Hcl, Ph, H; HI h,PH,H head data local variables 1074 float Y, Ty, DIA; HI coordinates of the blade face center 1075 1076 angle=DegToRad(angle); 1077 get blade-offsets( head num, &Ph, &Hcl, &DIA); .~1078 ::1079 Ty=-Ph*sin(angle-PII2)+Hcl*sin(angle)+dHy+H; *1080 Y Ty sin(angle)*(DIAl2-MINTIPOFFSET); *:.:1081 return *1082 1083 :1084 float blade -inside -tip( mnt head -num, float angle, float dHx) 1085 H /returns offset of the inner blade tip at a certain Mastersaw angle 1086 1087 float Hcl, Ph, H; H/ h,PH,H head data local variables 1088 float x, Tx, DIA; II coordinates of the blade face center 1089 1090 angle=DegToRad(angle); 1091 get -blade -offsets( head -num, &Ph, &Hcl, &DIA); 1092 II Ty -Ph*Sin(angle-PI/2) Hcl*sin(angle) H dHy; 60 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 Y Ty sin(angle)*(D1AI2-MINTIPOFFSET); Tx Ph*cos(angle-PI/2) Hcl*cos(angle) -Ph dHx; switch (head num) case cas case case 1: if(angle<(PI/2)) x--Tx+cos(angle)*(DIAI2); else x--Tx-cos(angle)*(DIAI2); break; 2: if(angle<(PI/2)) x=-Tx+cos(angle)*(DIAI2); else x=Tx-cos(angle)*(D1AI2); break; 3: if(angle<(PI/2)) x=Tx-cos(angle)*(DIAI2); elso x--Tx+cos(angle)*(DIAI2); break; 4: if(angle<(PII2)) x=Tx-cos(angle)*(DIAI2); else x=Tx+cos(angle)*(DIAI2); 6 6*
S
o S
S
55 5 5* *5
S
*5 S S C
S
S
.5* 5* 5655&
S
C
SC..
S
break; case {if(angle<(PI/2)) x-Tx-cos(angle)*(DIAI2); else x=Tx+cos(angle)*(DIA/2); break; return int lead ing_cut ok(int head-num, BoardInfo *board) H I will the blade cut through the entire board? float height, angle; float m3_offset--3.5/12.0, proj scarf; H/end of motor3 to blade face height BoardHeight(board)/ 12.0; switch (head num) case 2: {angle=DegToRad(board->head2); if (blade -bottom-elev( head num, board->head2, 0) 0) return(0); if (blade top_.elev( head-num, board->head2, board->ht2) height) return(0); if~board->head2 90 H/check for cut-off corner hitting motor first {projscarf blade_x_loc(2,board->head2, 0, board-> io2, 0) board- >lumber-stop; if( proj scarf'~sin(angle) m3 offset return(0); else I proj scarf blade-x,-loc(2,board->head2,heighit,board->io2,0) board->lumber stop; if( proj scarf~sin(PI-angle) m3 offset return(0); 61 1145 return(1); 1146 1147 case 3: 1148 {if (min head ht( 3, board->head3, height) MAXHEAD3_UP) return(O); 1149 f(m axhead-ht( 3, board->head3, 0) MIN_-HEAD3 -UP) retumn(0); 1150 /*if (blade-bottom-elev( head num, board->head3, 0) 0) return(0); 1151 if (blade top elev( head-num, board->head3, board->ht3) 1152 height) return(0); 1153 */return(1); 1154} 1155} 1156 return(0); 1157 1158 1159 mnt headjparams -ok(int head-num ,Boardlnfo *board) 1160 H Iis the head within its range of movement? 1161 mnt dummy=0; 1162 1163 switch (head -num) 1164 case 1: 1165 if( board->headl>=(float)MfN HEAD 1 board- 1166 >headlI<=(float)MAX-HEAD1I 1167 board->htl>=(float)MJNHREAD1_UP board- 1168 >htl<=(float)MAX_-HEADI UP) dummy=1; 1169 }break; 1170 case 2: 1171 if( board->head2>=(float)MIN HfEAD2 board- *1172 >head2<=(float)MAX HEAD2 01173 board-> io2>=(float)MINHEAD2_10 board- 1174 >io2<=(float)MAX_HEAD2 10) dummy=1; .:1175 1break; :::1176 case 3: 1177 if( board->head3>=(float)MIN HIEAD3 &&board- 1178 >head3<=(float)MAX-HEAD3 1179 board->ht3>=(float)MINHEAD3_UP board- 1180 >ht3<=(float)MAXHEAD3_UP) dummy-1; 1181 }break; 1182 case 4: 1183 if( board->head4>(float)M.N1-EAD4 board- 1184 >head4<=(float)MAXHEAD4 .*1185 board->io4>=(float)M[NHREAD4_JO board- 1186 >io4<=(float)MAXHEAD4_10) dummyl; *1187 }break; 1188 case 1189 if( board->head5>=(float)MIN HEADS board- 1190 >head5<-(float)MAX HEADS 1191 board->ht5>=(float)MIN HEADS_UP board- 1192 >ht5<=(float)MAX_HEADS_UP 1193 board->io5>=(float)MIN HEADS_10 board- 1194 >io5<=(float)MAXH1EADS 10) dummyl; 1195 break; 1196 62 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217' 1218 1219 1220 1221 :~:1222 1223 ::.1224 :1225 1226 .:1227 1228 1229 1230 ~***1231 1232 1233 1234 1235 *1236 1237 1238 *1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 return(dum my); void 9-A -carriage length( Boardlnfo *board) H I sets the carraige length in, board structure based on which blades make the bottom cut.
float left-offset=-0, right-offset=-0, bottom length; bottom-length board->xpts[board->numjpts-1I] board->xpts[0]; switch (board->bottom-blade-left) case 1 left -offset-- blade-x-loc(lI,board->headl1,0,0~board->ht break; case 2: left-offset=- blade-x loc(2,board->head2,0,board->io2,0); break; switch (board->bottom-blade right) case 3: right -offset-- blade-x loc(3 ,board->head3 ,0,0,board->ht3); break; case 4: right -offset-- blade-x loc(4,board->head4,0,board->io4,0); break; case right offset-- blade-x ioc(5,board->head5,0,board->io5,board->ht5); break; board->carriage length bottom-length left-offset right-offset; void set-lumber stop( Boardlnfo *board) H Isets the lumber stop at the moving end after rest of Boardinfo HI has been filled out.
int i; float left-offset0O x-min=0, lumber-Stop offset-LUMBERSTOPMIN; for(i=0; i<board->numjpts; if( board->xpts[i]<x mmn) x,_min=board->xpts[i];} switch (board->bottom-blade-left) case I1: left offset= blade-x-loc( I,board->headl1,0,0,board->ht 1); break; case 2: left -offset-- blade-xIoc(2,board->head2,0,board->io2,0); break; board->lumber-stop left-offset lumber stop offset x-mm; 63 1249 int single Tcut Ihead_ 1 (Boardlnfo board) 1250 ICan head I be used for single cut of angles[0] 1251 float angle,height; 1252 1253 he,'ght-BoardHeight(board)/ 12.0; HI Feet 1254 set-board-to-zero(board, LEFT); 1255 angle=ConvertTo 1 80(board->angles[0]); 1256 if( angle<MINHEAD 111i angle>MAX HEAD I 1257 1258 1259 1260 1261 1262 1263 1264 d->lumber-stop LUMBERSTOPMIN; 1265} 1266 else 1267 board->head2=90; H/90 degrees, full left (shouldn't happen) 1268 board->io2=MINHEAD2_10; 1269} 1270 if(board->io2<MfhNHEAD2 10) board-> io2=MIN_-LEAD2_1 0; 1271 1272 board->tumn onl=1; 1273 .1274 1275 if headjparams ok(1,board) return(1); 1276 return(0); *1277 H /end single-Cut-headI S 1278 m igectha (orlf bad 1279 nsigectha (ornf*bad *1280 H fCan head 2 be used for single cut of angles[0] 1281 float angle,height; 1282 set-board-to--zero(board, LEFT); 1283 angle=ConvertTo 1 80(board->angles[0]); 1284 height-BoardHeight(board)/ 12.0; H/Feet 1285 :1286 if( angle<MIN_-HEAD2 11angle>MAX HEAD2 )return 0; fangle out of range 1287 if( blade-bottom-elev( 2, angle, 0)>0 return 0; f/blade must clear *1288 if( blade top__elev( 2, angle, 0)<height) return 0; If top&bot of board 1289 1290 board->head2=angle; *1291 if (board->xpts[0] board->xptsljl]) If 0-90 Mdegrees 1292 board->io2= head -x -loc(2,board->heaCl2,board->xpts[1I],board- 1293 >ypts[l ],0)+LUMBERSTOPMIN-board->xpts[ 1]; 1294 else 1295 board->io2= head -x -loc(2,board->head2,board- 1296 >xpts[0],0,0)+LUMBERSTOPMfN-board->xpts[0]; 1297 1298 if(board->io2<MIN_-HEAD2 10) board->io2=MIN_-HEAD2_10; 1299 if(board->io2>MAXHEAD2 10) board->io2=MAXHEAD2_10; 1300 64
I
1301 board->bottom blade-left-2; 1302 1303 set-lumber stop(board); 13C4 if (board->lumber -stop 0) I/ok as is 1305 board->headl=9O; /left of lumber stop, 90 degrees 1306 board->htl=O; 1307} 1308 1309 if !Ieading cut -ok( 2, board)) return(0); Icannot cut thru board 1310 if( ParkHead(1,board) -0 return(0); 1311 1312 board->turn_on21l; 1313 board->turn-onlO 1314 if headjparams ok(2,board) return(1); 1315 1316 return(0); 1317 1318 1319 mnt single -cut -head -3(Boardlnfo *board) 1320 H /Can head3 make this single-cut? 1321 float angle,height; 1322 set-board-to-zero(board, RIGHT); 1323 angle=ConvertTo 1 80(board->angles[TopOfBoard(board)+ 1324 height-BoardHeight(board)/ 12.0; 1325 1326 if( angle<MINHEAD3 11angle>MAX -HEAD3 return 0; I/angle out of range 1327 if( max-head ht( 3, angle, 0)<M[NHEAD3 UP return 0; I/blade must clear *1328 if( min head ht( 3, angle, height)>M4AXHEAD3_UP return top&bot of board *1329 :::1331 board->hea3=ain ead ht(3, board->head3, height); :1332 if( board->ht3<MIN_HEAD3 UP board->ht3=MIN_HEAD3_UP; 1333 1334 if( (ParkHead(5,board)1I) (ParkHead(4,board)1)) 1335{ 1336 board->turn_on3=1; 1338 1339 if headjparams ok(3,board) headparams-ok(4,board) 1340 headjparams-ok(5,board)) return(1); 1341} *1342 es *1343 es 1344 1345 1346 1347} 1348 1349 return(0); 1350 1351 1352 mnt single cut-head_4(Boardlnfo *board) 1353 {ICan head4 make this single-cut? 1354 float angle,height; 1355 float topxoffset,botxoffset; 1356 float park offset-- 0.25/12; H11/4" 1357 set -board to -zero(board, RIGHT); 1358 angle=ConvertTol180(board->angles[TopOfBoard(board)+ 1359 height--BoardHeight(board)/12.0; 1360 1361 if( angle<MIN EAD4 11angle>MAX HEAD4 return 0; H/angle out of range 1362 if( blade-bottom elev( 4, angle, 0)>0 return 0; HI blade must clear 1363 if( blade top elev( 4, angle, 0)<height return 0; HI top&bot of board 1364 HI setting up head 4 to precut with 3 at 90 degrees 1365 board-> head4=angle; 1366 topxoffset- head-x-loc(4,board->head4,0,height,0); 1367 botxoffset-- head-x-loc(4,board->head4,0,0,0); 1368 if( topxoffset>botxoffset) I/setting io4 to clear head3 1369 1370 board->io4= botxoffset park-Offset; 1371 else 1372 board->io4= topxoffset park-offset; 1373H 1374 setting io4 back in range if out 1375 if(board->io4<MIN_HEAD4_10) board->io4=MIN_I-EAD4_10; 1376 if(board->io4>MAX_HEAD4_10) board->io4=MAX HEAD4_10; 1377 1378 if( precut-for-head4(board)) 1379{ *1380 board->turn on4=1[ 1381 board->turn_o9n31l 1382 1383 if headjarams ok(4,board) )return(1); 1384} 1385 I 1386 return(0); .,1387 1388 1389 mnt single -cut -head 5(Boardlnfo *board) o: 1390 H /Can headS make this single-cut? *1391 float angle,height; 1392 set -board -to -zero(board, RIGHT); 1393 angle=ConvertTo I 80(board->angles[Top~fBoard(board)+ *1394 height-BoardHeight(board)/1 *1395 1396 if( angle<MIN -HEADS 1 angle>MAX HEADS return 0; HI angle out of range 1397 if( max -head ht( 5, angle, 0)<MINHEADS UP return 0; I/blade must clear 1398 if( mm ihead ht( 5, angle, height)>MAXHEADSUP return 0; HI top&bot of board 1399 1400 board->head5=ConvertTo 180(board->angles[Top~fBoard(board)+ 1401 board->ht5=min -head ht(5, board->head5, height); 1402 if( board->ht5<MNHE ADS UP 1403 board->io5= -head6xloc(5,board->head5,0-LUMBERSTOPMfN,0,board->hit5); 1404 I/lower tip to clear 1/4",O) 66 1405 if~board->io5<MIN_HEAD5_lO) board-> io5=MINH EAD5_10; 1406 if(board->io5>MAX_HEAD5_10) board-> 1407 1408 if( prec ut-for-head 1409{ 1410 board->tur_on5=1' 1411 1412 board->turn_on3=1' 1413 if headparams ok(5,board) )return(1),; 1414} 1415 return(0); 1416 1417 1418 void set -material -and -hold -down -io(Boardlnfo *board) 1419 H /sets the carriagc and hold down in-outs 1420 I/to avoid blades in BoardInfo 142, 1 float blade_1, blade 2, blade 3, blade_4, 1422 float tip 1, tip_2, tip_3, tip_4, 1423 float y=3.0/12; I/carriage dog height 1424 float hold-offset-- 2.0/12, carriage _offset-- 1.0/ 12; 1425 float Hlddown, Material; 1426 1427 board->iol =0; 1428 board->ht2 0; 1429 board->io3 0; *1430 board->ht4 0; 14321 board->left carriage io=carriage _offset; 1433 board-> left-holId down io=hold offset; 435 board->right carriage io=-carriage _offset; 1436 board->right hold down io=-hold_offset; 1437 1438 /LEFT 1439 tip 1=blade-inside-tip(1,board->head l,board->iol); 1440 if(board->head 1 90 1441 y-0.25 (1 sin(DegToRad(board->headl)))/12.0; at 90 deg, 4"at 0or *1442 180 *1443 blade_-I =blade x-loc(lI,board->headlI,y,board->iol1,board->ht 1); 1444 if (blade -I tiplI) bladeI 1=tip_1; 1445 Material blade_1 +hold offset' *1446 Holddown--tipl+hold-offset' *1447 if (Material+hold-offset) Holddown Holddown.=Material+hold offset; 1448} 1449 else 1450 Material--tipl+hold-off-set; 1451 Holddown=Material+hold-offset' 1452 1453 if (board->left-hold-down-io<Holddown) board->left-hold-down-io=Holddown; 1454 if (board->Ieft-carriage _io<Material) board-> left-carriage io=Material; 145! 145 -67 1457 tip_ 2=blade -inside -tip(2,board->head2,board->io2); 1458 if(board->head2 90 1459 y-0.25 (I sin(DegToRad(board->head2)))/12.0; at 90 deg, 4" at 0 or 1460 180 1461 blade_-2=blade-x loc(2, board->head2,y, board-> io2, board->ht); 1462 if (blade -2 tip 2) blade_2=-tip_2; 1463 Material blade_2+hold-offset; 1464 Holddown--tip_2+hold offset; 1465 if (Material+hold-offset) Holddlown Holddown=Material+hold-offset; 1466} 1467 else 1468 Material--tip2+holdl_offset; 1469 Holddlown=Material+hold_offset; 1470 1471 if (board->left-hold-down-io<Hlolddown) board-> left-hold-down-io=Holddown; 1472 if (board-> left-carriage io<Material) board-> left-carriage io=Material; 1473 1474 HI board->left carriage _io+=carriage offset; 1475 HI board->lefthold-downi-io+=hold-offset; 1476 1477 if( board->left-hold-down-io-board->left-carriage _io hold-Offset) 1478 board->left-hold-down io board->left-carriage,_io hold-offset; 1479 1480 HIRIGHT 1481 1482 tip 3=blade -inside -tip(3 ,board->head3 ,board->io3); **.1483 if(board->head3 90 0.1484 y=-0.25 (1 sin(DegToRad(board->head3)))/12.0; HY3 at 90 deg, 4" at 0 or *1485 180 *:1486 blade_-3=blade -x -lIoc(3, board-> head3,y, board-> io 3, board-> ht3); :0:1487 if (blade 3<tip_3) blade 3=-tip_3; :::1488 Material blade_3-hold-offset; 1489 Holddown--tip 3-hold-offset; 1490 if( (Material-hold-offset) Holddlown Holddown=Material-hold-offset; 1491} 1492 else 1493 Material-tip_3-hold-offset; 1494 Holddown=Material-hold-offset; :1495} 1496 if (board->right -hold -down -io>Holddown) board- 1497 >right hold down io=Holddown; :1498 if (board->right carriage io>Material) board->right carriage io=Material; 1499 1500 tip_4=blade_inside tip(4,board->head4,board->io4); 1501 if(board->head4 90 1502 y =0.
25 (1 sin(DegToRad(board->head4)))/12.0; at 90 deg, 4" at 0 or 1503 180 1504 blade_4=blade-x-loc(4,board->head4,y,board->io4,board->ht4); 1505 if (blae 4<tip_4) blade -4=-tip_4; 1506 Material =blade_4-hold-offset; 1507 Holddown--tip__4-hold-offset; 1508 if( (Material-hold-offset) Holddlown )Holddown=Material-hold-offset; -68- 1509} 1510 else 1511 Material--tip_4-hold-offset; 1512 Holddown=Material-hold-offset' 1513} 1514 if (board->right hold-down-io>Holddown) board- 1515 >right hold down-io=Holddown; 1516 if (board->right carriage io>Material) board-> ri ght carriagej o=Mater ial1; 1517 1518 1519 tip_5=blade-inside tip(5,board->head5,board->io5); 1520 if(board->head5 90 1521 y--0.25 (I sin(DegToRad(board->head5)))/ 12.0; HY3 at 90 deg, 4" at 0 or 1522 180 1523 bladeS 5blade_x_oc(5,board->head5,y, board-> io5, 1524 if (blade_5<tip_5) blade 1525 Material 1526 1527 if (Material-hold_offset) Holddown )Holddown=Material- 1528 1529 1530 *:"1535 >left hold down -io 12.0; a1536 HI HoldMatlIO[l] board->left carriage io 12.0; *a*153~7 Hi Ho,- tnIO[21 bard>righ4t -hold -dw io*120 :**1538 HI HoldMatIIO[3] board->right carriagejio 12.0; 1539 :1540 float blade_1, blade 2, blade 3, blade 4, blade 1541 float tip 1, tip__2,tip_3, tip__4, 1542 float y,matl -ht-3.0/12; H/carriage dog height 1543 float hold-offset- 2.0/12; 1544 float gear box- 2.0/12; 1545 :1546 board->iol 0; *.:1547 board->ht2 0; 1548 board->io3 0; 1549 board->ht4 0; *1550 1551 board->left -carriage io=0; 1552 board->left_hold_down-io=0; 1553 1554 board->right -carriage io=0; 1555 board->right hold-down-io=O; 1556 1557 H/LEFT 1558 HI Head 1559 if(board->headI 90 1560 tip_ 1=blade inside tip(l1,board->head I ,board->io 1); -69- 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 blade-1l-tipl; else tipi =blade -inside-tip( I ,board->head I ,board->io 1); y =mat! ht (1 sin(DegTo Rad(board-> head 1)))/l12.0; /HY" at 90 deg, 4" at 0 or 180 blade_-I =blade -x -loc( 1, board-> head 1 board-> io 1, ,board ->ht I); if (blade-1 tip 1) blade-1l-tipl; HI Head2 if(board->head2 90 {ti p_2=b lade_inside tip(2,board->head2, board-> io2); blade_2=-tip2 a a.
a
A
a..
tip__24lade-inside-tip(2,board->head2,board->io2); y mat! ht (1 sin(DegToRad(board->head2)))/12.0; HY3 at 90 deg, 4" at 0 or 180 blade_-2=blade -x -loc(2,board->head2,y,board->io2,board->ht2); if (blade-2 tip_2) blade. _2=tip_2; if(blade-2 (board-> io2-gear box)) blade_2 =board-> io2-gear-box+hold-offset; if (blade_1I >blade 2)board->left-carriage _io=blade_[1 else board-> le'ft-carriage io=blade_2; if (tip 1 >tip_2) board->left_hold_down io=tip 1; else board-> left-ho ld_down io--tip_ 2 board->left-hold-down-io hold offset; board-> left-carriage io hold-offset; if( board->left-hold-down-io-board->left--carriage _io hold-offset) board-> left-hold-down io board->left-carriage io hold-offset; HI RIGHT 1596 1597 1598 1599 1600 1601 1602 163 1604 1605 1606 1607 1608 1609 1610 1611 1612 Head if(board->head3 90 tip 3=blade -ins ide-ti p(3, board->head3, board-> io3); y matt ht (1 sin(DegToRad(board->head3)))/12.0; blade_-3=blade x loc(3 ,board->head3,y,board->io3,board->ht3); if (blade 3 tip 3) blade 3=-tip 3; else tip 3=blade-inside-tip(3 ,board->head3 ,board->io3); blade_3-tip-3; //Head 4 if(board->head4 90 tip__4=blade-inside-tip(4,board->head4,board->io4); y matl-ht (1 sin(DegToRad(board->head4)))f 12.0; 70 1613 blade_-4=b lade_x_loc(4,board->head4,y, board-> io4,board->ht4); 1614 if (blade 4 tip__4) blade 4=-tip_4; 1615} 1616 else 1617 tip__4=blade-inside-tip(4,board->head4,board->io4); 1618 blade_4=-tip_4; 1619} 1620 if(blade4> (board-> io4+gear box)) blade_4 board->io4+gear-box-hold-offset; 1621 1622 HI Head 1623 if(board->head5 90 1624 tip_5=blade inside tip(5,board->head5,board->io5); 1625 y =matl-ht (1 sin(DegToRad(board->head5)))/12.0; 1626 blade_-5=blade x loc(5,board->head5,y, board-> io5 1627 if (blade5 <tip 5) blade 1628} 1629 else 1630 tip_5=blade inside tip(5,board->headS 1631 1632} 1633 1634 if (blade_-3<blade 4)board->right-carr iage io=blade_3; 1635 else board->right carriage io=blade_4; 1636 if (tip 3<tip_4) board->right-hold-down io--tip 3; 1637 else board->right -hold down -io--tip_4; 1638 if (bladeS board->right carriage io) board-> right carri age io=blIad :1639 if (tip_5 board->right hold down io) board->right-hold-down :::1640 .1641 board->right hold down io -hold offset; 1642 board->rightcarriageio hold-Offset; :..1643 :1644 if( board->right carriage io -board->right hold down io <hold offset) 1645 board->right hold down-io board->right carriage io hold-offset; 1646 1647 164 mt ParkHead( mnt head -num, BoardInfo *board) ::1650 H Imoves the blade away from the piece. Uses LUMSTOPMTN as the *..:1651 H/minimum horizontal distance away from the piece.
1652 I/This is a POST-Postioning park; the BoardInfo must be filled first.
1653 mnt bladehitspiece0O, i; *.:1654 float theta, dt, height, dh, x dist, x left, y_dist, right; 1655 set-carr iage length(board); 1656 1657 switch (board->bottom-blade-left) 1658 case 1 1659 x-left-- bladex loc( I,board->headl1,board->ypts[O] ,board- 1660 >iol,board->htl); 1661 break; 1662 case 2: 1663 x_1eft7-- blade-x-loc(2,board->head2,board->ypts[0],board- 1664 >io2,board->ht2); -71 1665 break; 1666 1667 switch (board->bottom-blade right) 1668 case 3: 1669 x-right bladexloc(3,board->head3,board->ypts[OJ,board- 1670 >io3,board->ht3); 1671 break; 1672 case 4: 1673 x-right- blade-xloc(4,board->head4,board->ypts[0],board- 1674 >io4,board->ht4); 1675 break; 1676 case 1677 x-right- blade-xloc(5,board->head5,board->ypts[0],board- 1678 1679 break; 1680} 1681 1682 1683 switch (head num) 1684 case parking head I head 2 only making the cut.
1685 {if(board->turn- on 1=1) return(1); H/don't park a cutting blade! 1686 HI checking existing position..all of blade above board? 1687 bladehitspiece=0; 1688 if( blade bottom elev( 1,board->headlI,board->htl 1> 1689 (BoardHeight(board)/1 2+MJNTIPOFFSET)) .1690 board->turn -on *:1691 return( 1); 1692} .1693 I/checking existing position..all points right of blade? *:1694 for(i0O; i<board->numjPts; 1695 x,_dist--board->xpts[i]+x -left; :::1696 ydist-board->ypts[i]; 1697 if( blade xloc( 1,board->head I,y dist,0,board->ht 1) 1698 (x dist+LUMBERSTOPMrN)) 1699 bladehitspiece+1I; 1701 if( bladehitspiece ==0 p: 1702 board->turn-onl=O; :1703 return(1); 1704} .~1705 I/Checking other positions of head 1 1706 dt=(MAXI-IEAD1-90)/17; /f every 5 degrees 1707 dh=(MAXHEAD_ UP-0)/12; fevery inch 1708 1709 for( theta=90; theta<MAX_-HEAD 1; theta+=dt) 1710 for( height=0O; height<MAX_-HEADI_-UP; height+=dh) 1711 {if( blade-bottom -elev( I,theta,height) 1712 (BoardHeight(board)+0.5)/1 2) H/ quarter 1713 inch above 1714 f/blade-bottom-elev has 1/4" hard-coded 1715 (0.25/12) 17 16 board->ht I =height; -72 1717 board->head 1 -theta; 1718 board->turn on 1719 retum( 1); 17204 1721 bladeh itspiece=0; 1722 for(i0O; i<board->numpts; 1723 x_d ist--board->xpts [i]+x,_left; 1724 ydist--board->ypts[i]; 1725 if( bladexl-oc(l1,theta,y-dist,O,height) 1726 (xdist+-LUMI3ERSTOP MIN)) 1727 bladehitspiece+=1; 17284 1729 if( bladehitspiece==0) 1730 board->htlI=height; 1731 board->head 1 theta; 1732 board->tun- on=O 1733 return(1); 1734} 17354 1736 4break; 1737 case 2 1738 {if(board->turn on2=1) return(1); H/don't park a cutting blade! 1739 H/checking existing position 1740 bladehitspiece=0; 1741 for(i=0; i<boprd->numjpts; i-H-) S1742 x dist--board->xpts[i]+x left; :.1743 ydist--board->ypts[i]; *:17454 h2 if( blade Xloc(2,board->head2,y d ist,board->io2, board- :::1746 (xdist+LUMBERSTOPMrN)) 1747 bladehitspiece+=1; .1748 1749 if( bladehitspiece=0) 1750 board->turn 1751 return(]); 1753 /Checking other positions of head 2 ::1754 dt=(90-MIN -HEAD2)/1 0; *..:1755 dh=(0-MIN -HEAD210)10; *1756 for( theta=-90; theta MIN-IEAD2; theta-dt) .~1757 for( right=0O; right>MINI-EAD4_10; right-=dh) .:1758 {bladehitspiece=O; 1759 for(i=0; i<board->numjpts; i-H-) 1760 x_dist--board->xpts[i]+xI eft; 1761 ydist-board->ypts[i]; 1762 if( 1763 (xdist+LUMBERSTOP MIN)) 1764 bladehitspiece+=1; 17654 1766 if( bladehitspiece 0) 1767 board->io2=right; 1768---board->head2--theta; -73- 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 bladehit: 1792 1793 ::1794 1795 1796 :1797 1798 1800 1801 1802 1803 *...1804 1 *:i805 quarte** :1806 1807 1808 .:.1809 1810 *1811 1812 heta; 1813 1814 1815 1816 1817 1818 1819 1820 board->turn return( I break; case Hparking head 3 {if(board->turn_on3==1) return(1); H/don't park a cutting blade! H/checking existing position..all of blade above board? bladehitspiece=0; if( blade bottom elev(3,board->hiead3, board->ht3) (BoardHeight(board)+0.5)/12) HI quarter inch above I/blade-bottorrielev has 1/4" hard-coded (0.25/12) board->turn- return( I/checking existing position..all points right of blade? for(i0O; i<board->numjpts; x,_dist--board->xpts[i]+x -left-board->carriage length; ydist,-board->ypts[i]; if( blade-xloc(3,board->head3 ,ydist,0,board->ht3) (xdist+LUMBER_STOP_MIN)) if( bladehitspiece= 0 board->turn onlI=0; retun( 1); spiece+=1; f/Checking other positions of head dt--(90-MAX IHEAD3)/ for( theta7-90; theta<MAXHEAD3; theta-=dt) for( height=0O; height<MAXHEAD IUP; height+=dh) {if( blade-bottom__elev(3,theta,height) (BoardHeight(board)+0.5)/12) H/ board->turn- return( break; 4 {if(board->turn_on4=1) return(1); H/don't park a cutting biade! 74 1821 checking existing position 1822 bladehitspiece=0; 1823 for(i0O; i<board->numpts; 1824 x,_dist,-board->xpts[i]+x I eft-board->carriage length; 1825 ydist--board->ypts[i]; 1826 if( blade-xloc(4,board->head4,ydist,board->io4,board- 1827 >ht4) 1828 (xdist+LUMBERSTOP_M[N)) 1829 bladehitspiece+= 1; 1830} 1831 if( bladehitspiece=0) 1832 1833 return(1); 1834} 1835 HI Checking other positions of head 4 1836 dt--(MAX -HEAD4-90)/17; H/ every 5 degrees 1837 dh=(MAX -HEAD4_-10-0)/20; H/every inch 1838 for( theta-90; theta<MAX_-HEAD4; theta+=dt) 1839 for( right=0O; right<MAXHEAD4_10; right±=dh) 1840 {bladehitspiece=0; 1841 for(i0O; i<board->numjpts; i++F) 1842 x-dist-board->xpts[i]+x-left-board- 1843 >carriage length; 1844 y -dist=board->ypts[i]; 1845 iK blade-xloc(4,theta,ydist,right,O) 1846 (x_dist+LUMBERSTOP MIN)) 1847 bladehitspiece+=1; 848 :1849 if( bladehitspiece=0) ::1850 board->io4=right; :::1852 board->turn #*01853 retun( 1); 18541 1855} 1856 }break; :1857 *ee1858 case 1859 {if(board->turn- on5 1) return(1); I/don't park a cutting blade! 1860 II checking existing position 1861 bladehitspiece0O; as:: 1862 for(i=0; i<board->num..pts; .1863 x,_distboard->xpts[i]+x-left-board->carriagejength; 1864 ydist-board->ypts[i]; 1865 i f( blade-xloc(5,board->head5,y-dist, board-> io5, board- 1866 1867 (xdistLUMBERSTOPMIN)) 1868 bladehitspiece+=1; 1869} 1870 if( bladehitspieceO 1871 board->turn- 1872 return(1); S S
S
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 inch above (0.25/12) H/Checking other positions of head 5 dt--(MAX HEAD5-MfNHEAD5)/l 7; IIevery 5 degrees dh=(MAX H EADS_UP-0)/12; HI every inch board-> io5=MAXHEADS_10; for( theta-=90; theta>MINHEAD5; theta-=dt) for( height=0O; height<MAXHEADS_UP; heighlt+=dh) {if( blade-bottom -elev(5, theta, height) (BoardHeight(board)+0.5)112) H/quarter HI blade-bottom-elev has 1/4' hard-coded board->head return( 1); bladehitspiece=0; for(i=0; i<board->numjpts; x-di s t--oard->xpts [i ]+x-left- boardydist--board->ypts[i]; if( blade <(x_dist+LUMBERSTOP MIN)) >carriage length; bladehitspiece+=1; if( bladehitspiece=0 board->ht=height; board-> head 5 -theta; board->turn return( 1); }break;
I
return(0); int right -mostpoint( float *xpts, int num-pts) I HI returns index of largest float in an array float mnt i,index0-; for(i0O; i<numjpts; {if( *(xpts+i) max) max *(xpts+i); index =i; return(index);
V
76
I
C,
V
1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 :1942 1943 1944 *.*1945 :1946 1947 u..1948 '1949 1950 1951 1952 1953 1954 1955 .1956 1957 1958 :1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 int precut for head4( BoardInfo *board IIAdj'usts head3 angle and height to pre-cut for head4 io4 may be changed to clear head3's cut. Called from single cut-head_4 int right-end; float x4, x3, io4-adj; right endright Mostpoint(board->xpts, board-> n umpts); for( board->head3=9O; board->head3>MIN_HEAD3; board->head3 board->ht3 =max -head -ht(3, board->head3, 0); 03 b ladexloc(3,board->head3 ,board->ypts [right -end],0,board->ht3); x4 blade -x loc(4, board->head4, board->ypts [right _end], board-> if( x3 >(x4 +LUMBER_STOP_MEN)) IIhead3 is okhere {board->turn- on3=1; return( 1); /try to reposition head 4 io io4_adj 03 LUMBERSTOPMIN x4; if( (board->io4 io4 adj) MIN HEAD4 TO) {board->io4 io4_-a dj;board->turn_on3=1; return(1);
I
return(0); mnt precut for head5( Boardinfo *board H I Adjusts head3 angle and height to pre-cut for head4 /H io5 may be changed to clear head3's cut. Called from single mnt right -end; float x5, x3, right Tend=right -mostpoint(board->xpts, board->nun~pts); I/could insert loop here to check different heights of head 5, probably not needed.
for( board->head3-=90; board->head3>MIN_HEAD3; {board->ht3 =max-head ht(3, board->head3, 0); 03 blade-x loc(3,board->head3,board->ypts[right-end],,board->ht3); x5 >ht); if( 03 (x5 LUMBERSTOPMMN)) HI head3 is ok here {board->tum -on3=1; return( 1); /try to reposition head 5 io io5_adj 03 LUMBERSTOPMIN if( (board->io5 ioS adj) MIN HEADS {board->io5 board->turn-on3= 1; return(1); 77 1977 1978 1979 1980 1981 1982 return(0); 78
/***MSAW.H
9define 1#def ine lldefine #define #define #define #define #define #define #define 9define #define #ldefine #define #define #define #define #define #define #ldefine lldefir'e #define #ldefine #define #ldefine #define #define 9define #define #define #define #ldefine #define #define #define #define #ldefine #define #ldefine #define #define
MINANG
MAXANG
LEFT
RIGHT
PHI1
PPHL
HCLI
PH2 PPH2 HCL2 PH3 PPH-3 HCL3 PH4 PPH-4 HCL4 PH5 PPHS1 HCL5 0.575521 0.61458 0.6 1458 0.41 1458 -0.4479 17 0.875 -0.575521 0.6 1458 0.6 1458 -0.411458 -0.447917 0.875 -0.825521 0.6 1458 0.6 1458 HI Face to right of PP HI Pivot Point Height HI blade axis above PP
M[NHEADI
MAX_14EADI MINHEAD2 MAXHEAD2 MINHEAD3 M~AXHEAD3 MINHEAD4 MAXHEAD4
MINHEADS
MAXHEADS
MINHEADIUP
MAXHEADI
IUP
MINHEAD2_10 MAX_-HEAD2_10 MIN_-HEAD3_UP MAX_-HEAD3_UP M[N HEAD4 -10 MAX _HEAD4_10
MINHEADSUP
MAXHEADSUP
MINHEADS_10 MAXHEADS_10 HI MasterSaw angles -4/12.0 -5.625/12.0 12/12.0 -15/12.0 12.87Sf/12.0 -8.25/12.0 6.0/12.0 -20.5/ 12.0 6.375/12.0 0.0 12.0/12.0 -24.0/12.0 0.0 79 53 54 56 57 58 59 61 62 63 64 66 67 68 69 71 72 73 74 76 77 78 79 81 82 83 84 86 87 88 89 91 92 93 94 96 97 98 99 100 101 102 103 1-04" #ldefine HEADI IDIA #define HEAD2_DIA #define HEAD3_.DIA #define HEAD4_DIA #define HEADSDIA #define MIN TIP OFFSET #define MINCARRIAGELEN #define MAXLUMSTOP #define MINLUMSTOP #define MIN_-HOLD-CENTER #ldefine MINLUMCENTER #define SINGLECUT #ldefine DOUBLECUT #define DOUBLEIN #define SCISSORBOTTOM #define DOUBLEFLIP #~define CANNOTCUT #def ine SMALLBOARD #define HEAD4_BOTTOM #define LUMBERSTOPMIN #define PI #define LUM2X4 #define LUM2X6 #define LUM2X8 #ldefine LUM2X1O #define LUM2XI2 #ldefine LUM4X2 #define LUM2X3 #define LUM2X5 22.0/12.0 18.0/ 12.0 18.0/12.0 18.0/12.0 32.0/12.0 1.0/12.0 12.0/12.0 6.0/12.0 -16.0/12.0 8.0/ 12.0 8.0/12.0 -8 -9 -19 -12 -1000 0.25 0.25/12.0 3. 141592653 59 2 3 4 6 7 8 board angles Clary degrees decimal feet decimal feet /board coordinates, lowest left (0,0) /decimal feet, clockwise around piece /H head angles in Mastersaw degrees
H/
typedef struct Board int int float float float int float float float float float int int float float float float type; num -edges; arigles[i10]; length[l 01; height[1 0]; numpts; xptsI[lO]; ypts[10]; top-len; bot -len; long len; SetUpNo; board -val; headi; head2; head3; head4; 80
I
float float float float float float float float float float float float float float float float float float float int int int int int int int BoardInfo; ht head adjustment heights and offsets ht2; //not used in AutoMill: ht2, ht4, iol, io3 ht3; ht4; iol; //-->positive <--negative in program io2; io3; io4; carriage_length; left hold down; righthold_down; left_hold_down_io; righthold_down_io; left_carriage_io; right_carriage_io; lumber_stop; turn_on turnon2; turn_on3; turn_on4; bottom_blade_left; bottom_blade right; r J e r~ r r r r 1 o o a o typedef struct int int int float float float float Head_info; side; order; preference; diameter; Height; axisheight; blade_offset; min_io; maxio; min_ht; max_ht; minangle; max angle; //not in use left or right front, center, or rear order of cutting search lowest first blade diameter in feet height of pivot point above carriage or (Hcl) height of axis above pivot point (PH) offset from the pivot point to the blade face blade_offset is negative for blades on the right positive to the right positive up MasterSaw angles float float float float float float Headinfo; float 153 void 154 void 155 156 float t DegToRad(float angle); set_boardto zero(Boardnfo *board, int which end of board); get_blade_offsets(int head_num, float *Ph, float float *Hcl, float *DIA); backfills blade offset values into addresses passed as arguments.
max head_ht( int headnum, float angle, float Y); 81 LL -IIL 157 retrun maximum head up/down at a Mastersaw angle so that 158 the upper tip of the blade barely clears the Y distance 159 float min_head_ht(int head_num, float angle, float Y); 160 return minimum head up/down at a Mastersaw angle so that 161 the lower tip of the blade barely clears the Y distance 162 void head5_minHt_maxlo(float *io5, float *up5, float angle, float x, float y); 163 returns to io5, up5 the head5 position at a Mastersaw angle so that 164 the upper tip of the blade barely clears the x,y point 165 float blade_x_loc (int head num, float angle, float Y, float dHx, float dHy); 166 returns X location of a blade at a height, angle, io settings 167 relative to the head 90 degree position and TOC 168 This is the same as the interference position for hold-downs.
169 float head_ xloc (int head_num, float angle, float X, float Y, float 170 returns the head in-out for a Mastersaw angle thru a point 171 For Head 5, also use its head elevation, 0 default.
172 float head_y_loc (int head_num, float angle, float X, float Y, float 173 returns the head up/down for a Matersaw angle thru a point 174 For head 5, also use its head x-offset, 0 default.
175 float bladebottom elev(int headnum, float angle, float dHy); 176 return elevation of the lower edge of a blade at a certain angle 177 //the lower tip of the blade barely clears the Y distance 178 float bladetop_elev(int head_num, float angle, float dHy); 179 //return elevation of the upper edge of a blade at a certain angle 180 //the upper tip of the blade barely clears the Y distance 181 int leading_cut_ok(int head_num, Boardlnfo *board); 182 will the blade cut through the entire board? 183 int head_paramsok(int head_num, BoardInfo *board); 184 is the head within its range of movement? 185 void set_carriagelength (BoardInfo *board); i 186 sets the carriage length based on the bottom chord length S 187 and settings in board of left and right bottom blades 188 void set_lumber_stop (BoardInfo *board); 189 sets the lumber stop at the moving end after rest of Boardlnfo 190 //has been filled out.
S 191 int singlecuthead 1(Boardlnfo *board); 192 Can the head make this single-cut? 193 int single cuthead_2(BoardInfo *board); 194 Can the head make this single-cut? 195 int single cuthead_3(Boardlnfo *board); 196 Can the head make this single-cut? 197 int single cuthead 4(Boardlnfo *board); 198 Can the head make this single-cut? 199 int single cut head_5(BoardInfo *board); 200 Can the head make this single-cut? 201 float blade_inside_tip(int head_num, float angle, float dHx); 202 returns offset of the inner blade tip at a certain Mastersaw angle 203 void set_material_and_hold_downio(Boardlnfo *board); 204 sets the carriage and hold down in-outs 205 to avoid blades in BoardInfo 206 int ParkHead(int head_num, BoardInfo *board); 207 moves the blade away from the piece. Uses LUM_STOP_MIN as the 208 minimum horizontal distance away from the piece.
82 I L I 209 210 void 211 This is a POST-Positioning park; the Boardlnfo must be filled first.
turn_offallheads(BoardInfo *board); a r r r r a o r r r 83
Claims (6)
- 4.S S 4. THE CLAIMS DEFINING THE INVENTION ARE AS FOLLOWS: 1. A sawing system including: a material conveyor for moving lengths of wood stock, the conveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third power saw and a fourth power saw supported on the opposite side of the material conveyor, i G wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, 1 wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, and wherein at least one of the first and third power saws for making 2 top angled cuts is supported for vertical movement of its pivot axis, whereby the vertical position of at least one power saw is adjustable to accommodate making top cuts on a large range of wood stock dimensions. 2. The sawing system according to Claim 1, wherein each of the first and 3 third power saws is supported for vertical movement of its pivot axis, whereby the vertical position of the first and third power saws is adjustable to accommodate making top cuts on a larger range of wood stock dimensions. -84- N. II M 3. The sawing system according to Claim 1, wherein the frame is for additionally supporting a fifth power saw on one side of the material conveyor, wherein the fifth power saw is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, and wherein the fifth power saw is supported for at least horizontal movement of its pivot axis relative to the material conveyor, r ,whereby the sawing system is capable of making scissor cuts. 4. The sawing system according to Claim 3, wherein the fifth power saw is •tadditionally supported for vertical movement of its pivot axis, whereby the sawing system is capable of making scissor cuts on a larger range of wood stock dimensions. A sawing system including: systa material conveyor for moving lengths of wood stock, nveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and 4**1 a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third power saw and a fourth power saw supported on the opposite side of the material conveyor, wherein each of the first, second, third, and fourth power saws is supported for independent anguiar movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, wherein the frame is for additionally supporting a fifth power saw on one side of the material conveyor, wherein the fifth power saw is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor, and 1 wherein at least the fifth power saw is supported for horizontal movement of its pivot axis relative to the material conveyor, whereby the sawing system is capable of making scissor cuts.
- 6. The sawing system according to Claim 5, wherein each of the first, third, and fifth power saws is supported for vertical movement of its pivot axis, whereby the sawing system is adjustable to accommodate making top cuts and scissor cuts on a larger range of wood stock dimensions.
- 7. A sawing system including: aframe; a fixed power saw carriage supported on the frame; S(c) a movable power saw carriage supported on the frame for horizontal movement relative to the fixed power saw carriage; a material conveyor for moving lengths of wood stock between the fixed power saw carriage and the movable power saw carriage, the conveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and at least a first power saw and a second power saw supported on the movable power saw carriage, and at least a third power saw and a fourth power saw supported on the fixed power saw carriage, wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the
- 86- material conveyor between the fixed power saw carriage and the movable power saw carriage, wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts and the second power saw is supported such that its pivot axis is located below the x-reference for making bottom angled cuts, wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts and the fourth power saw is supported such that its pivot axis is located below the x-reference for making bottom angled cuts, C wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the movable power saw carriage, and wherein at least one of the third and fourth power saws is supported for horizontal movement relative to the fixed power saw carriage. The sawing system according to Claim 7, wherein each of the first and third power saws is supported for vertical movement of its pivot axis, whereby the sawing system is adjustable to accommodate making top cuts on a larger range of wood stock dimensions. 9. The sawing system according to Claim 7, further including: a computer operatively connected to control the movements of the movable power saw carriage and the first, second, third, and fourth power saws; and a program for execution by the computer, the program having an algorithm for calculating a S first correction factor for the horizontal position of the first or second power saw that is supported for horizontal movement relative to the movable power saw carriage so that it makes a cut through a first predefined point on a first end of the length of wood stock, and for calculating a second correction factor for the horizontal position of the third or fourth power saw that is supported for horizontal movement relative to the fixed power saw carriage so that it makes a cut through a second predefined point on a second end of the length of wood stock.
- 87- The sawing system according to Claim 9, wherein the algorithm for calculating the first correction factor for making top and bottom angled cuts through the first predefined point takes into account that a home position of the pivot axis of the first power saw is positioned above the x-reference for making top angled cuts and that a home position of the pivot axis of the second power saws is positioned below the x-reference for making bottom angled cuts, the algorithm for the first and second power saws being: -2iSin )Sn 450 Tan Correction 2 2 i h Factor Sin(1800 2 o Sin 0 90 Sin 135 Tan Sin 2 h) Sin 01 where first predefined point, 0, is the angular position of the blade of the first power saw relative to the x-reference, D is the distance between the pivot axis of the second power saw and the blade of the second power saw, h 2 is the vertical distance from the pivot axis of the second power saw to the first predefined point, and -88- a 62 is the angular position of the blade of the second power saw relative to the x-reference. 11. The sawing system according to Claim 7, further including: a fifth power saw supported on the fixed power saw carriage, wherein the fifth power saw is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor between the fixed power saw carriage and the movable power saw carriage, wherein the first power saw is supported for vert,!cal movement of its pivot axis relative to the movable power saw carriage, wherein the third power saws is supported for vertical movement of the pivot axis relative to the fixed power saw carriage, and wherein the fifth power saw is supported for both horizontal and vertical movement of its pivot axis relative to the fixed carriage assembly, whereby the power saws on at least one of the fixed power saw carriage or on the movable power saw carriage are capable of making scissor cuts. 12. A sawing system including: a material conveyor for moving lengths of wood stock, the conveyor system defining an x-reference that is a bottom plane of the lengths of wood stock moved on the material conveyor; and a frame for supporting at least a first power saw and a second power saw on one side of the material conveyor and for supporting at least a third power saw and a fourth power saw supported on the opposite side of the material conveyor, wherein each of the first, second, third, and fourth power saws is supported for independent angular movement of its saw blade about a pivot axis that is offset from the plane of the saw blade and parallel to the direction of the movement of the lengths of wood stock on the material conveyor,
- 89- I wherein the first power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the first and second power saws is supported for horizontal movement of its pivot axis relative to the material conveyor, and wherein the third power saw is supported such that its pivot axis is located above the x-reference for making top angled cuts, and wherein at least one of the third and fourth power saws is supported for horizontal movement of its pivot axis relative to the material conveyor. 13. The sawing system according to any one of Claim 1, 6, 8 or 12, further Sincluding: a computer operatively connected to control the movements of the S: power saws; and a program for execution by the computer, the program having an algorithm for calculating a position for the pivot axis of each power saw relative to an arbitrarily assigned home position for each pivot axis to make a cut at a desired angle through a predefined point associated with a desired cut on the end of the length of wood stock, wherein, for any particular power saw indicated by the subscript m, the algorithm is: Y- T, XOFFSETTx n tan where: Tx=(Phm)cos(om--)-(Hcl m)cos(Om)+dHxm-Phm Ty=-(Phm)sin(9m--)+(Hclm)sin(Om)+dHym+Hm and where: Y is the perpendicular distance between the x-reference and the predetermined point; Om is the angle between the x-reference and the blade of the power saw; Ph is the perpendicular distance between the pivot axis of the power saw and the saw blade; Hcl is the perpendicular distance between the pivot axis of the power saw and the motor axis of the power saw; 90 I, -Ib~ H is the perpendicular distance between the home position of the pivot axis of the power saw and the x-reference; dHx is the horizontal displacement of the pivot axis of the power saw relative to the home position of the pivot axis of the power saw on its carriage; and dHyr is the vertical displacement of the pivot axis of the power saw relative to the home position of the pivot axis of the power saw. 14. The sawing system according to any one of Claim 1, 6, 8 or 12, further including: a computer operatively connected to control the movements of the power saws; and a program for execution by the computer, the program having an algorithm for determining the vertical offset position of a power saw that is :i supported for vertical movement such that an upper edge of the saw blade lbarely extends past an upper surface of the length of wood stock while cutting through the predefined point. S 15. The sawing system according to Claim 14, wherein the algorithm for o: i determining the vertical offset position of a power saw that is supported for vertical movement further includes: determining a maximum vertical adjustment value of the power saw that i positions the lower tip of the saw blade to barely extend past the lower surface of the wood stock; determining a minimum vertical adjustment value of the power saw that positions the upper tip of the saw blade to barely extend past the upper surface of the wood stock; and conducting a plurality of iterations between the maximum and the minimum vertical adjustment to determine a vertical adjustment that passes through the predefined point on the end of a length of wood stock, 16. The sawing system according to Claim 14, wherein the algorithm for determining the maximum vertical adjustment value is: l'I -91 I I- maxad=d Hy=Ty+ (Phm)sin -)-(Hclm)sin where; Ty=Y+(DIAm/2-M INTIPOFFSET)sin6m and T is the vertical coordinate of the center of the saw blade outer face, y Ph is the distance constant from a pivot axis of the power saw to an outer face of the saw blade, O is the angle between the x-reference and the saw blade, m Hcl is the perpendicular distance between the pivot axis of the power i. saw and the motor axis of the power saw, H is the home vertical distance constant of the pivot axis with respect to the x-reference, Y is the vertical distance from the x-reference to the predefined point. DIA is a saw blade diameter constant, and m MINTIPOFFSET is a minimum tip offset constant. 17. The sawing system according to Claim 14 wherein the algorithm for determining the minimum vertical adjustment is: minadj=dHy=Ty+(Phm)sin 2)-(Hclm)sin (m)-Hm where: Ty=Y-(DIAm/2-MINTIPOFFSET)sin6m and T is the vertical coordinate of the center of the saw blade outer face, y Ph is the distance constant from a pivot axis of the power saw to an outer face of the saw blade, is the angle between the x-reference and an outer face of the saw m blade, Hcl m is the perpendicular distance between the pivot axis of the power saw and the motor axis of the power saw, -92- W~ H is the home vertical distance constant of the pivot axis with respect m to the x-reference, Y is the vertical distance from the x-reference to the predefined point. DIA is a saw blade diameter constant, and m MINTIPOFFSET is a minimum tip offset constant. 18. A sawing system substantially as herein described with reference to the accompanying drawings. DATED: 5 November, 1998 PHILLIPS ORMONDE FITZPATRICK ;Attorneys for: ALPINE ENGINEERED PRODUCTS, INC. a a o* -93- I
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40853995A | 1995-03-22 | 1995-03-22 | |
US08/408539 | 1995-03-22 | ||
US58874196A | 1996-01-19 | 1996-01-19 | |
US08/588741 | 1996-01-19 | ||
PCT/US1996/003878 WO1996029184A1 (en) | 1995-03-22 | 1996-03-22 | Methods and apparatus for orienting power saws in a sawing system |
Publications (2)
Publication Number | Publication Date |
---|---|
AU5525196A AU5525196A (en) | 1996-10-08 |
AU700387B2 true AU700387B2 (en) | 1999-01-07 |
Family
ID=27020299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU55251/96A Ceased AU700387B2 (en) | 1995-03-22 | 1996-03-22 | Methods and apparatus for orienting power saws in a sawing system |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0817707A4 (en) |
AU (1) | AU700387B2 (en) |
CA (1) | CA2215915A1 (en) |
WO (1) | WO1996029184A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105345895A (en) * | 2015-12-01 | 2016-02-24 | 圣象实业(江苏)有限公司 | Floor slitting automatic positioning device |
CN107309489B (en) * | 2017-08-24 | 2024-05-10 | 泉州弘正机械有限公司 | Full-automatic pipe sawing machine |
CN108312237B (en) * | 2018-01-23 | 2021-05-14 | 赣州市华阳商品混凝土有限公司 | Suspension bridge is built with a plurality of plank cutting equipment simultaneously |
CN109927181B (en) * | 2019-04-26 | 2024-05-28 | 广东科达洁能股份有限公司 | Double-sided saw brick cutting machine |
CN116834117B (en) * | 2023-08-26 | 2023-11-28 | 江苏豪凯机械有限公司 | Multi-blade saw for sawing plates |
CN118162684B (en) * | 2024-05-10 | 2024-08-30 | 常州三博金属制品有限公司 | Automatic processing equipment and processing method for automobile seat guide rail |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE25715E (en) * | 1965-01-26 | Wood component member cutting apparatus | ||
US3380494A (en) * | 1966-04-15 | 1968-04-30 | George L. Mayo | Wood component member cutting apparatus |
US4770076A (en) * | 1986-11-07 | 1988-09-13 | Wilson Bros (Leeds) Limited | Work fed truss cutters |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB152962A (en) * | 1919-10-22 | 1921-11-24 | Hermann Oldenbruch | Improvements in saws |
GB732524A (en) * | 1953-10-14 | 1955-06-22 | Richard Percy Jasper Short | Improvements in or relating to sawing machines |
US3374813A (en) * | 1966-02-07 | 1968-03-26 | Tillery Lawrence Ivan | Portable sawmill apparatus |
GB1375964A (en) * | 1972-02-09 | 1974-12-04 | Wilkins & Mitchell Ltd | Length determination |
US4277998A (en) * | 1980-01-16 | 1981-07-14 | Stoddard H. Pyle | Wood member cutting apparatus |
US4467684A (en) * | 1983-04-20 | 1984-08-28 | Excor, Inc. | Precision positioning system for rotary power tools |
US4676129A (en) * | 1984-10-02 | 1987-06-30 | Gang-Nail Systems, Inc. | Automated truss component saw apparatus |
US4874996A (en) * | 1988-06-13 | 1989-10-17 | Kohler General Corporation | Multiple head woodworking apparatus with automated head positioning apparatus |
US5315906A (en) * | 1992-05-15 | 1994-05-31 | Vought Aircraft Company | Automated extrusion processing machine |
-
1996
- 1996-03-22 WO PCT/US1996/003878 patent/WO1996029184A1/en not_active Application Discontinuation
- 1996-03-22 EP EP96912431A patent/EP0817707A4/en not_active Withdrawn
- 1996-03-22 AU AU55251/96A patent/AU700387B2/en not_active Ceased
- 1996-03-22 CA CA 2215915 patent/CA2215915A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE25715E (en) * | 1965-01-26 | Wood component member cutting apparatus | ||
US3380494A (en) * | 1966-04-15 | 1968-04-30 | George L. Mayo | Wood component member cutting apparatus |
US4770076A (en) * | 1986-11-07 | 1988-09-13 | Wilson Bros (Leeds) Limited | Work fed truss cutters |
Also Published As
Publication number | Publication date |
---|---|
EP0817707A1 (en) | 1998-01-14 |
EP0817707A4 (en) | 2001-11-14 |
WO1996029184A1 (en) | 1996-09-26 |
AU5525196A (en) | 1996-10-08 |
CA2215915A1 (en) | 1996-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5943239A (en) | Methods and apparatus for orienting power saws in a sawing system | |
US7870879B2 (en) | Automated system for precision cutting crooked lumber | |
US5213022A (en) | Multi-directional portable band sawmill for lumber and firewood | |
US7354227B2 (en) | Apparatus and method for manufacturing plastic frameworks such as window frames | |
US8458871B2 (en) | Secondary positioning device for workpiece machining | |
US5243888A (en) | Pivoting carriage and saw | |
AU700387B2 (en) | Methods and apparatus for orienting power saws in a sawing system | |
US8109493B2 (en) | Automated truss assembly jig setting system | |
US3229732A (en) | Wood component member cutting apparatus | |
CA2062521A1 (en) | End-dogging log carriage | |
US7040207B2 (en) | Log merchandiser | |
AU2001296642B2 (en) | System for forming timbers with rounded ends | |
AU2008221608B2 (en) | Automated truss assembly jig setting system | |
US7351019B2 (en) | Clamping mechanism for an elongated workpiece | |
RU2094220C1 (en) | Apparatus for simultaneous working of tree trunks at opposite sides by wood-working tools | |
CA1152412A (en) | Sawmill apparatus with vertically movable logging dogs | |
US6230602B1 (en) | Resaw for cutting multiple boards simultaneously | |
CN110125469A (en) | A kind of portable boring and milling machine for processing large-size components | |
AU714201B2 (en) | Improvements in milling systems | |
CN2106051U (en) | Combined woodworking planer for working four sides of work simultaneously | |
JPS61171304A (en) | Grooving machine for beam material, ridge piece, cross beam,etc. | |
NZ553223A (en) | Cross cutting apparatus with enhanced timber support and compound bevel facility |