找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1422|回复: 2

[求助] 如何利用程序实现CASS中的必填属性的检查

[复制链接]

已领礼包: 39个

财富等级: 招财进宝

发表于 2015-1-11 17:23:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我这有个检查房屋的结构的,我现在需要修改出一个检查道路宽度是否填写的该如何修改?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 39个

财富等级: 招财进宝

 楼主| 发表于 2015-1-11 17:24:10 | 显示全部楼层
(defun c:chksx(/ ss len i entname elist j south_list smi_list south_list_code south_list_KID
               smi_list_data smi_list_int_structure smi_list_int_function smi_list_int_story
               smi_list_int_hight smi_list_char_name smi_list_char_owner ename_layer ename_name
            )
  ;;SOUTH房屋信息:
;;1000 ASCII string  Code编码
;;1071 32bit integer KID值  
;;smi房屋信息:
;;1070 16bit integer structure房屋结构
;;1070 16bit integer function 房屋用途
;;1070 16bit integer story    房屋层数
;;1070 16bit integer hight    房屋高度
;;1000 ASCII string  name     单位名称
;;1000 ASCII string  owner    房屋属主
;;1000 ASCII string  source   房屋原始资料(04年新增)
;;1000 ASCII string  toponym  地址        (04年新增)
(gc)
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(princ "\n\n********无属性实体检查:********")
(setq ss(ssget "X"))
(if (/= ss nil)
    (progn
        (setq len (sslength ss))
        (setq i 0)
        (setq j 1)
        (while (< i len)
            (setq entname (ssname ss i))
            (setq elist (entget entname (list "*")))
            (setq ename_layer(cdr(assoc 8 elist)))
            (setq ename_name(cdr(assoc 0 elist)))
            (setq f3 (cdr (assoc -3 elist)))
            (if(/= f3 nil)(JH_SOUTH_smi f3))
            (setq south_list v_south_list)
            (setq smi_list v_smi_list)
            (setq south_list_code(cdr(car(cdr south_list))))            
            (setq south_list_KID(cdr(car(cddr south_list))))            
            (setq smi_list_data(cdr smi_list))
            (if(/= smi_list_data nil)
               (setq smi_list_int_structure(cdr (nth 0 smi_list_data)) ;;/=-1
                     smi_list_int_function(cdr (nth 1 smi_list_data))  ;;/=-1
                     smi_list_int_story(cdr (nth 2 smi_list_data))     ;;/=-1
                     smi_list_int_hight(cdr (nth 3 smi_list_data))
                     smi_list_char_name(cdr (nth 4 smi_list_data))
                     smi_list_char_owner(cdr (nth 5 smi_list_data))
                     smi_list_char_source(cdr (nth 6 smi_list_data))
                     smi_list_char_toponym(cdr (nth 7 smi_list_data))
               )
            )
          
          
               (if(= f3 nil)
               (progn
                 ;(if(= (tblsearch "layer" "ERROR_SX") nil)(command "layer" "m" "ERROR_SX" "C" "6" "ERROR_SX" ""))
                 ;(command "change" entname "" "P" "LA" "ERROR_SX" "")
                 (if(and(/= ename_name "TEXT")(/= ename_name "INSERT"))
                   (progn
                    (command "change" entname "" "P" "C" "6" "")
                    (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                    (redraw entname 3)
                    (setq j (+ j 1))
                   )
                 )
               )
            )
          
            (if(/= f3 nil)
              (progn
                 (if(and(= ename_layer "BUILDING")(or(= ename_name "LWPOLYLINE")(= ename_name "LINE")))
                  (progn                     
                     (if(or(= south_list nil)(= smi_list nil))
                       (progn
                         (command "change" entname "" "P" "C" "6" "")
                         (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                         (redraw entname 3)
                         (setq j (+ j 1))
                       )                       
                     );;if(or(= south_list nil)(= smi_list nil))
                     
                     (if(and(/= south_list nil)(or (= south_list_code nil)(= south_list_code "")))
                       (progn
                         (command "change" entname "" "P" "C" "6" "")
                         (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                         (redraw entname 3)
                         (setq j (+ j 1))                         
                        )             
                      )

                     (if(and(/= smi_list nil)(or (= smi_list_int_structure -1)(= smi_list_int_function -1)(= smi_list_int_story -1)))
                       (progn
                         (command "change" entname "" "P" "C" "6" "")
                         (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                         (redraw entname 3)
                         (setq j (+ j 1))                         
                       )             
                     )
                   )
                  );;if(= ename_layer "BUILDING")

                (if(and(= ename_layer "89")(= ename_name "TEXT")(= south_list nil))
                  (progn
                     (command "change" entname "" "P" "C" "6" "")
                     (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                     (redraw entname 3)
                     (setq j (+ j 1))   
                  )
                )

                (if(and(= ename_name "INSERT")(= south_list nil))
                  (progn
                     (command "change" entname "" "P" "C" "6" "")
                     (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
                     (redraw entname 3)
                     (setq j (+ j 1))   
                  )
                )
;;---
              )
             );;if(/= f3 nil)
          (setq i (+ i 1))
          );;while
         (setq j (- j 1))
         (princ "\n***** ")(princ "查出无属性实体: ")(princ j)(princ " 个.*****")   
     )
  )  
  (setq ss nil)
  (princ)
  (setvar "cmdecho" cmd)
);;end
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 39个

财富等级: 招财进宝

 楼主| 发表于 2015-1-22 18:22:08 | 显示全部楼层
怎么就是没有人的啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 14:52 , Processed in 0.368581 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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