明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1936|回复: 5

转别人的 cad展点号

[复制链接]
发表于 2017-8-9 15:41 | 显示全部楼层 |阅读模式
;;;;数据文件格式【1、(点号,南北,东西,高程) 2、(点号  南北  东西  高程)】
(defun   c:kszd ()   ;;;cad展点号
  (setq        ff   (open (getfiled "请选择要展点的数据文件" "" "txt" 2) "r")
        fhb  nil
        t0   (getvar "cdate")
        cm   (getvar "cmdecho")
        os   (getvar "osmode")
        tcm1 "ZDH"
        tcm2 "PO"
  )
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setvar "pdmode" 35)
  (setvar "pdsize" 0.3)
  (if (= (tblsearch "layer" tcm1) nil)
    (command "layer" "n" tcm1 "")
  )
  (if (= (tblsearch "layer" tcm2) nil)
    (command "layer" "n" tcm2 "")
  )
  (while (setq zb (read-line ff))
      (while (vl-string-search "," zb)
      (setq zb (vl-string-subst " " "," zb))
    )
    (setq zb  (read (strcat "(" zb ")"))
           zb  (list (list (nth 2 zb) (nth 1 zb))  (vl-princ-to-string (car zb)) )                ;提示:注记点号请用该行     
           ;;;zb  (list (list (nth 2 zb) (nth 1 zb)) (vl-princ-to-string (last zb)))                ;提示:注记高程  请用该行     
          fhb (append fhb (list zb))
          )
    )
  (setq t1 (getvar "cdate"))
  (close ff)
  (setq        zb (vl-sort fhb
                    '(lambda (e1 e2) (< (car (car e1)) (car (car e2))))
           )
        x0 (car (car (car zb)))
        x1 (car (car (last zb)))
        zb (vl-sort fhb
                    '(lambda (e1 e2) (< (cadr (car e1)) (cadr (car e2))))
           )
        y0 (cadr (car (car zb)))
        y1 (cadr (car (last zb)))
  )
  (command "zoom" "w" (list x0 y0) (list x1 y1))
  (setq t2 (getvar "cdate"))
  (foreach zb fhb
    (setq zfc (last zb)
          ;pt  (mapcar '+ (car zb) '(1.5 -1.25));这行改为如下   
          pt  (car zb)
    )
    (entmake (list '(0 . "TEXT")
                   '(100 . "AcDbEntity")
                   '(100 . "AcDbText")
                   '(62 . 1)
                   '(40 . 0.3)
                   '(50 . 0.0)
                                        ;(cons 8 tcm1)   (cons 1 zfc)  (cons 10 pt);这行改为如下     
                   (cons 8 tcm1)
                   (cons 1 zfc)
                   (cons 10 (mapcar '+ pt '(-0.20 +0.3)))
             )
    )
    (entmake (list '(0 . "POINT")
                   '(100 . "AcDbEntity")
                   '(100 . "AcDbPoint")
                   '(62 . 2)
                   (cons 8 tcm2)
                   (cons 10 pt)
             )
    )
  )
  (setq        t3  (getvar "cdate")
        dt1 (* 1000000 (- t1 t0))
        dt2 (* 1000000 (- t3 t2))
  )
  (princ (strcat "读入数据共耗时:"
                 (rtos dt1 2 3)
                 "秒   展点共耗时"
                 (rtos dt2 2 3)
                 "秒   展点数:"
                 (itoa (length fhb))
                 "个   每展一点耗:"
                 (rtos (/ dt2 (length fhb)) 2 10)
                 "秒"
         )
  )
  (setvar "cmdecho" cm)
  (setvar "osmode" os)
  (princ)

)

发表于 2017-8-28 09:46 | 显示全部楼层
CAD插件管理程序
发表于 2017-11-7 08:10 | 显示全部楼层
谢谢楼主分享!
发表于 2020-7-15 10:57 | 显示全部楼层
还看不懂。需要学习啊
发表于 2024-1-7 11:27 | 显示全部楼层
这个好像展不出高程来
发表于 2024-2-28 13:54 | 显示全部楼层

还看不懂。需要学习啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 13:06 , Processed in 0.199930 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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