#emc-devel | Logs for 2008-09-09

[06:39:37] <alex_joni> away
[07:12:08] <alex_joni> with a / it works better
[12:24:38] <CIA-29> EMC: 03bigjohnt 07v2_2_branch * 10emc2/docs/src/common/Getting_EMC.lyx: change layout a little
[12:27:10] <CIA-29> EMC: 03bigjohnt 07v2_2_branch * 10emc2/docs/src/ (docs.xml index.tmpl): replace master doc in html with individual doc and understand the html process better
[12:27:18] <CIA-29> EMC: 03bigjohnt 07v2_2_branch * 10emc2/docs/src/config/stepper.lyx: replace master doc in html with individual doc and understand the html process better
[14:13:37] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/src/emc/nml_intf/emc_nml.hh: add license statement. emc_nml.hh was split from emc.hh which bears a GPL license
[14:57:55] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/docs/src/ (Master_Integrator_fr.lyx Master_User_fr.lyx Submakefile): french translation
[14:57:56] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/docs/src/common/ (userforeword_fr.lyx Document_Header_fr.lyx user_intro_fr.lyx): french translation
[14:57:57] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/docs/src/examples/ (gcode_fr.lyx misc_fr.lyx mpg_fr.lyx spindle_fr.lyx): french translation
[17:45:34] <issy> yap , I am here
[17:45:38] <alex_joni> hello
[17:45:54] <alex_joni> issy: maybe you can describe what you want to do, before we can offer advice
[17:45:56] <issy> newer used this thinks before
[17:46:21] <issy> Thanks.
[17:46:42] <alex_joni> this tutorial is good material for reading about IRC: http://www.irchelp.org/irchelp/irctutorial.html
[17:47:54] <issy> ok. first I amworking on new grafic user interface , most suitable for industrial use , evan the standart mouse is working , the real power come with the touch screen and expternal keyboard developed
[17:48:05] <issy> to be used with this system.
[17:48:31] <issy> the work is on beta test stage and several functions still
[17:48:40] <issy> have to be implemented.
[17:49:01] <issy> but the connection with the emc is working the grafic as well.
[17:50:03] <issy> i invite everybody to test it. the idea was to be used directly with the x of the linux rt
[17:50:18] <issy> so the gnom can be removed
[17:50:52] <issy> or to be instaled on windows and to control the emc remotely with the tcp/it connection
[17:51:59] <issy> currently , i have to implement the stand alone interpretter inside the gui , in order to have path preview ,before the program is started.
[17:52:59] <issy> unfortunately the snake is not my power , so , i cannot look in the axis gui , to see haw is implemented.
[17:53:12] <issy> and tonight i will work on that.
[17:53:25] <issy> so , any suggestions are wellcome.
[17:53:56] <alex_joni> as jepler said the interpreter is in src/emc/rs274ngc
[17:54:01] <alex_joni> and it's all c++
[17:54:19] <issy> yep , but this is the main interpreter
[17:54:23] <alex_joni> right
[17:54:35] <alex_joni> and the same interpreter is built together with gcodemodule.cc
[17:54:51] <issy> and the secondary for the path preview in the axis?
[17:55:00] <alex_joni> it's the same sources
[17:55:06] <alex_joni> but linked with other parts
[17:55:25] <alex_joni> the main interpreter gets called from emctask, and the interpreter calls canonical codes from emccanon
[17:55:42] <issy> are the cannonical identical?
[17:55:56] <alex_joni> the AXIS interpreter gets called from AXIS (it's linked with gcodemodule.cc) and the interpreter calls canonical codes which are exposed by gcodemodule.cc
[17:56:02] <alex_joni> the canon calls are always the same
[17:56:16] <alex_joni> they are defined in canon.hh
[17:56:43] <alex_joni> so what you need to do is write your linking part which connects to interpreter
[17:56:56] <alex_joni> and your part then calls the interpreter with the file it needs to interpret
[17:57:11] <alex_joni> and also you expose the CANON calls the interpreter will use
[17:57:18] <alex_joni> for example lets take G1
[17:57:42] <alex_joni> G1 gets interpreted in interp_convert then in convert_g
[17:57:59] <alex_joni> and there you will see a call for STRAIGHT_FEED()
[18:01:40] <alex_joni> so in your file you need to define STRAIGHT_FEED()
[18:01:55] <alex_joni> and when the interp calls STRAIGHT_FEED() you need to draw a line in the preview
[18:02:46] <issy> ok. thanks. i am starting now
[18:03:17] <alex_joni> is it making sense?
[18:04:33] <issy> yes.
[18:05:01] <alex_joni> ok, perfect
[18:05:08] <alex_joni> have fun then
[18:09:09] <issy> if tomorow works , mean I have undurstand haw to do it. let see.
[18:09:48] <issy> meantime , if somebody want to see the new interfase and to give sugestions is welcome.
[18:14:11] <alex_joni> bbl
[18:39:22] <issy> the picture of new gui are at imagebin.org
[18:39:29] <issy> please comment
[18:40:29] <alex_joni> issy: you need to paste the full link, there are tons of pictures there :)
[18:40:37] <alex_joni> http://imagebin.org/26026
[18:42:18] <issy> www.imagebin.org
[18:42:21] <issy> sorry
[18:42:54] <issy> www.imagebin.org
[18:43:02] <issy> 2 pictures
[18:45:57] <issy> look for nickname issy
[18:46:18] <issy> all my pictures are under this name
[19:08:49] <fenn_> fenn_ is now known as fenn
[19:31:20] <alex_joni> hi fenn
[19:38:41] <micges> making all axis interface as set of xml scripts would be very cool
[19:44:12] <fenn> i think pyvcp is pretty close to that already
[19:47:36] <micges> close
[19:48:29] <micges> I mean building from small blocks like:
[19:49:27] <micges> I know I need: a 3d preview, a gcode preview, rpm meter, program control buttons
[19:49:41] <micges> then I put it together
[20:13:49] <micges> what is the difference between commanded and actual position ?
[20:14:25] <micges> commanded is out from emc and actual is from encoders ?
[20:15:28] <micges> question is about AXIS of course
[20:17:53] <jepler> that's right (but all the user interfaces have this distinction as far as I know)
[20:18:12] <jepler> in the case of steppers they can differ e.g., due to the number of steps taken
[20:20:46] <micges> thanks
[20:28:32] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/docs/man/man1/halui.1: improve manpage layout and add axis pins
[20:32:33] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/src/emc/motion/ (control.c mot_priv.h motion.c): make motion a HAL pin so it can be connected in vcp
[20:34:21] <alex_joni> jepler: thanks
[20:36:12] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/src/emc/motion/ (control.c mot_priv.h motion.c): add distance to go as a HAL pin
[20:38:27] <issy> how to get TC_STRUCT? from NML I can get only EMC_STAT which contains many things, but nothing of type TC_STRUCT, moreover TC_STRUCT is as I can see something internal to emc and is not part of nml interface
[20:39:06] <micges> jepler: thanks for those changes
[20:39:06] <jepler> yes, that's right. TC_STRUCT is internal to the trajectory planner if I recall correctly.
[20:39:26] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/docs/man/man9/motion.9: velocity and dtg as pins of motion
[20:39:37] <CIA-40> EMC: 03jepler 07TRUNK * 10emc2/docs/man/man1/halui.1: velocity and dtg as pins of motion
[20:42:13] <issy> and I have to take them from the halmeter?
[20:42:35] <jepler> issy: what information are you looking for that is in a TC_STRUCT?
[20:45:54] <issy> alex told me to look there for TC_STRUCT coords.line
[20:46:32] <issy> my point is to have from the nml the distance to go separate from each axis
[20:47:53] <issy> for each axis ... sorry
[20:48:20] <jepler> I see
[20:50:46] <jepler> in tpRunCycle you have access to the current TC_STRUCT through the variable 'tc'. That's the first step in getting distance_to_go from the realtime motion controller to the nml status buffer
[20:52:09] <jepler> from there it is placed in emcmotStatus which is also available in task through shared memory; task copies it into stat (function emcTrajUpdate)
[20:52:15] <issy> i will try
[20:52:57] <jepler> of course you have to define what the "X (or Y or so on) distance to go" is for some interesting cases, such as a 360-degree circle
[20:53:02] <issy> another isue is haw to set the 0 for the relative fromG54 to G59
[20:53:55] <jepler> axis "touch off" works by issuing a G10 L2 command
[20:54:44] <jepler> MDI
[20:55:15] <issy> setting relative zero for g54
[20:56:41] <issy> can you make for us halui modula that can give us the distance to go?
[20:57:00] <issy> this part is not verry clear to me.
[20:59:07] <jepler> not at the moment
[20:59:19] <jepler> bbl
[20:59:53] <issy> thanks:)
[21:15:05] <alex_joni> issy: as I said, if you want to get separate coords for distance to go, you need to edit the trajectory planner
[21:15:32] <alex_joni> currently only a general distance to go is beeing written (in the trajectory planner) to the motion status buffer
[21:15:35] <issy> alex , maybe the best way will be by addition in the halui
[21:15:36] <alex_joni> and from there it gets to NML
[21:15:56] <alex_joni> halui is not realtime, you don't have access to this stuff there
[21:16:06] <issy> ok. can we fix this in the trajectory planer?
[21:16:25] <alex_joni> well, I don't know enough about the TP to definately say yes
[21:16:29] <alex_joni> but I suspect so
[21:16:38] <alex_joni> hang on..
[21:17:25] <alex_joni> emcmotStatus->distance_to_go = tc->target - tc->progress;
[21:17:44] <alex_joni> currently the distance to go gets computed from the target - the current position
[21:18:21] <alex_joni> (this target and progress are expressed as segment lengths)
[21:18:39] <alex_joni> they don't have a separation on different axes (x,y,z, etc..)
[21:19:34] <alex_joni> so if you want to fix this, you need to add the different distances to go for X,Y,Z
[21:19:54] <alex_joni> this is not something I think fits emc2, because I don't think it can be made generic enough
[21:20:13] <alex_joni> (think about XYZABCUVW.. all kinds of possible combinations of lines and circles, etc..)
[21:20:25] <alex_joni> but if you only want to do it for XYZ, then it might be possible
[21:21:06] <issy> yes ,mainly x, y z
[21:21:06] <alex_joni> instead of calculating distance to go as above, you need to write 3 different distance to go based on the type of move that is performed
[21:21:28] <alex_joni> so.. lets assume you are moving in a line
[21:21:48] <alex_joni> tc->motion_type will be of type TC_LINEAR
[21:22:22] <alex_joni> if (tc->motion_type == TC_LINEAR) distance_to_go_x = endpoint.x - currentpoint.x
[21:22:26] <alex_joni> same for y and z
[21:22:50] <issy> the tc is clear , but from the nml , i cannot acses it.
[21:22:58] <alex_joni> of course you need to get the endpoint and the current point, but that should be ok
[21:23:08] <alex_joni> in motion.h you have distance_to_go defined
[21:23:22] <alex_joni> you need to add your new distance_to_go_x, _y, ...
[21:23:33] <alex_joni> then they will be part of the motion stat structure
[21:23:53] <alex_joni> in (taskintf?) the motion stat structure gets copied to NML, make sure it gets copied there too
[21:24:45] <alex_joni> hmm.. seems my memory is pretty acceptable :D
[21:24:49] <alex_joni> http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/taskintf.cc?rev=1.93
[21:24:59] <alex_joni> stat->distance_to_go = emcmotStatus.distance_to_go;
[21:25:23] <alex_joni> obviously you need to add distance_to_go_x, _y, ... to EMC_TRAJ_STAT
[21:25:29] <alex_joni> and to emcTrajUpdate()
[21:25:37] <alex_joni> then you should be able to access it
[21:26:33] <alex_joni> too bad cradek is travelling, he knows lots more about TP
[21:26:43] <alex_joni> (that is still an understatement)
[21:27:11] <issy> any idea when will be back?
[21:30:32] <alex_joni> nope
[21:30:52] <alex_joni> huh, wth happened on steve blackmore's pc
[21:32:39] <issy> ok. alex , I will fix this , but it will be a fix in the emc ,so any next version must come with it.
[21:33:11] <alex_joni> like I said, this is not something I can see solved easily
[21:33:13] <issy> you have to put it in the next version package
[21:33:32] <alex_joni> if you submit a patch for this, then it might stand a chance
[21:33:45] <issy> yes , ofcource
[21:49:55] <jepler> alex_joni: I just don't see how "distance to go in X" is defined. what is it at the start of a 360 degree circle?
[21:50:25] <jepler> 0? 4*R?
[22:00:32] <alex_joni> 0
[22:00:43] <alex_joni> but I think that depends on who implements it..
[23:05:51] <jmkasunich> DTG on a per axis basis doesn't make a whole lot of sense