免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2384|回复: 5
收起左侧

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

[复制链接]

1

主题

6151

铜板

4

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
442
发表于 2015-1-11 17:17 | 显示全部楼层 |阅读模式
我这里有个例子但是现在还有其他的属性项需要检查   如何修改
  1. (defun c:chksx(/ ss len i entname elist j south_list smi_list south_list_code south_list_KID
  2.                smi_list_data smi_list_int_structure smi_list_int_function smi_list_int_story
  3.                smi_list_int_hight smi_list_char_name smi_list_char_owner ename_layer ename_name
  4.             )
  5.   ;;SOUTH房屋信息:
  6. ;;1000 ASCII string  Code编码
  7. ;;1071 32bit integer KID值  
  8. ;;smi房屋信息:
  9. ;;1070 16bit integer structure房屋结构
  10. ;;1070 16bit integer function 房屋用途
  11. ;;1070 16bit integer story    房屋层数
  12. ;;1070 16bit integer hight    房屋高度
  13. ;;1000 ASCII string  name     单位名称
  14. ;;1000 ASCII string  owner    房屋属主
  15. ;;1000 ASCII string  source   房屋原始资料(04年新增)
  16. ;;1000 ASCII string  toponym  地址        (04年新增)
  17. (gc)
  18. (setq cmd (getvar "cmdecho"))
  19. (setvar "cmdecho" 0)
  20. (princ "\n\n********无属性实体检查:********")
  21. (setq ss(ssget "X"))
  22. (if (/= ss nil)
  23.     (progn
  24.         (setq len (sslength ss))
  25.         (setq i 0)
  26.         (setq j 1)
  27.         (while (< i len)
  28.             (setq entname (ssname ss i))
  29.             (setq elist (entget entname (list "*")))
  30.             (setq ename_layer(cdr(assoc 8 elist)))
  31.             (setq ename_name(cdr(assoc 0 elist)))
  32.             (setq f3 (cdr (assoc -3 elist)))
  33.             (if(/= f3 nil)(JH_SOUTH_smi f3))
  34.             (setq south_list v_south_list)
  35.             (setq smi_list v_smi_list)
  36.             (setq south_list_code(cdr(car(cdr south_list))))            
  37.             (setq south_list_KID(cdr(car(cddr south_list))))            
  38.             (setq smi_list_data(cdr smi_list))
  39.             (if(/= smi_list_data nil)
  40.                (setq smi_list_int_structure(cdr (nth 0 smi_list_data)) ;;/=-1
  41.                      smi_list_int_function(cdr (nth 1 smi_list_data))  ;;/=-1
  42.                      smi_list_int_story(cdr (nth 2 smi_list_data))     ;;/=-1
  43.                      smi_list_int_hight(cdr (nth 3 smi_list_data))
  44.                      smi_list_char_name(cdr (nth 4 smi_list_data))
  45.                      smi_list_char_owner(cdr (nth 5 smi_list_data))
  46.                      smi_list_char_source(cdr (nth 6 smi_list_data))
  47.                      smi_list_char_toponym(cdr (nth 7 smi_list_data))
  48.                )
  49.             )
  50.           
  51.           
  52.                (if(= f3 nil)
  53.                (progn
  54.                  ;(if(= (tblsearch "layer" "ERROR_SX") nil)(command "layer" "m" "ERROR_SX" "C" "6" "ERROR_SX" ""))
  55.                  ;(command "change" entname "" "P" "LA" "ERROR_SX" "")
  56.                  (if(and(/= ename_name "TEXT")(/= ename_name "INSERT"))
  57.                    (progn
  58.                     (command "change" entname "" "P" "C" "6" "")
  59.                     (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  60.                     (redraw entname 3)
  61.                     (setq j (+ j 1))
  62.                    )
  63.                  )
  64.                )
  65.             )
  66.           
  67.             (if(/= f3 nil)
  68.               (progn
  69.                  (if(and(= ename_layer "BUILDING")(or(= ename_name "LWPOLYLINE")(= ename_name "LINE")))
  70.                   (progn                     
  71.                      (if(or(= south_list nil)(= smi_list nil))
  72.                        (progn
  73.                          (command "change" entname "" "P" "C" "6" "")
  74.                          (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  75.                          (redraw entname 3)
  76.                          (setq j (+ j 1))
  77.                        )                       
  78.                      );;if(or(= south_list nil)(= smi_list nil))
  79.                      
  80.                      (if(and(/= south_list nil)(or (= south_list_code nil)(= south_list_code "")))
  81.                        (progn
  82.                          (command "change" entname "" "P" "C" "6" "")
  83.                          (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  84.                          (redraw entname 3)
  85.                          (setq j (+ j 1))                         
  86.                         )             
  87.                       )

  88.                      (if(and(/= smi_list nil)(or (= smi_list_int_structure -1)(= smi_list_int_function -1)(= smi_list_int_story -1)))
  89.                        (progn
  90.                          (command "change" entname "" "P" "C" "6" "")
  91.                          (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  92.                          (redraw entname 3)
  93.                          (setq j (+ j 1))                         
  94.                        )             
  95.                      )
  96.                    )
  97.                   );;if(= ename_layer "BUILDING")

  98.                 (if(and(= ename_layer "89")(= ename_name "TEXT")(= south_list nil))
  99.                   (progn
  100.                      (command "change" entname "" "P" "C" "6" "")
  101.                      (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  102.                      (redraw entname 3)
  103.                      (setq j (+ j 1))   
  104.                   )
  105.                 )

  106.                 (if(and(= ename_name "INSERT")(= south_list nil))
  107.                   (progn
  108.                      (command "change" entname "" "P" "C" "6" "")
  109.                      (princ "\n [")(princ j)(princ "] Layer=")(princ ename_layer)(princ " Entname=")(princ ename_name)
  110.                      (redraw entname 3)
  111.                      (setq j (+ j 1))   
  112.                   )
  113.                 )
  114. ;;---
  115.               )
  116.              );;if(/= f3 nil)
  117.           (setq i (+ i 1))
  118.           );;while
  119.          (setq j (- j 1))
  120.          (princ "\n***** ")(princ "查出无属性实体: ")(princ j)(princ " 个.*****")   
  121.      )
  122.   )  
  123.   (setq ss nil)
  124.   (princ)
  125.   (setvar "cmdecho" cmd)
  126. );;end
复制代码


发表于 2015-1-16 15:38 | 显示全部楼层
楼上是是坏人,地板都不让坐
回复 支持 反对

使用道具 举报

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

本版积分规则

在线客服
快速回复 返回顶部 返回列表