马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 a117034423 于 2020-12-2 10:39 编辑
 - (defun c:dss ()
- (setvar "cmdecho" 0)
- ;拾取函数,拾取板尺寸
- (setq mod0 (vl-remove nil (mapcar '(lambda (x) (if (= (car x) 10) (cdr x))) (entget (car (entsel "<选择要拾取参数的板:>"))))))
- (setq mod1 (mapcar '(lambda(x)(list (car x)(cadr x) 0.0)) mod0))
- (setq ptmin (apply 'mapcar (cons 'min mod1))) ;拾取点表最小坐标值
- (setq ptmax (apply 'mapcar (cons 'max mod1))) ;拾取点表最大坐标值
- (setq minx1 (car ptmin))
- (setq miny1 (cadr ptmin))
- (setq maxx1 (car ptmax))
- (setq maxy1 (cadr ptmax))
- (setq dxy (mapcar '- ptmax ptmin))
- (setq dx (atof (rtos (car dxy) 2 0))) ;矩形X向长度
- (setq dy (atof (rtos (cadr dxy) 2 0))) ;矩形Y向长度
- (if (/= (length mod1) (or 4 5))
- (progn
- (setq dbpt1 (xdrx-points-ghull mod1))
- (setq dkpt1 (vl-remove-if '(lambda(x)(vl-position x dbpt1)) mod1))
- ))
- (cond
- (XD::Pnt:IsOut (list minx1 miny1 0.0) mod1) (setq dk1 "左下")
- (XD::Pnt:IsOut (list maxx1 miny1 0.0) mod1) (setq dk1 "右下")
- (XD::Pnt:IsOut (list maxx1 maxy1 0.0) mod1) (setq dk1 "右上")
- (XD::Pnt:IsOut (list minx1 maxy1 0.0) mod1) (setq dk1 "左上")
- )
- (setq str1 (strcat"板X向长度为:" "<" (rtos dx) ">"))
- (setq str2 (strcat"板Y向长度为:" "<" (rtos dy) ">"))
- (print str1)
- (print str2)
XD:PNT:PSOUT
(cond
(XD::Pnt:IsOut (list minx1 miny1 0.0) mod1) (setq dk1 "左下")
(XD::Pnt:IsOut (list maxx1 miny1 0.0) mod1) (setq dk1 "右下")
(XD::Pnt:IsOut (list maxx1 maxy1 0.0) mod1) (setq dk1 "右上")
(XD::Pnt:IsOut (list minx1 maxy1 0.0) mod1) (setq dk1 "左上")
)
为何此处cond返回值是空 究竟哪里又问啊
我想通过这个cond函数来判断缺角的位置,麻烦各位了
|