马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Lispboy 于 2013-7-20 21:00 编辑
![](source/plugin/imc_colorcode/images/loading.gif) - ;|
- 圆拖动实现函数
- 参数:
- info ---- 提示字符串
- pj ---- 圆心
- keyWord --- 关键字字符串
- Cursor --- 光标样式
- 0 - kCrosshair
- 1 - kCrosshair
- 2 - kRubberBand
- 3 - kNoSpecialCursor
- 4 - kEntitySelect
- 5 - kParallelogram
- 6 - kInvisible
- 其他值- kPkfirstOrGrips
- |;
- (defun XD::Drag:Circle (info pj keyWord cursor / dynpt e mat0 pts ret)
- (defun EdgeCallBack (dynPt / pts)
- (if (not e)
- (setq e (xdrx_circle_make pj (distance pj dynPt)))
- (xdrx_circle_setRadius e (distance pj dynPt))
- )
- e
- )
- (setq pj (trans pj 1 0)
- mat0 (xdrx_matrix_identity 3)
- )
- (setvar "lastPoint" pj)
- (initget 1)
- (setq ret (xdrx_drag_jig "EdgeCallBack" info keyWord (+ 1 2 4 8 16 128 512 65536) Cursor pj))
- (cond
- ((= ret -4)
- (entdel e)
- )
- (t
- (if (= (type ret) 'STR)
- (progn
- (setq ret (cdr ret))
- (entdel e)
- )
- )
- )
- )
- (gc)
- ret
- )
应用示例代码:
![](source/plugin/imc_colorcode/images/loading.gif) - (defun c:test-drag-circle()
- (if (setq pj (getpoint "\n圆心:"))
- (progn
- (XD::Drag:Circle "\n拾取点[退出-Q】" pj "Q" 2)
- )
- )
- (princ)
- )
|