The present invention relates to an automated tube bending system, and more particularly to a CNC-parameter generating method in an isometric projection environment and to a CNC-parameter generating system in an isometric projection environment for the control and processing of tubes by at least one CNC-tube bending machine.
Automated tube bending machines such as CNC tube bending machines are numerically controlled by computers. In prior art solutions, an operator has to sketch the tubing path by hand, do any calculations needed and then manually plot the coordinates in to a CNC tube-bending machine.
WO 2018/054431 A1 discloses a method for controlling a tube bending machine with a communication unit. Bending parameters are numerically entered into the communication unit, the entered parameters are then communicated to a tube bending machine.
One object of the present invention is to reduce the time consuming step of manual sketching paths and bends for tubes.
Another object of the invention is to provide a method for production of CNC parameters in an isometric projection environment for tube bending.
According to the present invention it is provided a CNC-parameter generating method in an isometric projection environment for the control and processing of tubes by at least one CNC-tube bending machine at least comprising:
Step a) above may further comprise the steps of:
Step b) above may at least comprise:
The vector assignment step c) may at least comprise:
The method above regarding the assignment step may further comprise the substeps of:
carrying out a WEST or NORTH test:
The substep ciii) above may at least comprise the further substeps of:
Substep id) above may at least comprises the further substeps of:
carrying out a EAST or SOUTH test:
The vector assignment step c) above may at least comprise the steps of:
In another aspect the vector component angle test c3) may at least comprise the steps below where
In another aspect the vector component angle test c3) may at least comprise the steps below where
In one aspect of the invention step e) above at least comprises the sub steps:
According to the present invention it is also provided a CNC-parameter generating system in an isometric projection environment for the control and processing of tubes by at least one CNC-tube bending machine at least comprising:
The CNC-parameter generating system may additionally comprise:
Further features of the present invention appears form the appended claims.
Following is a brief description of the drawings in order to make the invention more readily understandable, the discussion that follows will refer to the accompanying drawings, in which
In the following it is firstly disclosed general embodiments in accordance to the present invention, thereafter, particular exemplary embodiments will be described. Where possible reference will be made to the accompanying drawings and where possible using reference numerals in the drawings. It shall be noted however that the drawings are exemplary embodiments only and other features and embodiments may well be within the scope of the invention as described.
In principle, the present invention relates to conversion of isometric draft charts for tubing or tube bending to CNC-machine readable formats. On-site observations are entered into isometric draft chart for tubing on a portable device. The isometric draft is then converted into “real scale model” and CNC (DAP) tubing parameters are prepared for CNC-bending machines.
The present invention provides a tool implemented on a portable device 502, such as a tablet or smart phone (
The tool 502a includes a visual graphical user interface 502c which simplifies tube layout/design for a user of the tool. Visual exemplification of an embodiment of the invention is illustrated in
The graphic shown are screen dumps from a portable device 502 such as a smartphone. A prerequisite for the device is that it must include a display 502c, a user input interface 502b, memory at least for storing software application(s) in accordance with the present invention and at least one processing unit. The user input interface 502b and the display 502c can be physically separated from each other and from the CPU, however logically they will be part of the same device 502.
The graphical user interface 502b of the tool 502 allows a user to navigate by zooming and scrolling around in a drawing area visualised on a screen of the portable device. In one example tubing path can be created by adding points with a single tap of a finger or a pointing device. A line can be created between two points. Additional points can create a sequence of connected lines as a single object. A long press can create an offset line, allowing the user to sketch a tube that travels in multiple axis at once.
According to the present invention, one operates with 2D and 3D environments in real and virtually.
A first person 501 operates on a 2D screen with the aim to create 3D tubes with bends according to the representation on the 2D screen ref.
Thus the UP, NORTH, DOWN parameters and lengths have to be converted to normal three-dimensional coordinate systems.
An assign-button on a lower right (ref.
In one embodiment of the invention the tool has an ability to generate CSV-files (comma-separated values) containing X, Y and Z coordinates, see
Another feature of the tool is the ability to generate PDF documentation. This enables the possibility to easily perform reverse engineering and to provide a better documentation control. As-built drawings can be generated by an operator 501 along the way.
Advanced devices with computational capacity and processing capacity such as state of the art portable devices opens UP for augmented reality. With augmented reality a user will be able to generate a three dimensional model of the tubing drawn. By looking through a camera of the portable device with the 3D-object rendered as a layer on top, the operator can get a clear picture of what the tubing would look like on the end product/system.
Reference is made to
The system comprises the portable device 502, which includes a software algorithm 502a for a CNC-parameter generating method in an isometric projection environment for the control and processing of tubes by at least one CNC-tube bending machine. The portable device comprises an input unit 502b or in one embodiment is in operable communication with an input unit 502b. Moreover, the portable device 502 also comprises a display unit 502c. The display unit 502c can be an integral part of the portable device 502 or it can be in operable communication with the portable device 502. In one embodiment, the display unit 502c is a touch screen thereby also functioning as an input unit 502b. The software can be stored in a local memory. The local memory can be included in the portable device 502.
Principles Applied for Transformation Between Paper Based Isometric Drawing Regime and Software Implemented “Isometric” Drawing Regimes.
The isometric grid operates with 60° between all adjacent axis (360°/6), see
When a pipe designer makes his drawing on an isometric paper, he simply draws lines following the axis on the paper. If a tubing shall be drawn upward, then he simply draws a vertical line on the isometric grid paper. If the tube shall bend for example to the right after the elevation, he will follow an eastern axis and so on. Having finalised a drawing he will measure distances between tube bends and add them on the drawings. Having finished his drawings, he will bring the drawing to someone who can transform the drawings into data files for production of tube systems on CNC-bending machines. This transformation from drawings to data may include geometric calculations.
Contrary to the manual operation above, according to the present invention any geometric calculation can be made on site on the portable device 502, also the portable device 502 can carry out conversion from on screen drawings to a data format that is suitable for conversion to CNC-readable data.
Conversion from on screen drawings, which essentially is carried out by tapping a finger or a pointing device on the screen, to real true models of a tube system necessitates some algorithms which takes into account whether input screen data is true or not, is a drawn vector north or east, etc. Reference points, reference angles etc. have to be introduced on the “isometric” pattern on the portable device.
Pixels are commonly used to represent on screen points on digital devices. Tube bending designs operates in 3D with vectors, hence the idea of working with isometric coordinate systems. The visual world around us is three-dimensional, display devices are 2D devices showing projections of 3D objects into 2D. “Projection” is, in simple terms, the way we “flatten” a 3D view into 2D.
In one example the tile length AC=48 pt., whilst the angle v is 30° as the tile is extracted from a true isometric grid. With the given length of AC, D is:
ED= 48/2 tan 30°
ED=8√{square root over (3)} Eq. 2
D≈[24.8√{square root over (3)}]
With the length of ED and AE it is easy to arrive at the length of AD by the use of Pythagorean Theorem. The decimal value of D with the angle v=30° includes a large number of decimals; this prevents an efficient calculation by a processor. Hence, true isometric grids is not CPU-efficient. To increase the performance of the calculations and thereby the speed of the algorithms according to the present invention, a twist in the isometric grid pattern is introduced. The goal is to have an isometric grid pattern which “looks” as a real isometric grid pattern while simultaneously increasing the performance of calculations carried out for objects drawn in a grid pattern. This goal will be achieved if we can find an angle v that renders the point D as an integer. Instead of being bound to a 30°“system” we can start opposite around and choose BD to be 24 instead of 2*8√{square root over (3)}, this is an integer value fairly close to 16√{square root over (3)} and it will render the overall impression of the grid system similar to a true isometric system, even though in reality it is a diametric grid pattern. Note that 16√{square root over (3)} comes from 2*8√{square root over (3)}, (Eq. 2). The vector lengths assigned to the “new tile” is AC=48 pt. (as in the previous tile) and BD=24 pt. We now have:
So, what is the new angle ∠DAB and what is the difference between the new angle and the isometric 60° angle?
∠DAB=2∠DAE
∠DAE=tan−1 12/24
∠DAE≈26.565° Eq. 3
∠DAB≈2*26.565°
∠DAB≈53.130°
The elementary tile according to the present invention then includes the following angles: ∠DAE≈26.565, ∠DAB≈53.130,
and the following vector lengths: AC=48 pt., BD=24 pt., ED=12 pt. from Pythagorean Theorem |AD|=|AB|=|BC|=|CD|=√{square root over ((AE2)}+ED2), |AD|=|AB|=|BC|=|CD|≈26.8328.
Having established an appropriate grid pattern with an elementary tile which emphasizes on CPU-computational efficiency the basis for an algorithm that provides a CNC-parameter generating method in an isometric projection environment have been laid.
In the following discussion when referred to isometric, isometric shall include the diametric projection as introduced with reference to
The aim of the algorithm is to facilitate generation of CNC-parameters in situ by a first person 501, having at his disposition a portable device 502, where the portable device 502 has capabilities as indicted above. The first person 501 can, according to the algorithm, create tube-bending drafts on screen on the portable device; export the draft as data to a receiving computer 506 and/or CNC-tube bending machine 507 for production of tubes according to the layout of the on screen draft.
The on-site first person 501 can be a field technician with knowledge in the art of designing tube layout systems. The first person 501 will, faced with a construction site where tubes are to be installed start taking measurements of tube paths, draw the tubes on the screen of his portable device 502 and add measurement of tube path to the portable device. Ultimately, the first person 501 may receive tubes with tube bending in accordance with his draft from one or more tube-bending machine 507.
In
Having entered points to the screen the points entered must be verified as valid 008 in a “vector length” test. In the second block 009-034 of
If two points are too close to each other on the screen, it is assumed that one of the points are invalid and for example caused by an unintentional “double-tapping”. Another reason to avoid points from being too close to each other is that it will result in short lines, which will give little space for labelling lines. Therefore, it is carried out a test measuring the absolute length of a vector, and if the vector is below a threshold set to Th the user will be requested to add a new second point, which together with the already entered first point will establish a line. The distance between the second—new point—and the original first point is measured and tested again. Following the “vector length”-test (substep 008) a vector orientation step is carried out 009-033. It must be verified that a correct orientation of the vector has been entered/drawn. For example, self-collision test(s) must be carried out. If a second vector is drawn opposite, of a previous vector then the two vectors will overlay each other indicating a tubing crash and this is not acceptable. If an opposite planar direction of a vector shall be valid, it must have a vertical UP or DOWN vector in between itself and a previous vector, i.e. SOUTH vector cannot follow directly after a NORTH vector. In addition, the absolute length of the UP or DOWN vector must be above a threshold Tv to prohibit a too sharp bend and to prohibit self-crash, due to the thickness of the tubes. A bend that is 180° may be handled by the software for CNC-parameter generation 502a as two consecutive 90° bends in line, where the bends can be two times the bending radius.
If the vector test fails then the first person 501 will have to restart input of parameters for the relevant vector.
Further vectors are entered/drawn in the third block 035-039 and 042-060,
When the first person 501 has finished his drawing of the tubes
The first person 501 may additionally enter bending angles for tubing used for calculation of 2D and 3D vectors.
A combination of input angle values and calculated angle values based on geometric and length of lines (vectors) is possible. For example, the first person may be faced with a system where angles of a previously known system shall be combined with a new system into one single new system. In one example a previously known system can be loaded into the portable device and the first person 501 may take observations in situ and add them into his portable device building on the system already loaded into the portable device 502.
The final step on the portable device 502 is to transfer dimensional values from the portable device 502 to one or more computers 503, 506, where the one or more computers are in communication with one or more CNC-tube bending machines 506. In addition, where one of the computers 503 can be used for generation of documentation.
The algorithm above with reference to
The algorithm above is simplified among others in that the verification routines were simplified. All points entered and all vectors calculated from entered points must be software checked to verify that they represent true data.
The following applies: [Eq 4]
To decide to which solid line a “finger tap” on the screen belongs the bisection lines—dotted lines—are used. If a tap “pt” is made such that the angle represented by a vector from origin to “pt” with reference to γ is smaller than α and bigger than γ it belongs to NORTH. This bisection concept is used for all directions (NORTH, UP, WEST, etc.). Too not exclude angles that have the exact same angle as α, β, γ, etc. the algorithms may at an upper limit or lower limit include the bisection angle, e.g. α, γ
. In practice, this will be of academic interest as the resolution normally will be high and the probability of “tapping” spot on a fixed angle (α, β, γ, etc.) is small.
A practical resolution hampering double taps to be registered has to be decided, effectively discriminating “vectors” that are shorter than a threshold—resolution. As indicated for the general routine above, if two points are too close to each other on the screen it is assumed that one of the points are invalid and for example caused by an unintentional “double-tapping”. If a vector is below a threshold set to Th, it is assumed that the vector, i.e. the last point is erroneous. In a practical example Th=(20 pt, 80 pt) and in one particular embodiment Th=40 pt. merely as an example.
An example of determination of vector orientation can in detail be carried out as indicated in the software routine in the box below, note that the numerically assigned angles are associated with the dotted lines of
Several approaches can be chosen to determine; whether an onscreen tap 301 is valid or not, whether a following tap 301 represents a valid vector, which direction the vector shall be appointed to and whether the tap 302 is a tap or a “press” 302. Onscreen press 302 indicates, according to one embodiment that a vector shall be drawn in a way which departs from the solid lines of
With respect to appointing a vector to a “true” direction in accordance with
The first approach, the “quadrant method” takes into account that trigonometric functions such as cosines, sines and tangent “repeats” itself periodically and it will be sufficient to first find out if a vector belongs to NORTH or UP in the first quadrant as a first intermediate step and then establish conditional tests which takes into account the sign of X and Y. The signs of X and Y will vary between quadrants. In a Cartesian system first quadrant means that bot X and Y≥0 however, in accordance to one variant of the present invention it is convenient to have a positive Y pointing downward, this simplifies the software algorithms. A first intermediate vector component angle, vcaint, is established by using absolute values X and Y vector component coordinates, in a next step it is decided if the true vca belongs to first, second, third or fourth quadrant. For example:
In the table above we take into consideration that
will vary between 0 and near to 90°.
In a twist of the “quadrant method” above
which means that the value of tan(vcaint) is the same for each 180°, i.e. tan α=tan (α+180°). The same principle as in the table above applies, which gives:
The second approach is illustrated in the table below.
A first intention of the software routine above is to provide a 0-360° range for vectors. First step is to turn the vector coordinate system up-side down so that the Y-component in the 2D space is pointing upward. Note that by default the coordinate [0, 0] is located at the top left corner of the display unit 502c. In order to make the code easier to reed, we flip the coordinate system. Now the coordinate [0, 0] is located in the lower left corner of the display unit 502c—as one commonly know it from mathematics. The flip of the coordinates is a measure for user friendliness and is not necessary to carry out the invention, though in the software 502a one has to take account for whether the Y-coordinates are upside down or not. Thereafter the angle of the vector is determined. Determination of vector angles are simply carried out by series of tests, wherein it is tested if a vector end point lies between two particular dotted lines, starting with γ and α, if the first test is true the point is assigned to the NORTH axis giving a vector with a NORTH direction. If the test fails, a new range is tested until one has tested for all six directions. To carry out the determination of the angle a virtual reference vector [1,0] is introduced. It is not due to the coordinate system being flipped that an angle between 0-360 degrees can be determined. This is due to a custom method “getAngle” which checks whether the X- or Y component of a vector are positive or negative.
If both X & Y are positive, this indicates first quadrant, and if X is negative and Y is positive, it is an indication of the second quadrant and so on.
By knowing which quadrant the vector is located in, one can add 0/180/360-degrees, based on use of tangent, where an angle is found based on the length of decomposed X-vector and Y-vector. This is in contrast to the use of trigonometric functions such as Cosines, Sines or Tangent, which works within a range of ABS (0-90°).
Below follows a routine, which is associated with
The two tables above describes different approaches to determine vector angles to be calculated after a first operator 501 has entered vector coordinates by tapping twice on the screen 502c. The second table, algorithm, includes steps to verify if valid coordinates have been entered by the first operator 501, double tapping is checked as well as the length of a vector. The second table also includes algorithms for onscreen entries that deviates from the entries associated with entries that renders vectors coinciding with the six directions, NORTH, UP, WEST, SOUTH, DOWN and EAST. The first table includes steps for decision directions, i.e. UP, DOWN etc. The steps given in table one are alternatives to the steps given in step 009-033 in table 2, also see
A portable device 502 is defined above, it shall be understood that the elements indicated as integrated with the portable device 502, such as a touch screen etc., is logically integrated, physically they can be split. For instance, a “dumb” input device 502b in the form of a touch screen 502c may communicate with software program 502a in a microprocessor device 502, in a physically decentralised system.
Function onSingleTap is called when an operator taps the finger on a grid on the portable device. The touch location sent as a parameter gets snapped to the grid and a line is drawn from a previous location to the new location. The line is then validated according its direction as well as the direction of the previous line. This is to prevent the operator from drawing the line on top of the last line and to prevent the operator from drawing lines that do not conform with the grid lines on the portable device.
Listing 1: onSingleTap
Snap Point to Grid
This algorithm receives a raw input from a touch screen and returns a new Point snapped to the closest junction in an isometric grid. Line number six in the box 4 below shows a two step conversion from a raw floating number input too; first a rounded number (up or down) and secondly to an integer, hence the raw floating number are converted to an X and Y integer. The variables tileWidth and tileHeight represents the distance between each junction. The line numbers 9-12 in box 4 decides whether the X integer parameter shall be snapped to the right or left in a tile, ref
Listing 2: snapToGrid
Validate Direction
The values x and y (listing 3) are calculated to be the x- and y component of a vector reaching from point lastPoint to point newPoint. The angle of this vector is calculated using the function atan 2. This angle is then used to check what direction the vector is pointing. An allowable angle will return a true value, i.e. If the vector does not conform in parallel with the gridlines or if the vector points in the opposite direction of the last line. The direction is considered illegal and user input is ignored, i.e. a false return is established ref. line numbers 15-24 in box 5.
Listing 3: validateDirection
NORTH NORTH is a vector in an isometric projection environment for tube bending according to an embodiment of the present invention. A positive X-vector component and a negative Y-vector component in a 2D projection corresponding to a touch screen projection (502c).
Number | Date | Country | Kind |
---|---|---|---|
20190267 | Feb 2019 | NO | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/025092 | 2/25/2020 | WO | 00 |