明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1550|回复: 8

[源码] 批量选择文字到表格

  [复制链接]
发表于 2020-4-10 10:41:50 | 显示全部楼层 |阅读模式
(defun C:TWZ (/ n ss &kw L ff %k %k1 %k2 %k3 %k4 %k5 %k6)
                                        ;批量选择文字到表格
  (setvar "cmdecho" 0)
  ;;关闭变量
  (setvar "blipmode" 0)
  ;;关闭控制点
  (vl-load-com)
  ;;加载vlax扩展函数
  (setq        n  0
        ss '()
  )
  ;;取得一个空表
  (princ "\n请选择文字")
  (setq &kw (ssget '((0 . "TEXT,MTEXT") (1 . "*"))))
                                        ;选择文字,文字内容有字母K
  (if (/= &kw nil)
    ;;如果有选择了文字
    (progn
      (setq L  (sslength &kw)
            ff (open "d://文字到表格.xls" "w")
                                        ;建立文本;W会把文本里面的内容清除
      )
      ;;建立的文本在D盘就可以看到
      (repeat L
        (setq &kw1 (entget (ssname &kw n))
              %k1  (cdr (assoc 10 &kw1))
              ;;取得文字坐标
              %k2  (cdr (assoc 1 &kw1))
              ;;取得文字内容
              ss   (cons (list %k1 %k2) ss)
              ;;加入选择集
              n           (+ n 1)
        )
      )
    )
  )

    (princ %k2 )
)

发表于 2020-12-8 17:39:10 | 显示全部楼层
本帖最后由 vip-happy 于 2020-12-12 11:36 编辑

还以为可以赶个懒,不行,还是自己动手
留给需要的人

;;;====== 批量选择文字到表格 ======
(Defun C:GETTXTTOXLS ( / ad ent et fn i p1 p2 ss)
(Setq Ent (Entget (Car (Entsel "\n点取近似文字。。")))
            Ad (List (Assoc 0 Ent) (Assoc 8 Ent) (Assoc 7 Ent))
            Fn (Open (Getfiled "保存为:" "" "Xls" 1) "W")
)
(While (And (Setq P1 (Getpoint  "\n指定一角点:"))
            (Setq P2 (Getcorner P1 "\n指定对角点:"))
)
(Setq Ss (Ssget "C" P1 P2 Ad)
I (Sslength Ss))
(Repeat I
        (Setq I (1- I)
                Et (Cdr (Assoc 1 (Entget (Ssname Ss I))))
        )
(Princ "\n" Fn)(Princ Et Fn)
))(Close Fn)
  (Princ)
)
(Prompt "\n提文字到电子表格,键入 GETTXTTOXLS 启动程序")
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-30 11:28:32 | 显示全部楼层
我来顶楼主一下
发表于 2020-4-30 17:14:33 | 显示全部楼层
你好怎么使用的好像不能用啊
发表于 2020-12-8 17:52:55 | 显示全部楼层
看不出效果
发表于 2020-12-10 11:21:54 | 显示全部楼层
vip-happy 发表于 2020-12-8 17:39
还以为可以赶个懒,不行,还是自己动手
留给需要的人

大佬,您这代码,我为啥运行的时候,提示n点取近似文字之后,显示参数类型错误:lentityp nil
发表于 2020-12-10 11:29:53 | 显示全部楼层
打开xls的话,会显示文件被另一个用户使用,点只读后,会显示文件扩展名不符,无视的话,打开是空白的
发表于 2020-12-11 16:49:38 | 显示全部楼层
本帖最后由 vip-happy 于 2020-12-12 11:36 编辑
熊咔咔 发表于 2020-12-10 11:21
大佬,您这代码,我为啥运行的时候,提示n点取近似文字之后,显示参数类型错误:lentityp nil

不是什么大佬,点取近似文字,是取得该字的图层和文字样式,将“\N”为“\n”,一个大写的错误,Win10+CAD2014+Tch2014是测试通过的,用它提取了一套图纸的房间名,不应该发生参数类型错误,代码未运行完才会出现xls被另一个用户使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 19:16 , Processed in 0.184194 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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