帮我了解发生了什么事。键入“点”并将点放置在空白图形中。现在键入“pline”并在屏幕上绘制任意长度的多段线。现在键入(regapp“test program”),然后复制/粘贴到这些程序中。
- (defun c:test1 ( / x pt edata xdata ndata)
- (setq x (entsel "Select the point.")
- pt (cadr x)
- edata (entget (car x))
- xdata (list -3 (list "test program" (cons 1000 "point") (cons 1011 pt)))
- ndata (append edata (list xdata)))
- (entmod ndata)
- (entupd (cdr (assoc -1 ndata)))
- (princ))
- (defun c:test2 ( / x)
- (if (setq x (ssget "a" '((-3 ("test program" (1000 . "point"))))))
- (setq x (cdr (nth 2 (cadr (assoc -3 (entget (ssname x 0) '("test program"))))))))
- x)
- (defun c:test3 ( / x)
- (if (setq x (ssget "a" '((-3 ("test program")))))
- (setq x (cdr (nth 2 (cadr (assoc -3 (entget (ssname x 0) '("test program"))))))))
- x)
现在键入“test1”并选择该点。现在输入“test2”,它是否返回NIL?
现在输入“test3”,它是否返回点?
再次键入“test1”并选择多段线。
现在键入“test2”,它是否返回附着到多段线的点?
现在请给我解释一下。为什么ssget不能过滤扩展数据中具有特定1000个字符串的点?但是同一个程序可以过滤附加到多段线的相同扩展数据?我希望答案不在眼前。 |