1、一、 编写 Autolisp 源代码文件 .lsp代码部分:(分割线一下)=(defun c:lddl()(setvar “cmdecho“ 0)(setvar “osmode“ 0)(setq ffn(getfiled “选取文件“ “ “xls“ 1)(setq ff (open ffn “a“)(close ff)(princ “n 选取 Pline 多义线“)(setq ss (ssget)(setq i 0)(repeat (sslength ss);根据选择集的个数来确定循环。(setq zimu(getstring “如果点号前加字母请输入字母,不需要请按回车键“)(setq n
2、um (getint “输入起始点号“)(setq ssn (ssname ss i)(setq endata (entget ssn)(setq n 0)(repeat (length endata);根据图元的元素个数进行循环。(setq pp (nth n endata);负责检索图元元素。(setq key (car pp);提取元素名称(if (= key 10)(progn (setq x (rtos (cadr pp)2 3);设置精度(setq y (rtos (caddr pp)2 3);同上(setq ff (open ffn “a“)(princ zimu ff)(pri
3、nc num ff)(princ “t“ ff)(princ x ff)(princ “t“ ff)(princ y ff)(princ “n“ ff)(close ff)(command “text“ “m“(list (atof x) (- (atof y) 0.7) 0.3 0 (strcat zimu (itoa num);为了标注点好,调整位置的时候需要把字符串转换成实数。(setq num (1+ num)(setq n (1+ n);从头检索找到元素名为“10” ,转换写入文件。)(setq i (1+ i)(princ (strcat “n 文件写至-“ ffn)(prin1)=把以上代码复制粘贴到记事本修改后缀名 file.txtfile.lsp二、 加载 lsp 文件,保存 excel 文件。点击加载应用程序选择 file.lsp 的文件点击加载选择加载一次或者始终加载都可以关闭加载窗口,状态栏显示加载成功!在命令框输入 lddl 新建保存的 excel 的位置以及文件名点击保存。选择你要提取的多段线(一次可以选择多个线段,也可单选)输入第一段的起始点号空格输入下一段的起始点号输出的 excel 的格式为 “点号 ” “Y” “X”三、 结束如果需要继续提取可以继续选择上次 excel 文件,坐标将接着上次结束位置继续录入。