求大神指导编写代码
我想一次性获取CAD图纸中的文字起点坐标和角度,有哪位大神能帮忙知道一下.附图是我在网上找到的获取多段线交点坐标的代码,我觉得应该比较像,可以更改一下就实现了,但不知道具体怎么改,希望有行家帮帮忙.谢谢了本帖最后由 xyp1964 于 2017-12-5 12:35 编辑
;; CAD图纸中的文字内容、起点坐标和角度
;; 需要e派工具箱(XCAD)的支持
(defun c:tt ()
(if (setq ss (ssget "X" '((0 . "text"))))
(setq lst (mapcar '(lambda (x) (mapcar 'cadr (xyp-Get-DXFs x '(1 10 50)))) (xyp-Ss2List ss)))
)
(princ lst)
(princ)
) xyp1964 发表于 2017-12-5 12:33
首先万分感谢您百忙之中帮我忙,其次这个语言中还是有些不太懂的。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。希望您能再次帮我解答一下,谢谢。 (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))
)
)
) langjs 发表于 2017-12-5 15:27
(defun c:tt (/ ent i lst ss)
(setq lst '())
(if (setq ss (ssget '((0 . "text"))))
您好,首先感谢您百忙中帮我,您这个代码是需要自己一个个选择对象的,可不可以就是一次性选择一个提取范围,自动提取其中的文字。谢谢 老大,(setq ss (ssget '((0 . "text"))))这段就是框选文字呀,又不是点选entsel pxt2001 发表于 2017-12-5 20:29
老大,(setq ss (ssget '((0 . "text"))))这段就是框选文字呀,又不是点选entsel
谢谢谢谢谢谢,因为我是初学者所以不太懂,谢谢大佬的教导,您能不能再顺便帮我改一下,让结果以excel表格的形式输出,万分感谢
页:
[1]