⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tp.h

📁 Source code for an Numeric Cmputer
💻 H
字号:
/********************************************************************* Description: tp.h*   Trajectory planner based on TC elements**   Derived from a work by Fred Proctor & Will Shackleford** Author:* License: GPL Version 2* System: Linux*    * Copyright (c) 2004 All rights reserved.** Last change:* $Revision: 1.17 $* $Author: cradek $* $Date: 2006/03/21 02:42:28 $********************************************************************/#ifndef TP_H#define TP_H#include "posemath.h"#include "tc.h"#define TP_DEFAULT_QUEUE_SIZE 32/* closeness to zero, for determining if a move is pure rotation */#define TP_PURE_ROTATION_EPSILON 1e-6/* closeness to zero, for determining if vel and accel are effectively zero */#define TP_VEL_EPSILON 1e-6#define TP_ACCEL_EPSILON 1e-6typedef struct {    TC_QUEUE_STRUCT queue;    int queueSize;    double cycleTime;    double vMax;		/* vel for subsequent moves */    double ini_maxvel;          /* max velocity allowed by machine                                    constraints (ini file) for                                   subsequent moves */    double vScale, vRestore;    /* feed override value and a place                                   to save it when pausing */    double aMax;    double vLimit;		/* absolute upper limit on all vels */    double wMax;		/* rotational velocity max */    double wDotMax;		/* rotational accelleration max */    int nextId;    int execId;    int termCond;    EmcPose currentPos;    EmcPose goalPos;    int done;    int depth;			/* number of total queued motions */    int activeDepth;		/* number of motions blending */    int aborting;    int pausing;    int motionType;    double tolerance;           /* for subsequent motions, stay within this                                   distance of the programmed path during                                   blends */    int synchronized;           /* motion synchronized with spindle */    double uu_per_rev;          /* user units per spindle revolution */} TP_STRUCT;extern int tpCreate(TP_STRUCT * tp, int _queueSize, TC_STRUCT * tcSpace);extern int tpClear(TP_STRUCT * tp);extern int tpInit(TP_STRUCT * tp);extern int tpSetCycleTime(TP_STRUCT * tp, double secs);extern int tpSetVmax(TP_STRUCT * tp, double vmax, double ini_maxvel);extern int tpSetVlimit(TP_STRUCT * tp, double limit);extern int tpSetVscale(TP_STRUCT * tp, double scale);	/* 0.0 .. large */extern int tpSetAmax(TP_STRUCT * tp, double amax);extern int tpSetId(TP_STRUCT * tp, int id);extern int tpGetExecId(TP_STRUCT * tp);extern int tpSetTermCond(TP_STRUCT * tp, int cond, double tolerance);extern int tpSetPos(TP_STRUCT * tp, EmcPose pos);extern int tpAddLine(TP_STRUCT * tp, EmcPose end, int type);extern int tpAddCircle(TP_STRUCT * tp, EmcPose end,		       PmCartesian center, PmCartesian normal,                        int turn, int type);extern int tpRunCycle(TP_STRUCT * tp);extern int tpPause(TP_STRUCT * tp);extern int tpResume(TP_STRUCT * tp);extern int tpAbort(TP_STRUCT * tp);extern EmcPose tpGetPos(TP_STRUCT * tp);extern int tpIsDone(TP_STRUCT * tp);extern int tpIsPaused(TP_STRUCT * tp);extern int tpQueueDepth(TP_STRUCT * tp);extern int tpActiveDepth(TP_STRUCT * tp);extern int tpGetMotionType(TP_STRUCT * tp);extern int tpSetSpindleSync(TP_STRUCT * tp, double sync);extern int tpSetAout(TP_STRUCT * tp, unsigned char index, double start, double end);extern int tpSetDout(TP_STRUCT * tp, int index, unsigned char start, unsigned char end);#endif				/* TP_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -