linuxcnc blogs

September 02, 2010

anderswallin.net » CNC

Shaped cutters

For making 60-degree dovetails, and R=2mm rounded edges.

by Administrator at September 02, 2010 09:18

August 31, 2010

git.linuxcnc.org Git - emc2.git/rss log

tkemc: visual improvements

tkemc: visual improvements

* get rid of undesirable ridge border on jog speed controls
* align jog controls to the top of their area, not center
  (better appearance when there are no angular axes)
  • [DH] tcl/tkemc.tcl

by Jeff Epler at August 31, 2010 14:34

tkemc: show work offsets for all axes

tkemc: show work offsets for all axes
  • [DH] tcl/tkemc.tcl

by Al Smart at August 31, 2010 14:30

Alex's blog: photography and more

Short trip to Buzias this saturday

Close to my home town (Timisoara) there's a smaller city called Buzias..

August 31, 2010 12:43

August 29, 2010

anderswallin.net » CNC

Equatorial wedge – top plate

This is the top plate of the wedge which will be tilted so that the alt/az mount which is bolted to it has its azimuth axis pointing towards the celestial north pole. The side-plates will have to wait until next weekend.

29082010475 29082010478 29082010479 29082010480

by Administrator at August 29, 2010 19:33

git.linuxcnc.org Git - emc2.git/rss log

Merge branch 'v2.4_branch'

Merge branch 'v2.4_branch'
  • [DH] docs/README
  • [DH] docs/src/config/lathe_config.lyx
  • [DH] docs/src/config/stepconf.lyx
  • [DH] docs/src/config/stepper.lyx
  • [DH] docs/src/hal/basic_hal.lyx
  • [DH] docs/src/hal/halshow.lyx
  • [DH] docs/src/lathe/lathe-user.lyx
  • [DH] src/emc/rs274ngc/tool_parse.cc
  • [DH] src/emc/usr_intf/pncconf/pncconf.py

by Chris Radek at August 29, 2010 18:56

interp: Get rid of tortured code

interp: Get rid of tortured code

This
	b = (x != 0) ? 1 : 0;
is really just a tortured way to write
	b = x;
so do the simple thing.

Thanks to cradek for pointing these out.
  • [DH] src/emc/rs274ngc/interp_convert.cc
  • [DH] src/emc/rs274ngc/rs274ngc_pre.cc

by Jeff Epler at August 29, 2010 17:47

interp: use true, false instead of ON, OFF

interp: use true, false instead of ON, OFF
  • [DH] src/emc/rs274ngc/interp_convert.cc
  • [DH] src/emc/rs274ngc/interp_cycles.cc
  • [DH] src/emc/rs274ngc/interp_execute.cc
  • [DH] src/emc/rs274ngc/interp_internal.cc
  • [DH] src/emc/rs274ngc/interp_internal.hh
  • [DH] src/emc/rs274ngc/interp_read.cc
  • [DH] src/emc/rs274ngc/rs274ngc_pre.cc

by Jeff Epler at August 29, 2010 15:37

interp: get rid of the ON_OFF typedef

interp: get rid of the ON_OFF typedef

This typedef dates to the same era which provided us with the much-reviled
IS and SET_TO and is about as beneficial.
  • [DH] src/emc/rs274ngc/interp_internal.hh
  • [DH] src/emc/rs274ngc/rs274ngc.hh
  • [DH] src/emc/task/emctask.cc

by Jeff Epler at August 29, 2010 15:24

interp: prefer boolean tests to == ON tests

interp: prefer boolean tests to == ON tests

In idiomatic C++, the right way to check the truth value of a boolean
is to simply use it in a boolean context, not compare it to the ON
or OFF (true or false) value.

This change was performed mechanically by executing the following
commands in src/emc/rs274ngc:
  sed -i 's/\([-a-zA-Z_0-9>]*\) == ON/\1/g' *.cc
  sed -i 's/\([-a-zA-Z_0-9>]*\) != OFF/\1/g' *.cc
  sed -i 's/\([-a-zA-Z_0-9>]*\) == OFF/!\1/g' *.cc
  sed -i 's/\([-a-zA-Z_0-9>]*\) != ON/!\1/g' *.cc
  • [DH] src/emc/rs274ngc/interp_check.cc
  • [DH] src/emc/rs274ngc/interp_convert.cc
  • [DH] src/emc/rs274ngc/interp_cycles.cc
  • [DH] src/emc/rs274ngc/interp_execute.cc
  • [DH] src/emc/rs274ngc/interp_find.cc
  • [DH] src/emc/rs274ngc/interp_internal.cc
  • [DH] src/emc/rs274ngc/interp_inverse.cc
  • [DH] src/emc/rs274ngc/interp_read.cc
  • [DH] src/emc/rs274ngc/interp_write.cc
  • [DH] src/emc/rs274ngc/rs274ngc_pre.cc

