明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7782|回复: 20

CASS 点状物自动展绘 源码

  [复制链接]
发表于 2013-1-26 23:54:18 | 显示全部楼层 |阅读模式
(defun c:zdh( / acaddocument acadobject bm data_csv dh dhlist ff_csv file_csv h nn p pp ppp pt ptlist x y)
        (setvar "cmdecho" 0)
        (setq file_csv(getfiled "选取DAT文件" "" "DAT" 2))
        (setq ff_csv(open file_csv "r"))
        (setq pp nil  ptlist nil dhlist nil)
        (while (setq data_csv(read-line ff_csv))
               ;(setq csvpt(atof data_csv))
               ;(if (= data_csv "XSJ")
               (setq p "" pp "" ppp '() i 1)
               (setq nn(strlen data_csv))
               (repeat nn
                       (setq p (substr data_csv i 1))
                       (if (/= p ",")
                           (setq pp(strcat pp p))
                           (setq ppp(cons pp ppp) pp "")
                           )
                        (setq i(1+ i))
                        )
                 (setq ppp(cons pp ppp))
                 (setq ppp(reverse ppp))
                 (setq dh(atoi(nth 0 ppp)))
                 (setq bm(nth 1 ppp))
                 (setq x (nth 2 ppp))
                 (setq y (nth 3 ppp))
                 (setq h (nth 4 ppp))
                 (setq pt(strcat x "," y "," h))
                 ;(setq pt (list y x h))  
                 (vl-load-com)
                               (setq acadobject(vlax-get-acad-object))
                               (setq acaddocument(vla-get-activedocument acadobject))
                                       (cond  ((= bm "XSJ")
                                              (progn
                                              (vla-sendcommand acaddocument "xsj")
                                              (vla-sendcommand acaddocument "\r")
                                              (vla-sendcommand acaddocument pt)
                                              (vla-sendcommand acaddocument "\r")
                                               )
                                               )
                                                ;;;;;;;电力井;;;;;;;;;
                                                ((= bm "DLJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "dlj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
                                                ;;;;;;;圆污水井;;;;;;;;;
                                                ((= bm "WSJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "wsj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
                                                ;;;;;;;方形污水井;;;;;;;;;
                                                ((= bm "FWS")
                                                 (progn
                                                           (vla-sendcommand acaddocument "fws")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument "90")
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                                ;;;;;;;电线杆;;;;;;;;;
                                                ((= bm "DXG")
                                                 (progn
                                                           (vla-sendcommand acaddocument "dxg")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )   
                                                          )  
                                                  ;;;;;;;下水暗井;;;;;;;;;
                                                ((= bm "SAJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "saj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                                 ;;;;;;;天然气煤气井;;;;;;;;;
                                                ((= bm "MQJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "mqj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                       )  
                                                       )                       
                                                               
                                                   ;;;;;;;电信入井;;;;;;;;;
                                                ((= bm "DXJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "dxj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )                        
                                                 ;;;;;;;电信手井;;;;;;;;;
                                                ((= bm "DXS")
                                                 (progn
                                                           (vla-sendcommand acaddocument "dxs")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )
                                                         )
                                                                                    
                                                 ;;;;;;;石油井;;;;;;;;;
                                                ((= bm "SYJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "syj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                                  ;;;;;;;不明用途井;;;;;;;;;
                                                ((= bm "BMJ")
                                                 (progn
                                                          (vla-sendcommand acaddocument "bmj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                                    ;;;;;;;热力井;;;;;;;;;
                                                ((= bm "RLJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "rlj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                        )   
                                                        )                                         
                                                   ;;;;;;;上水井;;;;;;;;;
                                                ((= bm "SSJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "ssj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                               ;;;;;;;消防栓;;;;;;;;;
                                                ((= bm "XFS")
                                                 (progn
                                                           (vla-sendcommand acaddocument "xfs")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )
                                               ;;;;;;;阀门;;;;;;;;;
                                                ((= bm "FM")
                                                 (progn
                                                           (vla-sendcommand acaddocument "fm")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )  
                                                            )   
                                               ;;;;;;;水龙头;;;;;;;;;
                                                ((= bm "SLT")
                                                 (progn
                                                          (vla-sendcommand acaddocument "slt")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                          )        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;水系;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                  ;;;;;;;水井;;;;;;;;;
                                                ((= bm "SJ")
                                                 (progn
                                                           (vla-sendcommand acaddocument "sj")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )  
                                                         )   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;交通类;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                 ;路标
                                                 ((= bm "LB")
                                                  (progn
                                                           (vla-sendcommand acaddocument "lb")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
                                                 ;汽车站
                                                 ((= bm "QCZ")
                                                (progn
                                                          (vla-sendcommand acaddocument "qcz")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
                                                 ;里程碑
                                                 ((= bm "LCB")
                                                (progn
                                                           (vla-sendcommand acaddocument "lcb")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;交通类;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                 ;散树
                                                ((= bm "XS")
                                                (progn
                                                           (vla-sendcommand acaddocument "xs")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                 ;阔叶
                                                 ((= bm "KYS")
                                                (progn
                                                           (vla-sendcommand acaddocument "kys")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                        )
                                                           )
                                                 ;针叶树
                                                 ((= bm "ZYS")
                                                (progn
                                                           (vla-sendcommand acaddocument "zys")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
                                                         
                                                 ;果树
                                                 ((= bm "GS")
                                                (progn
                                                          (vla-sendcommand acaddocument "gs")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                               )
                                                           )
                                                ;椰子
                                                 ((= bm "YZS")
                                                (progn
                                                          (vla-sendcommand acaddocument "yzs")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )        
                                                   ;竹丛
                                                 ((= bm "ZC")
                                                (progn
                                                           (vla-sendcommand acaddocument "zc")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )                                             
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                     ;亭
                                                 ((= bm "TZ")
                                                (progn
                                                        (vla-sendcommand acaddocument "tz")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                ;土地庙
                                                 ((= bm "TDM")
                                                   (progn
                                                           (vla-sendcommand acaddocument "tdm")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                 ;路灯
                                                 ((= bm "LD")
                                                   (progn
                                                          (vla-sendcommand acaddocument "ld")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )
                                                           )
                                                 ;垃圾台
                                                 ((= bm "LJT")
                                                   (progn
                                                          (vla-sendcommand acaddocument "ljt")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )
                                                           )
                                                 ;旗杆
                                                ((= bm "QG")
                                                   (progn
                                                          (vla-sendcommand acaddocument "qg")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                ;露天设备
                                                 ((= bm "LTSB")
                                                   (progn
                                                          (vla-sendcommand acaddocument "ltsb")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                ;;;;;;;;照射灯;;;;;;      
                                                  ((= bm "ZSD")
                                                   (progn
                                                          (vla-sendcommand acaddocument "zsd")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
                                                           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;雷达站;;;;;   
                                                ((= bm "LDZ")
                                                (progn
                                                         (vla-sendcommand acaddocument "ldz")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
;;;;;;;;塑像;;;;;
   
                                                ((= bm "SX")
                                                (progn
                                                          (vla-sendcommand acaddocument "sx")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
;;;;;;;;避雷针;;;;
                                                ((= bm "BNZ")
                                                (progn
                                                         (vla-sendcommand acaddocument "bnz")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )
                                                           )
;;;;;;;;钻孔;;;;;;
     
                                                ((= bm "ZK")
                                                (progn
                                                           (vla-sendcommand acaddocument "zk")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                         )
                                                           )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;散坟;;;;;;     
                                                ((= bm "SF")
                                                (progn
                                                          (vla-sendcommand acaddocument "sf")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument  pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                          )
                                                           )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;独立坟;;;
                                                ((= bm "DLF")
                                                (progn
                                                          (vla-sendcommand acaddocument "dlf")
                                                           (vla-sendcommand acaddocument "\r")
                                                           (vla-sendcommand acaddocument pt)
                                                           (vla-sendcommand acaddocument "\r")
                                                           )
                                                           )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                )
                          ;(setq data_csv(read-line ff_csv))
                                         )
                             (close ff_csv)   
                             (print)      
                              )
发表于 2018-3-7 13:10:24 | 显示全部楼层
dat格式要求是什么啊 能不能给个说明
发表于 2019-10-15 12:02:32 来自手机 | 显示全部楼层
谢谢分享,支持
发表于 2013-1-27 11:37:11 | 显示全部楼层
本帖最后由 iamdjz 于 2013-1-27 11:46 编辑

这个cond太长了。
能不能写成这样形式:
(setq command_list '(("XSJ") ("DLJ") ("WSJ") ("FWS").....未列完))

(setq cat (assoc bm command_list ) )
(if (/= cat nil)
(progn
(setq cat (car cat) )
  (setq cock (strcase cat T))
     (vla-sendcommand acaddocument  cock)
      (vla-sendcommand acaddocument "\r")
      (vla-sendcommand acaddocument pt)
      (vla-sendcommand acaddocument "\r")
  )
  )

vla-sendcommand 之类的命令(我不懂这个)可否用(command cock  “” pt “”)代替?
方污水井要单列一下。

发表于 2013-1-27 11:38:40 来自手机 | 显示全部楼层
顶一个,写的真长呀!
发表于 2013-1-27 22:23:38 | 显示全部楼层
xiabin68 发表于 2013-1-27 11:38
顶一个,写的真长呀!

好,支持楼主,我怎么每次都是在xiabin68之后啊
发表于 2013-1-27 22:26:01 | 显示全部楼层
不管cond长不长,能分享就是一句话:好!呵呵
发表于 2013-1-27 23:27:25 | 显示全部楼层
gzxl 发表于 2013-1-27 22:23
好,支持楼主,我怎么每次都是在xiabin68之后啊

我的脚比你洗的干净吧,,,
 楼主| 发表于 2013-1-28 09:56:51 | 显示全部楼层
iamdjz 发表于 2013-1-27 11:37
这个cond太长了。
能不能写成这样形式:
(setq command_list '(("XSJ") ("DLJ") ("WSJ") ("FWS").....未列 ...

呵呵---   嗯 这样写就直接贴南方的编码  vla-sendcommand acaddocument  向命令行发送文字
发表于 2013-1-28 11:08:22 | 显示全部楼层
为什么要舍近求远呢?
直接用cass自带的简码识别就可以满足要求啊!
发表于 2013-1-28 11:59:50 | 显示全部楼层
怎么没有数据格式了?郁闷
发表于 2013-2-1 22:23:35 | 显示全部楼层
谢谢楼主的分享!
收藏下来看看、学习学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 03:49 , Processed in 0.218220 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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