明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1735|回复: 7

请教:lisp编程,文本输出

[复制链接]
发表于 2005-12-11 15:45 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-12-11 18:00:05 编辑

各位高贤:我经常处理海图,即水深图,格式是这样的'"123",即表示水深12.3米,水深的整数部分用较大的字体,小数部分用较小的字体在右下,小数部分和整数部分在cad图中是作为两个文本实体的,他们之间的相对位置是固定的,即他们的坐标差值在一副图中是固定的.水深的位置坐标为整数部分文本的坐标.

我想编一个程序实现如下的功能:将选定范围内的水深连同他们的坐标输出到一个文本文件中,输出内容为"x坐标,y坐标,水深值".

请各位高手不吝赐教,不胜感激!

以下是一个水深图的范本:

本帖子中包含更多资源

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

x
发表于 2005-12-11 17:42 | 显示全部楼层
先发个dwg图。
 楼主| 发表于 2005-12-11 18:00 | 显示全部楼层
好了,传上去了.
发表于 2005-12-11 23:10 | 显示全部楼层
"x坐标,y坐标,水深值" 中的X,Y坐标指的是整数部分还是小数部分的坐标?
 楼主| 发表于 2005-12-12 14:28 | 显示全部楼层
是整数部分的,整个水深的坐标都是以整数部分的坐标为准的.
发表于 2005-12-14 16:36 | 显示全部楼层

试试这个

;小数与对应整数的坐标差固定为(6.4,-1.0),另假定图面上没有其他text对象
(defun c:aaa (/ ss1 ss2 en1 en2 x1 x2 y1 y2 t1 t2 m n k ff txt)
    (setq ss1 (ssget "x" '((0 . "TEXT") (40 . 4.0))))
    (setq ss2 (ssget "x" '((0 . "TEXT") (40 . 3.0))))
    (setq n 0)
    (setq ff (open "D:\数据记录.txt" "w"));更改为想要保存到的路径及文件名
    (repeat (sslength ss1)
 (setq m 0)
 (setq en1 (ssname ss1 n))
 (setq x1 (cadr (assoc 10 (entget en1))))
 (setq y1 (caddr (assoc 10 (entget en1))))
 (setq t1 (cdr (assoc 1 (entget en1))))
 (setq k 0)
 (repeat (sslength ss2)
     (setq en2 (ssname ss2 k))
     (setq x2 (cadr (assoc 10 (entget en2))))
     (if (< (abs (- (- x2 x1) 6.4)) 0.0001);x方向坐标差改变
  (progn     
      (setq y2 (caddr (assoc 10 (entget en2))))
      (if (< (abs (- (- y1 y2) 1)) 0.0001);y方向坐标差改变
   (progn      
       (setq t2 (cdr (assoc 1 (entget en2))))
       (setq txt (strcat (rtos x1) " " (rtos y1) " " t1 "." t2 "\n"))
       (princ txt ff)
       (setq m 1)
          )
             )

         )
            )      
     (setq k (1+ k))
         )
  (if (= m 0)
  (progn     
      (setq txt (strcat (rtos x1) " " (rtos y1) " " t1 "\n"))
      (princ txt ff)
         )
  ) 
  (setq n (1+ n))
     )
     (prin1)   
)

 楼主| 发表于 2005-12-15 13:12 | 显示全部楼层
非常感谢lazybug,你编的程序很好用.
 楼主| 发表于 2005-12-16 10:01 | 显示全部楼层
忘记给你一朵鲜花以示谢意
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 17:27 , Processed in 0.223689 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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