- (ssdel en ss);---修改直接生效,不需要重新定义ss
- (ssadd en ss);---修改直接生效,不需要重新定义ss
- (cons p pts);---修改不直接生效,需要套一层,重新定义pts
- ;---测试一
- (defun c:gg1()
- (setq ss(ssget))
- (setq en(ssname ss 0))
- (ssdel en ss)
- (princ(sslength ss))
- (princ)
- )
- ;---测试二
- (defun c:gg2()
- (setq ss(ssget))
- (setq en(ssname ss 0))
- (setq s(ssadd))
- (ssadd en s)
- (princ(sslength s))
- (princ)
- )
- ;---测试三
- (defun c:gg3()
- (setq p '(0 0)pts nil)
- ;(cons p pts)
- (setq pts(cons p pts))
- (princ pts)
- (princ)
- )
最近遇到一个问题,就是ssdel和ssadd和cons这三个函数,都是修改数据的,他们的使用规则居然不太一样。为什么呀?另外,还有其他类似函数吗?
subst函数好像也算,他也需要套一层,重新定义一下。是不是表的操作都需要重新定义,其他数据类型就不需要?
|