明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4588|回复: 5

[讨论] [已解决]关于南方CASS编码在其他绘图软件选择的问题

[复制链接]
发表于 2013-5-31 20:22:41 | 显示全部楼层 |阅读模式
本帖最后由 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 1000  strs))))))
                  )
                  (if ss
                      (sssetfirst nil ss)
                   )
                 )
             )
        )
    )
  (princ)
)

再此先谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-5-31 20:46:04 | 显示全部楼层
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS进行再过滤!
 楼主| 发表于 2013-5-31 21:04:44 | 显示全部楼层
Gu_xl 发表于 2013-5-31 20:46
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS ...

G版思路不错,20000对象不知速度如何,俺先试试
 楼主| 发表于 2013-5-31 22:41:01 | 显示全部楼层
本帖最后由 yanguangfei 于 2013-5-31 22:45 编辑
Gu_xl 发表于 2013-5-31 20:46
先用 (ssget (list (list -3(list "SOUTH")))) 选到CASS对象选择集SS后,再逐一根据对象扩展数据对选择集SS ...


果然可以
再次感谢!
代码贴上
似乎用的 if 语句有点多
;;根据点选实体返回所有同编码实体
;;;感谢 g版 提供思路
;;;By YanGuangFei
;;; 2013-05-30

(DEFUN C:sz ( / name  data 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)
)
发表于 2013-6-8 16:45:39 | 显示全部楼层
学习学习,南方测绘的
发表于 2013-6-19 17:04:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-29 03:14 , Processed in 0.177125 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表