- 05 Mar, 2012 1 commit
-
-
Whitham D. Reeve II authored
PyCam has been spending about 75% of it's time creating point objects. I decided to replace the pycam Point object with a 3 position tuple, and the pycam Vector object with a 4 position tuple. All of the point object methods were rewritten to accept and emit tuples. The transform_by_matrix method was rewritten to accept both 3 and 4 position tuples with behavior dependent on that size. The normalized method is the only method required to emit the same kind of object that it is called on, and this has been taken care of with the tuple version. What does this mean? All instances of Point(x,y,z) have been converted into (x,y,z) All instances of Vector(x,y,z) have been converted into (x,y,z,'v') The notation to access the x,y,z of the Point objects has been been changed from p.x,p.y,p.z to p[0],p[1],p[2] The notation for the point math functions has been completely changed. Instead of p1.sub(p2) it has been converted to psub(p1,p2) Instead of p1.sub(p2).mul(0.5) it has been converted to pmul(psub(p1,p2), 0.5) It is very important to point out that the tuple is an immutable type. You can not change it once you create it. t[0] = calculated_x_value # syntax error You have to replace the reference (t) to the old tuple with a new reference to a new tuple. t = (calculated_x_value, t[1], t[2]) # works There was a particularly hairy mutable/immutable barrier in the next() generator present in each class that inherits TransformableContainer. The TransformableContainer.transform_by_matrix function uses these generators to collapse polygons and lines and triangles into points where a shift is performed on each. Now that point is immutable, you can not change the value emitted by the generator. Geometry/__init__.py transform_by_marix and the associated next() generator in each sub class has been rewritten to transfer the attr used to store the reference to the tuple. Geometry/__init__.py transform_by_matrix now sets these attributes which effectively gets around this limitation. There could be some old point object code in any of the files not contained in this commit. It is impossible to know without running the code path and/or careful analysis of each file. Some list comprehensions that convert a list of point objects into a 3 position tuple have been removed. Whitham D. Reeve II
-
- 21 Jan, 2012 1 commit
-
-
Paul Bonser authored
-
- 09 Jul, 2010 1 commit
-
-
sumpfralle authored
moved all source files to a separate "src" directory git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@424 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 21 Jun, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@407 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 17 Jun, 2010 1 commit
-
-
lode_leroy authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@400 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 14 Jun, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@393 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 13 Jun, 2010 1 commit
-
-
sumpfralle authored
fixed a PushCutter typo git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@388 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 12 Jun, 2010 1 commit
-
-
sumpfralle authored
(btw: this allows engraving with triangular collision detection) git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@387 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 11 Jun, 2010 12 commits
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@380 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@379 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@376 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@374 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@372 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@370 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@362 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@361 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@360 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@359 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
cleaned up imports git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@358 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@356 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 10 Jun, 2010 1 commit
-
-
sumpfralle authored
implemented a finer grained progress bar for PushCutter git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@340 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 07 Jun, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@339 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 25 Apr, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@336 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 22 Apr, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@329 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 04 Apr, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@295 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 03 Apr, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@294 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 06 Mar, 2010 1 commit
-
-
sumpfralle authored
moved the "Dimension" class to the DropCutter to avoid circular imports under some circumstances (thanks to Dan Heeks) git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@207 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 24 Feb, 2010 1 commit
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@168 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 23 Feb, 2010 3 commits
-
-
sumpfralle authored
prevent the DropCutter from going down to zero, if the model exceeds the height of the bounding box (introduced by the new dropcutter code) - this (obviously) violates the boundary box limits git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@166 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
changed the gcode exporter code to allow a specific definition of the safety height (instead of previous "max(safetyheight, homeheight, startz)") moved "startz" offset (based on the configured measurement unit) from SimpleGCodeExporter to the Gui code to allow more control slight beautification of the gcode exporter code (added spaces between operators and after commas - according to PEP 8) git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@165 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@163 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
- 22 Feb, 2010 9 commits
-
-
sumpfralle authored
git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@161 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
fixed remaining reference to INFINITE (now: safe height) git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@157 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
make sure that the path generators never get stuck in in infinite loop caused by floating point inaccuracies define a maximum recursion depth (20) for the PushCutter algorithm (i.e. maximum precision = 1/(1^20) of bounding box width) git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@156 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
use a calculated "safe height" instead of "utils.INIFINITE" for a boundary limit failure in DropCutter (otherwise it looks like a bug) - issue a warning once git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@154 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
implemented ODE support for the PushCutter git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@152 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
simplified some cutter code moved "Dimension" to the base of PathGenerator git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@151 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
make sure that the toolpath always covers the outermost bounding box limit, even if the step width is not an integer divider of the bounding dimension git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@142 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
ODE can be enabled via GUI and is detected automatically fixed closing of "save file" dialog via ESC git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@135 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-
sumpfralle authored
visualization is configurable via the GUI fixed draw_callback for PushCutter git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@132 bbaffbd6-741e-11dd-a85d-61de82d9cad9
-