明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 774|回复: 6

[源码] 求大神指导编写代码

[复制链接]
发表于 2017-12-5 10:35:33 | 显示全部楼层 |阅读模式
我想一次性获取CAD图纸中的文字起点坐标和角度,有哪位大神能帮忙知道一下.附图是我在网上找到的获取多段线交点坐标的代码,我觉得应该比较像,可以更改一下就实现了,但不知道具体怎么改,希望有行家帮帮忙.谢谢了

本帖子中包含更多资源

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

x
发表于 2017-12-5 12:33:16 | 显示全部楼层
本帖最后由 xyp1964 于 2017-12-5 12:35 编辑

  1. ;; CAD图纸中的文字内容、起点坐标和角度
  2. ;; 需要e派工具箱(XCAD)的支持
  3. (defun c:tt ()
  4.   (if (setq ss (ssget "X" '((0 . "text"))))
  5.     (setq lst (mapcar '(lambda (x) (mapcar 'cadr (xyp-Get-DXFs x '(1 10 50)))) (xyp-Ss2List ss)))
  6.   )
  7.   (princ lst)
  8.   (princ)
  9. )
 楼主| 发表于 2017-12-5 14:28:04 | 显示全部楼层

首先万分感谢您百忙之中帮我忙,其次这个语言中还是有些不太懂的。1.需要e派箱(xCAD)的支持是什么意思。2.您能不能帮我解释一下(setq lst (mapcar '(lambda (x) (mapcar 'cadr (xyp-Get-DXFs x '(1 10 50)))) (xyp-Ss2List ss)))这句语言的具体意思,主要是cadr后面的不太懂,找了一下书上也没解释。3.我把您的代码粘贴到了LISP编辑器中,但加载后出现了错误,提示说No function definition XYP-SS2LIST。希望您能再次帮我解答一下,谢谢。
发表于 2017-12-5 15:27:04 | 显示全部楼层
(defun c:tt (/ ent i lst ss)
  (setq lst '())
  (if (setq ss (ssget '((0 . "text"))))
    (repeat (setq i (sslength ss))
      (setq ent (entget (ssname ss (setq i (1- i)))))
      (setq lst (cons (list (cdr (assoc 1 ent)) (cdr (assoc 10 ent)) (cdr (assoc 50 ent))) lst))
    )
  )
)
 楼主| 发表于 2017-12-5 19:54:30 | 显示全部楼层
langjs 发表于 2017-12-5 15:27
(defun c:tt (/ ent i lst ss)
  (setq lst '())
  (if (setq ss (ssget '((0 . "text"))))

您好,首先感谢您百忙中帮我,您这个代码是需要自己一个个选择对象的,可不可以就是一次性选择一个提取范围,自动提取其中的文字。谢谢
发表于 2017-12-5 20:29:52 来自手机 | 显示全部楼层
老大,(setq ss (ssget '((0 . "text"))))这段就是框选文字呀,又不是点选entsel
 楼主| 发表于 2017-12-5 20:43:39 | 显示全部楼层
pxt2001 发表于 2017-12-5 20:29
老大,(setq ss (ssget '((0 . "text"))))这段就是框选文字呀,又不是点选entsel

谢谢谢谢谢谢,因为我是初学者所以不太懂,谢谢大佬的教导,您能不能再顺便帮我改一下,让结果以excel表格的形式输出,万分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 19:56 , Processed in 0.171268 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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