明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3245|回复: 5

[求助]请问各位大侠,怎么样才能叫 从CAD中导出的文字是按顺序的呢?

[复制链接]
发表于 2003-4-2 21:14:00 | 显示全部楼层 |阅读模式
怎么样才能叫从CAD中的导出文字是按顺序的
    在导出的文本文件中 的文字是按顺序的那,
请各位大侠 附代码 !!!!谢谢了 各位。
发表于 2003-4-3 09:01:00 | 显示全部楼层

你要按位置顺序呢,还是按字母顺序

如果是位置顺序,则须在选择后对各个文字实体排序,因为选择时选择是无序的(至少我还没找出其顺序),这个函数我写过,不过使用比较麻烦,你要我可以给你,
如果是按字母顺序,那就将文字实体提取文字字符串后,用普通的编程方法将其排序
 楼主| 发表于 2003-4-3 09:09:00 | 显示全部楼层

谢谢大侠, 我是用位置排序的,我可以看一下嘛?

我想都看看,谢谢你了!!
 楼主| 发表于 2003-4-3 14:45:00 | 显示全部楼层

急需大侠的帮助 谢谢大侠, 我是用位置排序的,我可以看一下嘛?

发表于 2003-4-3 15:03:00 | 显示全部楼层

函数

因为是对表进行排序,所以要排序实体,必须将其做成其实体名的列表,再进行排序。做的粗糙,如有好的建议,希望不吝赐教。

(具体对数字的排序我用的是选择法)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;功能:给表序               
;lists---需要排序的表      
;funs----排序方法           
;"x" 为按X轴由小到大排序   
;"y" 为按Y轴由小到大排序   
;一般的数字表排序输入nil   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun sort(lists funs / n i d1 d_1 d1v d_1v getptx getpty tmp mn)
  (defun getptx(sname / sinf2 pts)
    (setq sinf2 (entget sname))
    (setq pts (cadr (assoc 10 sinf2)))
    pts
  )
  (defun getpty(sname / sinf2 pts)
    (setq sinf2 (entget sname))
    (setq pts (caddr (assoc 10 sinf2)))
    pts
  )
  (setq i 0)
  (while (< i (1- (length lists)))
    (setq mn i)
    (setq j (1+ i))
    (while (< j (length lists))
      (setq d1 (nth j lists))
      (setq d_1 (nth mn lists))
      (cond
        ((= funs "x") (progn (setq d1v (getptx d1)) (setq d_1v (getptx d_1))))
        ((= funs "y") (progn (setq d1v (getpty d1)) (setq d_1v (getpty d_1))))
        ((= funs nil) (progn (setq d1v d1) (setq d_1v d_1)))
      );cond
      (if (< d1v d_1v)
        (setq mn j)
      )
      (setq j (1+ j))
    )
    (setq tmp (nth mn lists))
    (setq lists (modlist lists (nth i lists) mn))
    (setq lists (modlist lists tmp i))
    (setq i (1+ i))
  );while1
  lists
)
发表于 2013-8-19 14:32:52 | 显示全部楼层
;;取得图层所有文本.
(defun c:lout()
(setq flnm (getfiled "保存文件名" "" "txt" 1))
 (setq fn (open flnm "w"))
 (setq s (ssget))
 (setq n (sslength s))
 (setq index ( - n 1))
 (repeat n
  (setq ents (entget (ssname s index)))
  (setq index ( - index 1))
  (setq ent (assoc 0 ents))
  (if ( = "TEXT" (cdr ent))
    (progn
      (setq txt (cdr (assoc 1 ents)))
      (write-line txt fn)
    )
  )
 )
(close fn)
)
(princ "\n文本导出TXT")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 10:06 , Processed in 0.238610 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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