亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? emccanon.cc

?? Source code for an Numeric Cmputer
?? CC
?? 第 1 頁 / 共 4 頁
字號:
    CANON_POSITION position;    EmcPose pos;    pos = emcStatus->motion.traj.position;    // first update internal record of last position    canonEndPoint.x = FROM_EXT_LEN(pos.tran.x);    canonEndPoint.y = FROM_EXT_LEN(pos.tran.y);    canonEndPoint.z = FROM_EXT_LEN(pos.tran.z);    canonEndPoint.a = FROM_EXT_ANG(pos.a);    canonEndPoint.b = FROM_EXT_ANG(pos.b);    canonEndPoint.c = FROM_EXT_ANG(pos.c);    // now calculate position in program units, for interpreter    position.x = TO_PROG_LEN(canonEndPoint.x - programOrigin.x);    position.y = TO_PROG_LEN(canonEndPoint.y - programOrigin.y);    position.z =	TO_PROG_LEN(canonEndPoint.z - programOrigin.z -		    currentToolLengthOffset);    position.a = TO_PROG_ANG(canonEndPoint.a - programOrigin.a);    position.b = TO_PROG_ANG(canonEndPoint.b - programOrigin.b);    position.c = TO_PROG_ANG(canonEndPoint.c - programOrigin.c);    return position;}CANON_POSITION GET_EXTERNAL_PROBE_POSITION(){    CANON_POSITION position;    EmcPose pos;    static CANON_POSITION last_probed_position;    pos = emcStatus->motion.traj.probedPosition;    // first update internal record of last position    canonEndPoint.x = FROM_EXT_LEN(pos.tran.x) - programOrigin.x;    canonEndPoint.y = FROM_EXT_LEN(pos.tran.y) - programOrigin.y;    canonEndPoint.z = FROM_EXT_LEN(pos.tran.z) - programOrigin.z;    canonEndPoint.z -= currentToolLengthOffset;    canonEndPoint.a = FROM_EXT_ANG(pos.a) - programOrigin.a;    canonEndPoint.b = FROM_EXT_ANG(pos.b) - programOrigin.b;    canonEndPoint.c = FROM_EXT_ANG(pos.c) - programOrigin.c;    // now calculate position in program units, for interpreter    position.x = TO_PROG_LEN(canonEndPoint.x);    position.y = TO_PROG_LEN(canonEndPoint.y);    position.z = TO_PROG_LEN(canonEndPoint.z);    position.z -= TO_PROG_LEN(currentToolLengthOffset);    position.a = TO_PROG_ANG(canonEndPoint.a);    position.b = TO_PROG_ANG(canonEndPoint.b);    position.c = TO_PROG_ANG(canonEndPoint.c);    /*! \todo FIXME-- back end of hot comment */    if (probefile != NULL) {	if (last_probed_position.x != position.x ||	    last_probed_position.y != position.y ||	    last_probed_position.z != position.z) {	    fprintf(probefile, "%f %f %f\n", position.x, position.y,		    position.z);	    last_probed_position = position;	}    }    return position;}double GET_EXTERNAL_PROBE_VALUE(){    // only for analog non-contact probe, so force a 0    return 0.0;}int IS_EXTERNAL_QUEUE_EMPTY(){    return emcStatus->motion.traj.queue == 0 ? 1 : 0;}// feed rate wanted is in program units per minutedouble GET_EXTERNAL_FEED_RATE(){    double feed;    // convert from internal to program units    // it is wrong to use emcStatus->motion.traj.velocity here, as that is the traj speed regardless of G0 / G1    feed = TO_PROG_LEN(currentLinearFeedRate);    // now convert from per-sec to per-minute    feed *= 60.0;    return feed;}// traverse rate wanted is in program units per minutedouble GET_EXTERNAL_TRAVERSE_RATE(){    double traverse;    // convert from external to program units    traverse =	TO_PROG_LEN(FROM_EXT_LEN(emcStatus->motion.traj.maxVelocity));    // now convert from per-sec to per-minute    traverse *= 60.0;    return traverse;}double GET_EXTERNAL_LENGTH_UNITS(void){    double u;    u = emcStatus->motion.traj.linearUnits;    if (u == 0) {	CANON_ERROR("external length units are zero");	return 1.0;    } else {	return u;    }}double GET_EXTERNAL_ANGLE_UNITS(void){    double u;    u = emcStatus->motion.traj.angularUnits;    if (u == 0) {	CANON_ERROR("external angle units are zero");	return 1.0;    } else {	return u;    }}int GET_EXTERNAL_TOOL(){    return emcStatus->io.tool.toolInSpindle;}int GET_EXTERNAL_MIST(){    return emcStatus->io.coolant.mist;}int GET_EXTERNAL_FLOOD(){    return emcStatus->io.coolant.flood;}int GET_EXTERNAL_POCKET(){    return emcStatus->io.tool.toolPrepped;}double GET_EXTERNAL_SPEED(){    // speed is in RPMs everywhere    return emcStatus->io.spindle.speed;}CANON_DIRECTION GET_EXTERNAL_SPINDLE(){    if (emcStatus->io.spindle.speed == 0) {	return CANON_STOPPED;    }    if (emcStatus->io.spindle.speed >= 0.0) {	return CANON_CLOCKWISE;    }    return CANON_COUNTERCLOCKWISE;}int GET_EXTERNAL_TOOL_MAX(){    return CANON_TOOL_MAX;}char _parameter_file_name[LINELEN];	/* Not static.Driver					   writes */void GET_EXTERNAL_PARAMETER_FILE_NAME(char *file_name,	/* string: to copy							   file name into */				      int max_size){				/* maximum number of characters to copy */    // Paranoid checks    if (0 == file_name)	return;    if (max_size < 0)	return;    if (strlen(_parameter_file_name) < ((size_t) max_size))	strcpy(file_name, _parameter_file_name);    else	file_name[0] = 0;}double GET_EXTERNAL_POSITION_X(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.x;}double GET_EXTERNAL_POSITION_Y(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.y;}double GET_EXTERNAL_POSITION_Z(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.z;}double GET_EXTERNAL_POSITION_A(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.a;}double GET_EXTERNAL_POSITION_B(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.b;}double GET_EXTERNAL_POSITION_C(void){    CANON_POSITION position;    position = GET_EXTERNAL_POSITION();    return position.c;}double GET_EXTERNAL_PROBE_POSITION_X(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.x;}double GET_EXTERNAL_PROBE_POSITION_Y(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.y;}double GET_EXTERNAL_PROBE_POSITION_Z(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.z;}double GET_EXTERNAL_PROBE_POSITION_A(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.a;}double GET_EXTERNAL_PROBE_POSITION_B(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.b;}double GET_EXTERNAL_PROBE_POSITION_C(void){    CANON_POSITION position;    position = GET_EXTERNAL_PROBE_POSITION();    return position.c;}CANON_MOTION_MODE GET_EXTERNAL_MOTION_CONTROL_MODE(){    return canonMotionMode;}double GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(){    return canonMotionTolerance;}CANON_UNITS GET_EXTERNAL_LENGTH_UNIT_TYPE(){    return lengthUnits;}int GET_EXTERNAL_QUEUE_EMPTY(void){    return emcStatus->motion.traj.queue == 0 ? 1 : 0;}int GET_EXTERNAL_TOOL_SLOT(){    return emcStatus->io.tool.toolInSpindle;}int GET_EXTERNAL_SELECTED_TOOL_SLOT(){    return emcStatus->io.tool.toolPrepped;}CANON_PLANE GET_EXTERNAL_PLANE(){    return activePlane;}USER_DEFINED_FUNCTION_TYPE USER_DEFINED_FUNCTION[USER_DEFINED_FUNCTION_NUM]    = { 0 };int USER_DEFINED_FUNCTION_ADD(USER_DEFINED_FUNCTION_TYPE func, int num){    if (num < 0 || num >= USER_DEFINED_FUNCTION_NUM) {	return -1;    }    USER_DEFINED_FUNCTION[num] = func;    return 0;}/*! \function SET_MOTION_OUTPUT_BIT  sets a DIO pin  this message goes to task, then to motion which sets the DIO   when the first motion starts.  The pin gets set with value 1 at the begin of motion, and stays 1 at the end of motion  (this behaviour can be changed if needed)    warning: setting more then one for a motion segment will clear out the previous ones   (the TP doesn't implement a queue of these),   use SET_AUX_OUTPUT_BIT instead, that allows to set the value right away*/void SET_MOTION_OUTPUT_BIT(int index){  EMC_MOTION_SET_DOUT dout_msg;  dout_msg.index = index;  dout_msg.start = 1;		// startvalue = 1  dout_msg.end = 1;		// endvalue = 1, means it doesn't get reset after current motion  dout_msg.now = 0;		// not immediate, but synched with motion (goes to the TP)  interp_list.append(dout_msg);  return;}/*! \function CLEAR_MOTION_OUTPUT_BIT  clears a DIO pin  this message goes to task, then to motion which clears the DIO   when the first motion starts.  The pin gets set with value 0 at the begin of motion, and stays 0 at the end of motion  (this behaviour can be changed if needed)    warning: setting more then one for a motion segment will clear out the previous ones   (the TP doesn't implement a queue of these),   use CLEAR_AUX_OUTPUT_BIT instead, that allows to set the value right away*/void CLEAR_MOTION_OUTPUT_BIT(int index){  EMC_MOTION_SET_DOUT dout_msg;  dout_msg.index = index;  dout_msg.start = 0;           // startvalue = 1  dout_msg.end = 0;		// endvalue = 0, means it stays 0 after current motion  dout_msg.now = 0;		// not immediate, but synched with motion (goes to the TP)  interp_list.append(dout_msg);  return;}/*! \function SET_AUX_OUTPUT_BIT  sets a DIO pin  this message goes to task, then to motion which sets the DIO   right away.  The pin gets set with value 1 at the begin of motion, and stays 1 at the end of motion  (this behaviour can be changed if needed)  you can use any number of these, as the effect is imediate  */void SET_AUX_OUTPUT_BIT(int index){/* we're gonna use the EMC_MOTION_SET_DOUT for now  EMC_AUX_DIO_WRITE dio_msg;  dio_msg.index = index;  dio_msg.value = 1;  interp_list.append(dio_msg); */  EMC_MOTION_SET_DOUT dout_msg;  dout_msg.index = index;  dout_msg.start = 1;		// startvalue = 1  dout_msg.end = 1;		// endvalue = 1, means it doesn't get reset after current motion  dout_msg.now = 1;		// immediate, we don't care about synching for AUX  interp_list.append(dout_msg);  return;}/*! \function CLEAR_AUX_OUTPUT_BIT  clears a DIO pin  this message goes to task, then to motion which clears the DIO   right away.  The pin gets set with value 0 at the begin of motion, and stays 0 at the end of motion  (this behaviour can be changed if needed)  you can use any number of these, as the effect is imediate  */void CLEAR_AUX_OUTPUT_BIT(int index){/* we're gonna use the EMC_MOTION_SET_DOUT for now  EMC_AUX_DIO_WRITE dio_msg;  dio_msg.index = index;  dio_msg.value = 0;  interp_list.append(dio_msg);*/  EMC_MOTION_SET_DOUT dout_msg;  dout_msg.index = index;  dout_msg.start = 0;           // startvalue = 1  dout_msg.end = 0;		// endvalue = 0, means it stays 0 after current motion  dout_msg.now = 1;		// immediate, we don't care about synching for AUX  interp_list.append(dout_msg);  return;}/*! \function SET_MOTION_OUTPUT_VALUE  sets a AIO value, not used by the RS274 Interp,  not fully implemented in the motion controller either*/void SET_MOTION_OUTPUT_VALUE(int index, double value){  EMC_MOTION_SET_AOUT aout_msg;  aout_msg.index = index;	// which output  aout_msg.start = value;	// start value  aout_msg.end = value;		// end value  aout_msg.now = 0;		// immediate=1, or synched when motion start=0  interp_list.append(aout_msg);  return;}/*! \function SET_AUX_OUTPUT_VALUE  sets a AIO value, not used by the RS274 Interp,  not fully implemented in the motion controller either*/void SET_AUX_OUTPUT_VALUE(int index, double value){  EMC_AUX_AIO_WRITE aio_msg;  aio_msg.index = index;  aio_msg.value = value;  interp_list.append(aio_msg);  return;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四 | 国产午夜亚洲精品羞羞网站| 亚洲国产精品黑人久久久| 亚洲成a人片在线不卡一二三区| 国内精品伊人久久久久av一坑| 91在线你懂得| 久久精品男人天堂av| 视频一区国产视频| 一本色道久久综合亚洲aⅴ蜜桃| 久久美女艺术照精彩视频福利播放| 亚洲一区二区三区美女| jvid福利写真一区二区三区| 日韩一区二区在线看片| 亚洲成在线观看| 99re这里只有精品视频首页| 久久久噜噜噜久久人人看| 免费成人在线播放| 欧美日本韩国一区二区三区视频| 亚洲欧美日韩国产综合| 成人免费高清在线观看| 久久日一线二线三线suv| 日本亚洲一区二区| 4438x成人网最大色成网站| 一区二区三区视频在线看| caoporn国产精品| 国产亚洲制服色| 国内精品久久久久影院一蜜桃| 欧美日韩国产大片| 亚洲mv大片欧洲mv大片精品| 欧美在线影院一区二区| 亚洲欧美日韩一区二区| 一本久久a久久免费精品不卡| 国产精品久久久久aaaa樱花 | 日本精品视频一区二区| 国产精品福利av | 7777精品伊人久久久大香线蕉最新版| 国产日韩欧美制服另类| 国产成a人亚洲精| 国产日产精品一区| fc2成人免费人成在线观看播放 | 天堂资源在线中文精品| 欧美三级中文字幕在线观看| 午夜日韩在线观看| 欧美电影免费观看高清完整版在线观看| 日韩二区三区四区| 亚洲精品一线二线三线| 国产91高潮流白浆在线麻豆| 欧美激情艳妇裸体舞| 91啦中文在线观看| 性感美女极品91精品| 日韩亚洲电影在线| 国产麻豆成人精品| ...av二区三区久久精品| 91国内精品野花午夜精品| 午夜激情综合网| 日韩欧美的一区二区| 成人免费的视频| 亚洲午夜激情网站| 欧美精品一区二区三区蜜臀| 成人av在线资源网站| 亚洲欧美偷拍卡通变态| 91精品国产综合久久久久久漫画 | 国产清纯在线一区二区www| 91精品国产综合久久久蜜臀粉嫩| 男女男精品网站| 国产拍揄自揄精品视频麻豆| 欧美性一二三区| 国产精品一二三四五| 一区二区在线电影| 精品国产一区二区三区久久久蜜月| 丁香激情综合国产| 婷婷国产v国产偷v亚洲高清| 久久久综合精品| 欧美久久久久久久久中文字幕| 国产乱色国产精品免费视频| 亚洲久草在线视频| 久久综合色之久久综合| 欧美在线观看18| 国产高清精品在线| 日本午夜精品视频在线观看| 亚洲婷婷国产精品电影人久久| 日韩西西人体444www| 一本大道久久a久久综合婷婷| 久久精品噜噜噜成人av农村| 亚洲免费在线看| 久久先锋资源网| 欧美日韩一区二区三区在线看 | 久久精品噜噜噜成人88aⅴ| 中文字幕永久在线不卡| 日韩欧美久久久| 欧美色综合天天久久综合精品| 国内精品免费在线观看| 日本不卡视频一二三区| 一区二区在线看| 国产精品精品国产色婷婷| 久久综合九色综合欧美就去吻| 欧美日韩免费观看一区三区| 91性感美女视频| 成人免费视频视频| 色妞www精品视频| 99久久99久久综合| 成人一级视频在线观看| 精品无人区卡一卡二卡三乱码免费卡 | 国产91精品在线观看| 美国三级日本三级久久99 | 欧美日本不卡视频| 色吧成人激情小说| 99视频精品全部免费在线| 国产一区999| 国产精品一二三在| 国产激情一区二区三区四区 | 99精品久久99久久久久| 国产成人精品免费一区二区| 国产精品资源在线观看| 激情综合色播激情啊| 国产综合色在线视频区| 精品一区二区在线播放| 精品午夜久久福利影院| 国产激情91久久精品导航 | 精品视频全国免费看| 色综合视频一区二区三区高清| 91在线视频播放| 欧洲一区二区三区在线| 欧美在线免费视屏| 911精品国产一区二区在线| 欧美日韩国产大片| 日韩久久久久久| 精品国产乱码久久久久久闺蜜| 欧美电视剧免费观看| 久久久久免费观看| 中文字幕精品综合| 玉足女爽爽91| 日韩高清电影一区| 国产毛片精品视频| 成人av电影观看| 欧美无砖砖区免费| 日韩视频免费观看高清完整版 | 日韩欧美一区二区视频| 精品区一区二区| 中文字幕在线不卡视频| 亚洲国产视频直播| 精品一区二区三区不卡| 成人午夜激情影院| 欧美日韩aaaaaa| 精品电影一区二区三区| 最新日韩在线视频| 午夜精品一区二区三区电影天堂| 久久成人羞羞网站| 波波电影院一区二区三区| 欧日韩精品视频| 精品成人免费观看| 一区二区三区在线免费观看| 麻豆精品视频在线观看视频| 成人av资源在线| 日韩一区和二区| 亚洲精品视频免费看| 蜜芽一区二区三区| 91成人免费在线视频| 亚洲h精品动漫在线观看| 狠狠色伊人亚洲综合成人| 色av一区二区| 欧美国产成人精品| 蜜桃91丨九色丨蝌蚪91桃色| 色中色一区二区| 国产婷婷一区二区| 日韩精品1区2区3区| 99久久精品国产精品久久| 欧美电影免费提供在线观看| 亚洲综合网站在线观看| 国产福利一区在线观看| 欧美裸体bbwbbwbbw| 亚洲国产成人自拍| 精品一区二区三区免费| 欧美三级视频在线观看| 中文字幕日韩精品一区| 国产剧情一区二区| 欧美一区二区三区视频免费播放 | 久久综合久色欧美综合狠狠| 午夜激情久久久| 色婷婷亚洲婷婷| 国产午夜精品一区二区| 美女国产一区二区三区| 6080午夜不卡| 亚洲国产成人av好男人在线观看| 99久久er热在这里只有精品15| 国产亚洲污的网站| 国产伦精品一区二区三区免费迷 | 极品少妇一区二区三区精品视频 | 麻豆91免费看| 欧美军同video69gay| 洋洋av久久久久久久一区| av电影在线观看一区| 中文字幕欧美日本乱码一线二线| 久久成人免费网| 精品粉嫩超白一线天av| 黄色精品一二区| 久久青草国产手机看片福利盒子| 免费成人在线观看| 亚洲精品在线网站| 国产高清视频一区|