yanguangfei 发表于 2013-5-31 20:22:41

[已解决]关于南方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)
)

再此先谢!

Gu_xl 发表于 2013-5-31 20:46:04

先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS进行再过滤!

yanguangfei 发表于 2013-5-31 21:04:44

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:41:01

本帖最后由 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)
)

gtj116600 发表于 2013-6-8 16:45:39

学习学习,南方测绘的

陈亚娣 发表于 2013-6-19 17:04:51

页: [1]
查看完整版本: [已解决]关于南方CASS编码在其他绘图软件选择的问题