马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:tt ()
- (defun _callback (dynpt)
- (redraw)
- (xdrx-setpropertyvalue
- spl
- "setfitpoints"
- (reverse (cons dynpt lst))
- ;;设置拟合点
- )
- (setq pts (xdrx-getpropertyvalue spl "getpointsatdist" 500.0))
- (mapcar '(lambda (x)
- (setq v (xdrx-getpropertyvalue spl "firstderiv" x)
- v1 (xdrx-vector-perpvector v)
- p1 (mapcar '+ x (xdrx-vector-product v1 500.0))
- p2 (mapcar '- x (xdrx-vector-product v1 500.0))
- pts1 (cons (list p1 p2) pts1)
- )
- (xdrx-grdraw 7 -1 p1 p2)
- )
- (cdr pts)
- )
- (setq tf t)
- (xdrx-grdraw 1 -1 spl)
- ;;显示内存实体
- )
- (if (and (setq p1 (getpoint "\n起点<退出>:"))
- (setq p2 (getpoint p1 "\n下一点<退出>:"))
- )
- (progn (xdrx-pointmonitor "_callback")
- (setq lst (list p2 p1))
- (setq spl (xdrx-spline-make))
- ;;创建内存DB实体
- (while (setq p3 (getpoint (car lst) "\n下一点<退出>:"))
- (setq lst (cons p3 lst))
- (setq nums (xdrx-getpropertyvalue spl "numfitpoints"))
- (setq tf nil)
- )
- (xdrx-pointmonitor)
- (if (> (xdrx-getpropertyvalue spl "numfitpoints") nums)
- (xdrx-setpropertyvalue spl "removefitpointat" (length lst))
- )
- ;;移除最后鼠标确认前最后一个拟合点
- (setq pts (xdrx-getpropertyvalue spl "getpointsatdist" 500.0))
- (mapcar '(lambda (x)
- (setq v (xdrx-getpropertyvalue spl "firstderiv" x)
- v1 (xdrx-vector-perpvector v)
- p1 (mapcar '+ x (xdrx-vector-product v1 500.0))
- p2 (mapcar '- x (xdrx-vector-product v1 500.0))
- pts1 (cons (list p1 p2) pts1)
- )
- (xdrx-line-make p1 p2)
- )
- (cdr pts)
- )
- (redraw)
- (xdrx-entity-make spl)
- ;;从内存实体创建到数据库
- )
- )
- (princ)
- )
|