Posted by Administrator on 2010 Aug 27
The basic operation when producing waterline-paths is to push the cutter along either the X or Y axis (red and green arrows) into contact with a triangle (cyan lines). That’s done through three different functions, one each for the vertices, facet, and edges of the triangle. The vertex test (results shown as red dots) and [...]
Posted by Administrator on 2010 Aug 18
Update: this figure shows the numbering of vertices(red), edges(green), and faces(blue). The arrows show the direction of the X-(red), Y-(green), and Z-axes(blue). Here the sides of the cube are not generated with Marching-Cubes, they are just extracted directly from the octree. Nodes are subdivided whenever the signed distance-field of the cutter indicates that the surface [...]
Posted by Administrator on 2010 Aug 16
The speed of the new cutting-simulation code makes it possible to run it at a higher resolution than before. That makes the surfaces look smooth and nice. Alas, some problems still remain with holes in the fabric of reality mystically appearing and disappearing . There is an edge-flipping paper by Kobbelt et al. from 2001 which improves [...]
Posted by Administrator on 2010 Aug 14
This is my second attempt at a machining simulation where a moving milling tool cuts away voxels from the stock material. To save space an octree data structure is used to store the voxels, and to produce a nice looking surface you store the signed distance to the exact surface in each vertex of the [...]
Posted by Administrator on 2010 Aug 9
Update 3: this leads slowly towards a better and faster cutting simulation. Here’s an example with Tux: Update2: this looks slightly better now (a ball translated in a few steps towards the right). Image and c++ code by fellow OCLer Jiang from China. Update: in a cutting simulation the stock is updated by removing voxels [...]
Posted by Administrator on 2010 Aug 3
When creating waterlines or 2D offsets using a “sampling” or “CL-point based” approach the result is a grid or weave such as that shown in black above. The black lines can in principle be unevenly spaced, and don’t necessarily have to be aligned with the X/Y-axis. The desired output of the operation is shown in [...]
Posted by Administrator on 2010 Aug 2
This example has three times more fibers, and thus also CL-points, than the original one, but it still runs in a reasonable time of ~15s because (1) I hard-coded the matrix-determinant expressions everywhere instead of relying on a slow general purpose function and (2) the batch-processing of the fibers now uses OpenMP in order to [...]
Posted by Administrator on 2010 Jul 30
I’ve written a function that looks at the weave and produces a boost adjacency-list graph of it. The graph can then be split up into separate disconnected components using connected_components. To illustrate this, the second highest waterline in the picture below has six disconnected components: around the beak, belly, and toes(4). When we know we [...]
Posted by Administrator on 2010 Jul 17
After the proof-of-principle waterline experiments two days ago I’ve modified the KD-tree search so that triangles overlapping with the cutter can be searched for in the XZ and YZ planes (in addition to the XY-plane, which was needed for drop-cutter). This dramatically reduces the number of triangles which go through the pushCutter function and makes [...]
Posted by Administrator on 2010 Jul 14
The logical next step from drop-cutter (“axial tool projection” or “z-projection machining”) is to instead push the cutter sideways(“radial tool projection”) against the model and get waterline (or “z-slice”) paths. In addition to waterline finish-paths these paths can be used in roughing where they define pockets for 2D machining/clearing of stock. The general purpose tool-location [...]