本帖最后由 伪书虫86 于 2014-7-15 08:51 编辑
程序目标:框选多个单行文字后,在其下方600处生成对应的指定文字。。。如下:
16→BV-3*2.5-JDG20
20→BV-3*4-JDG20
25→BV-3*6-JDG20
32→BV-3*10-JDG25
*
*
菜鸟一个,凑了一段代码,可是怎么都调试不成功,哪位大神指导下啊,不胜感激了
还有那个在原文字下方指定距离输出新文字,有没有比我这个更简洁的代码啊?
在此特别感谢下xyp196、langjs、ZZXXQQ 谢谢你们
 - (defun c:cs( )
- (setvar "cmdecho" 0)
- (setq dlq '(16 20 25 32 40 50))
- (setq xj '(2.5 4 6 10 16 16))
- (setq gj '(20 20 20 25 32 32))
- (setvar "cmdecho" 0)
- (prompt "\n选择文字:")
- (setq ss (ssget '((0 . "TEXT"))))
- (setq ztys (cdr(assoc 7 ss)));字体样式
- (setq zg (cdr(assoc 40 ss)));字高
- (setq zb (cdr(assoc 10 ss)));坐标
- (setq tc (cdr(assoc 8 ss)));图层
- (setq i (sslength dlq))
- (while (= ss (nth i dlq))
- (setq txt (strcat "BV-3*" (nth i xj) "-JDG" (nth i gj)))
- (setq i (1- i))
- )
- (setq newzb (list (car zb1) (+ (cadr zb1) -600)))
- (command "text" "s" ztys newzb zg 0 txt)
- (command "chprop" (entlast) "" "la" tc "" )
- )
- (setvar "cmdecho" 1)
|