maomao4337 发表于 2009-1-12 10:34:00

[求助]新人学习lsp,跪求各位大大指点迷津

<p>新手学习,请各位大侠指点。</p><p>下面是一段简单的自动编码的lsp,现想修改成可以给指定单行文字自动加编码,例如我现在已有AAA、HHH、BBB、KKK等很多单行文字编码,想通过运行此lsp自动编码,使其变为-1-AAA、-2-HHH、-3-BBB、-4-KKK等这种样式,其中-4- 分别为LSP中的前缀 序号 后缀,即运行此lsp后每点一个单行文字自动在原有单行文字前加上("前缀""序号""后缀")。</p><p>现想分别在指定插入点和指定下一个插入点之前加入选择“获取一个 AutoCAD 系统变量的值”的语句,例如</p><p>&nbsp; (setq osm (getvar "osmode"))<br/>&nbsp; (setvar "osmode" 1)<br/>&nbsp; (setvar "ORTHOMODE" 0)<br/>&nbsp; (setvar "DIMZIN" 8)<br/>&nbsp; (setq a(entsel "\n请选择一个数字:"))</p><p>不知如何完善下面的自动编码的LSP,在此先谢过大家的指点</p><p>(defun c:zdbm (/ oce1 n1 zn h1 sxh1 p1)<br/>&nbsp; (setq oce1 (getvar "cmdecho"))<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (princ "\n编号")<br/>&nbsp; (setq qz (getstring "\n请输入前缀: "))<br/>&nbsp; (setq hz (getstring "\n请输入后缀: "))<br/>&nbsp; (if (not (setq n1 (getint "\n请输入起始顺序号 &lt;1&gt;: ")))<br/>&nbsp;&nbsp;&nbsp; (setq n1 1)<br/>&nbsp; )<br/>&nbsp; (if (not (setq zn (getint "\n请输入增加或减少的序数 &lt;+1&gt;: ")))<br/>&nbsp;&nbsp;&nbsp; (setq zn 1)<br/>&nbsp; )<br/>&nbsp; (if (not (setq h1 (getreal "\n请指定文字高度 &lt;2.5&gt;: ")))<br/>&nbsp;&nbsp;&nbsp; (setq h1 2.5)<br/>&nbsp; )<br/>&nbsp; (setq sxh1 (strcat qz (itoa n1) hz))<br/>&nbsp; (setq p1 (getpoint "\n请指定插入点: "))<br/>&nbsp; (while (/= p1 nil)<br/>&nbsp;&nbsp;&nbsp; (command "text" p1 h1 0 sxh1)<br/>&nbsp;&nbsp;&nbsp; (setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n1&nbsp;&nbsp; (+ n1 zn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sxh1 (strcat qz (itoa n1) hz)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p1&nbsp;&nbsp; (getpoint "\n请指定下一插入点: ")<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setvar "cmdecho" oce1)<br/>&nbsp; (princ)<br/>)</p>

ZZXXQQ 发表于 2009-1-12 14:42:00


(defun c:zdbm (/ n1 zn s1 ent)
(if (not (setq n1 (getint "\n请输入起始顺序号 <1>: "))) (setq n1 1))
(if (not (setq zn (getint "\n请输入增加或减少的序数 <+1>: "))) (setq zn 1))
(while (and (setq s1 (entsel "\n请选择文字 : "))
             (setq ent (entget(car s1)))
             (= (cdr(assoc 0 ent)) "TEXT")) (progn
(setq ent (subst(cons 1 (strcat "-" (itoa n1) "-" (cdr(assoc 1 ent)))) (assoc 1 ent) ent))
(entmod ent)
(setq n1 (+ n1 zn))
)
(princ)
)

maomao4337 发表于 2009-1-12 19:25:00

<p>已经解决了,谢谢指点</p><p></p>
页: [1]
查看完整版本: [求助]新人学习lsp,跪求各位大大指点迷津