by Jeff Epler at August 29, 2010 15:19

interp: add t_flag

interp: add t_flag

For symmetry, all words should be a combination of a number and a flag.
  • [DH] src/emc/rs274ngc/interp_execute.cc
  • [DH] src/emc/rs274ngc/interp_internal.cc
  • [DH] src/emc/rs274ngc/interp_internal.hh
  • [DH] src/emc/rs274ngc/interp_read.cc

by Jeff Epler at August 29, 2010 13:59

interp: add s_flag

interp: add s_flag

For symmetry, all words should be a combination of a number and a flag.
  • [DH] src/emc/rs274ngc/interp_check.cc
  • [DH] src/emc/rs274ngc/interp_execute.cc
  • [DH] src/emc/rs274ngc/interp_internal.cc
  • [DH] src/emc/rs274ngc/interp_internal.hh
  • [DH] src/emc/rs274ngc/interp_read.cc

by Jeff Epler at August 29, 2010 13:56

interp: add f_flag

interp: add f_flag

For symmetry, all words should be a combination of a number and a flag.
  • [DH] src/emc/rs274ngc/interp_check.cc
  • [DH] src/emc/rs274ngc/interp_convert.cc
  • [DH] src/emc/rs274ngc/interp_execute.cc
  • [DH] src/emc/rs274ngc/interp_internal.cc
  • [DH] src/emc/rs274ngc/interp_internal.hh
  • [DH] src/emc/rs274ngc/interp_read.cc

by Jeff Epler at August 29, 2010 13:49

add info on smart quotes

add info on smart quotes

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/README

by John Thornton at August 29, 2010 13:37

typo's submitted by KimK

typo's submitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/hal/halshow.lyx

by John Thornton at August 29, 2010 13:30

typo's submitted by KimK

typo's submitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/lathe/lathe-user.lyx

by John Thornton at August 29, 2010 13:29

typo's submitted by KimK

typo's submitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/hal/basic_hal.lyx

by John Thornton at August 29, 2010 13:28

typo's subbmitted by KimK

typo's subbmitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/hal/halshow.lyx

by John Thornton at August 29, 2010 13:27

typo's submitted by KimK

typo's submitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/hal/basic_hal.lyx

by John Thornton at August 29, 2010 13:20

typo's submitted by KimK

typo's submitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/config/stepper.lyx

by John Thornton at August 29, 2010 13:18

typo's subbmitted by KimK

typo's subbmitted by KimK

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/config/lathe_config.lyx

by John Thornton at August 29, 2010 13:14

note that no hardware needs to be connected to run the latency test

note that no hardware needs to be connected to run the latency test

Signed-off-by: John Thornton <jthornton@gnipsel.com>
  • [DH] docs/src/config/stepconf.lyx

by John Thornton at August 29, 2010 11:27

August 28, 2010

git.linuxcnc.org Git - emc2.git/rss log

On random tc, correctly skip invalid tool table entries

On random tc, correctly skip invalid tool table entries

This fixes an error case on random tc when a tool table entry
described a pocket that was out of range.  This printed an error
message but then if there were subsequent valid words on the line,
the entry was incorrectly marked as 'valid' again, and the invalid
pocket number caused the array to be written out of bounds.

To reproduce, on a random tc config, use a tool entry such as
T1 P99999 Z1.0

With this change, the invalid entry is skipped when reading, so
when the tool table later gets rewritten it's gone.  I think this
was the original intent.
  • [DH] src/emc/rs274ngc/tool_parse.cc

by Chris Radek at August 28, 2010 23:51

anderswallin.net » CNC

Equatorial wedge – base plate

I’m building an equatorial wedge which will transform my new alt/az goto-mount into an equatorial mount. This is the first part which attaches to the tripod. Two smaller side plates will be bolted to this plate and support a similarly shaped tilted plate to which the alt/az head attaches. The design is similar to the “mega wedge pro” (how about that for a product name!).

by Administrator at August 28, 2010 19:26

git.linuxcnc.org Git - emc2.git/rss log

