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