[已解决]关于南方CASS编码在其他绘图软件选择的问题
本帖最后由 yanguangfei 于 2013-5-31 22:48 编辑南方cass里的批量选目标 选编码 挺好用的 如果在没有南方cass的绘图软件里选择同编码似乎只能选择多段线,其他一概不行,(ssget (list (list -3(list "SOUTH" (cons 1000"214400"))))),附上自己的小代码
;;注意只能选择多段线暂时对其他实体无效
(DEFUN C:sz ( / name int data strs ss)
(setq name (car (entsel "\n 选择要选中的实体:")))
(if name
(progn
(setq DATA (assoc -3 (entget name (list "SOUTH"))))
(if DATA
(progn
(setq strs (cdr(cadadr data)))
(if strs
(setq ss (ssget "x" (list (list -3(list "SOUTH" (cons 1000strs))))))
)
(if ss
(sssetfirst nil ss)
)
)
)
)
)
(princ)
)
再此先谢!
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS进行再过滤! Gu_xl 发表于 2013-5-31 20:46 static/image/common/back.gif
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS ...
G版思路不错,20000对象不知速度如何,俺先试试 本帖最后由 yanguangfei 于 2013-5-31 22:45 编辑
Gu_xl 发表于 2013-5-31 20:46 http://bbs.mjtd.com/static/image/common/back.gif
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS ...
果然可以
再次感谢!
代码贴上
似乎用的 if 语句有点多
;;根据点选实体返回所有同编码实体
;;;感谢 g版 提供思路
;;;By YanGuangFei
;;; 2013-05-30
(DEFUN C:sz ( / namedata strs ss *SOUTHS* i sel GET entity strs1)
(setq *SOUTHS* (ssget "x" (list (list -3(list "SOUTH")))))
(IF *SOUTHS*
(progn
(setq name (car (entsel "\n 选择要选中的实体:")))
(if name
(progn
(setq DATA (assoc -3 (entget name (list "SOUTH"))))
(if data
(progn
(setq strs (cdr(cadadr data)))
(if strs
(progn
(setq i -1
sel nil
sel (ssadd))
(repeat (sslength *SOUTHS*)
(setq GET (entget (setq entity (ssname *SOUTHS* (setq i (1+ i)))) (list "SOUTH")))
(setq strs1 (cdr(cadadr (assoc -3 GET))))
(if (wcmatch strs strs1)
(setq sel (ssadd entity sel))
)
)
(if sel
(progn
(princ (strcat "\n 共选择到 " (itoa (sslength sel)) " 个目标!"))
(sssetfirst nil sel)
)
(princ "\n 没有符合的实体!")
)
)
(princ "\n 参照目标没有南方主编码程序退出!")
)
)
(princ "\n 参照目标没有南方属性程序退出!")
)
)
(princ "\n 选择无效程序退出!")
)
)
(princ "\n 没有南方编码实体程序退出!")
)
(princ)
) 学习学习,南方测绘的
页:
[1]