freeok 发表于 2012-12-8 12:03:46

求助使用如下LSP

(defun c:txt ()
(setq lst nilnewlst nil x1 0)
(setq a (ssget))
(setq n (sslength a))
(setq index 0)
(repeat n
(setq el (entget ( ssname a index)))
(setq index ( + index 1))
(setq e (assoc 0 el))
(if (= "TEXT" (cdr e))
(progn
(setq txt (cdr (assoc 1 el)))
(setq lst(cons(append(list 1) (list txt))lst))
)
)
)
(while lst
(setq n 0)
(foreach i lst(if (= (cadar lst) (cadr i))(setq n (+ n (car i)))))
(setq newlst (append newlst (list (list n (cadar lst)))))
(setq lst(vl-remove-if '(lambda (x) (= (cadar lst) (cadr x))) lst))
)
(setq x2 (getpoint "\起始位置"))
(setq x3 (polar x20 12))
    (command "text" "j" "c" (polar x2 (* pi 0.5) 3) "2" "0" "种类" "")
(command "text" "j" "c" (polar x3 (* pi 0.5) 3) "2" "0" "数量" "")
(repeat (length newlst)
    (command "text" "j" "c" x2 "1.5" "0" (nth 1 (nth x1 newlst)) "")
    (command "text""j" "c" x3 "1.5" "0" (nth 0 (nth x1 newlst)) "")
    (setq x2(polar x2 (* pi 1.5) 3))
    (setq x3 (polar x20 12))
    (setq x1(1+ x1))
    )

)

为什么我的不能生成表,而是一堆的数字?

freeok 发表于 2012-12-8 12:04:31

此源码来源于明经。好像是Z版的,先谢谢了!

xiabin68 发表于 2012-12-8 12:38:50

因该本来就是那样的哦,,,,,,,,,

freeok 发表于 2012-12-8 12:59:27

看别人的演示是一个列表。而我的是全堆在一块,重叠了。

42142 发表于 2012-12-8 13:33:21

freeok 发表于 2012-12-8 12:59 static/image/common/back.gif
看别人的演示是一个列表。而我的是全堆在一块,重叠了。

文字样式的问题你自己新建一个文字样式,text插入时用你的文字样式

仲文玉 发表于 2012-12-8 14:57:47

关闭捕捉,运行后再打开

胆小鬼39 发表于 2012-12-8 19:28:33

这个程序还是比较实用的,文字改成单行文字就可以了
页: [1]
查看完整版本: 求助使用如下LSP