这段代码错在哪里???
;第一次发帖手误,打错字了,请谅解!
(defun get-point(/ pts dd n i obj stp endppt_name pt_data pt lst pp )
(setq entss(car(entsel)))
(setq p (getpoint "/n请输入图形质心:"))
(setq p (trans p 1 0))
(setq H 20)
(setq pts (ssadd))
(setq dd 20.00)
(setq n 0)
(setq i 0)
(setq obj (vlax-ename->vla-object entss))
(setq stp (vlax-curve-getStartPoint obj)
pts (cons stp pts)
)
(setq endp (vlax-curve-getEndPoint obj))
(command "_measure" entss dd)
(setq sst (ssget "p"))
(repeat (sslength sst)
(setq pt_name (ssname sst n))
(setq pt_data (entget pt_name))
(setq pt (cdr (assoc 10 pt_data)))
(if (= endp pt)
(setq i (1+ i))
)
(setq pts (cons pt pts))
(setq n (1+ n))
)
(if (= i 0)
(setq pts (cons endp pts))
)
(setq lst (mapcar '(lambda (x) (polar p (angle p x) (- (distance p x) ( H)))) pts))
)
;我要求的是把一个对象等距分点,并把这些点储存在选择集中,然后向质心偏移一定距离.运行时,老出现<列表错误>
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 Jully的微博 (polar p (angle p x) (- (distance p x) ( H))))
先试着改成这个
(polar p (angle p x) (- (distance p x) H)) 回复 Andyhon 的帖子
不是这个错误,改后结果一样 (setq pts (ssadd))
封掉
;; (setq pts (ssadd))
没调试文件没能验证 回复 Andyhon 的帖子
这样没问题了,为什么要封掉?;; (setq pts (ssadd))
setq pts (ssadd))
....
(cons stp pts)
验证===>
(type stp)
(type pts) 非常感谢!
页:
[1]