complete installation of gladevcp

complete installation of gladevcp
  • [DH] src/Makefile

by Jeff Epler at August 28, 2010 13:52

remove file added by mistake

remove file added by mistake
  • [DH] configs/plasma-thc/mp1000_serial.py.threadedNonSafe

by Jeff Epler at August 28, 2010 13:34

remove execute bits that don't belong

remove execute bits that don't belong
  • [DH] src/emc/kinematics/gantrykins.c
  • [DH] src/hal/classicladder/configplc
  • [DH] src/hal/classicladder/projects_examples/IndexedVar_used_in_function.clp
  • [DH] src/hal/classicladder/projects_examples/example.clp
  • [DH] src/hal/classicladder/projects_examples/modbus_rtu_serial.clp
  • [DH] src/hal/classicladder/projects_examples/test_call_subroutines.clp
  • [DH] src/hal/drivers/opto_ac5.c
  • [DH] src/hal/drivers/opto_ac5.h

by Jeff Epler at August 28, 2010 13:31

August 27, 2010

git.linuxcnc.org Git - emc2.git/rss log

add gladevcp.py for gladevcp component

add gladevcp.py for gladevcp component

somehow this got missed
  • [DH] src/hal/user_comps/gladevcp.py

by Chris Morley at August 27, 2010 23:17

addbasic man page for gladevcp

addbasic  man page for gladevcp
  • [DH] docs/man/man9/gladevcp.9

by Chris Morley at August 27, 2010 22:47

add gladevcp to emc

add gladevcp to emc

This allows virtual control panals to be made
using GTK and the GLADE UI editor. At this point
system links need to be added to use GLADE. see
the READ_ME
  • [DH] lib/python/gladevcp/READ_ME
  • [DH] lib/python/gladevcp/hal_python.xml
  • [DH] lib/python/gladevcp/hal_pythonplugin.py
  • [DH] lib/python/gladevcp/hal_widgets.py
  • [DH] lib/python/gladevcp/led.py
  • [DH] lib/python/gladevcp/widget-hal_pythonplugin-hal_led.png
  • [DH] lib/python/gladevcp_makepins.py
  • [DH] src/Makefile
  • [DH] src/hal/user_comps/Submakefile

by Chris Morley at August 27, 2010 22:21

anderswallin.net » CNC

AXIS with PyVCP jogwheel

By popular demand, an example where a PyVCP jogwheel is hooked up to AXIS:

The files needed to make this work are in here: axis_jogwheel.tar

by Administrator at August 27, 2010 15:12

git.linuxcnc.org Git - emc2.git/rss log

Merge remote branch 'origin/v2.4_branch'

Merge remote branch 'origin/v2.4_branch'
  • [DH] docs/README
  • [DH] docs/man/man1/halui.1
  • [DH] docs/src/README
  • [DH] docs/src/config/ini_homing.lyx
  • [DH] tcl/tkemc.tcl

by Jeff Epler at August 27, 2010 14:43

anderswallin.net » CNC

Radial tool projection

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 the facet test (green dots) are straightforward to implement. The edge-test (blue dots) is more involved. The above figure is for a CylCutter where the edge-test is implemented through the vertex-test (thus red dots along the edges), but this figure for a BallCutter shows the colors better:

Blue dots show edge-contacts with the spherical part of the cutter, light-blue dots show edge-contacts with the cylindrical shaft of the cutter.

The vertex test requires only a radius(h) function that returns the radius of the cutter at height h. The facet test needs three parameters (n, nxy, c) for each cutter, which define where the cutter should be located relative to a point which lies on the facet. From the CC-point on the facet we go a distance n along the 3D unit-normal, then a distance nxy along a unit-normal in the XY-plane to find the cutter center. From the cutter center we go down along the z-axis by a distance c to find the CL-point.

Figuring out the (n,nxy,c) parameters for CylCutter and BallCutter is left as an exercise for the reader.

These points are then hooked up in the correct order to produce waterlines like this (CylCutter on the left, BallCutter on the right).

The edge-test for CylCutter reduces to a 2D problem of line-line intersections, while the edge-test for BallCutter can be done by intersecting a cylinder/tube around the edge with a line. The filleted/toroidal/BullCutter edge-test is much harder. Here I’ve just implemented the special case where the edge is horizontal and the solution is easy to find analytically. The general case where the edge slopes up or down  requires an iterative solution to either a quartic or the offset-ellipse problem.

by Administrator at August 27, 2010 11:53