chinaqyg 发表于 2010-5-26 16:56:00

看看这个程序在CAD2010中有问题吗?

<p>这个是一个前辈在CAD2004中的一个程序,为什么加载到2010中不能使用呢?</p><p>错误提示:; 错误: no function definition: LP_INSTSCALE</p><p>;本程序完成于1994,12,12.修改于1996,1,4.用于在指定某两条线的上下关系基础上,将下面的线切断.<br/>;修改后可连接原本不交叉的线.1998,6,1使可多选下线.<br/>;2001/8/1修改后默认值取自CurrentWork.ini文件.2002/5/29修改CurrentWork.ini文件,按比例保存默认值<br/>(defun c:btreset( / sc ddefault filename BTdist)<br/>&nbsp; (setq sc (getvar "userr1"))(setq ddefault 1.3)<br/>&nbsp; (setq BTdist (strcat "BTDist" (rtos sc 2 0)))<br/>&nbsp; (setq filename (strcat (getvar "DWGPREFIX") "currentwork.ini"))<br/>&nbsp; (lp_setcfg filename "GeneralAPP/BT" BTDist (rtos (* ddefault (lp_InstScale sc) sc) 2 2))<br/>&nbsp; (princ "\n断线距离已复原.")(princ)<br/>)<br/>(defun c:bt(/ oldos sc ddefault a1 info pa pb sdl len_dl d a2 pc pd intall int bp1 bp2 filename keylist testini distanBT BTdist)<br/>&nbsp; (setq *error* err)(setvar "cmdecho" 0)(command "UNDO""G")<br/>&nbsp; (lp_chkscale)(setq sc (getvar "userr1"))<br/>&nbsp; (setq ddefault 1.3)<br/>&nbsp; ;-----<br/>&nbsp; (setq BTdist (strcat "BTDist" (rtos sc 2 0)))<br/>&nbsp; (setq filename (strcat (getvar "DWGPREFIX") "currentwork.ini"))<br/>&nbsp; (setq keylist (list (list BTDist (rtos (* ddefault (lp_InstScale sc) sc) 2 2))))<br/>&nbsp; (setq testini (lp_inifileCheck "Currentwork.ini" "GeneralAPP/BT" keylist) keylist nil)<br/>&nbsp; (if (NULL testini)<br/>&nbsp;&nbsp;&nbsp; (setq distanBT (* ddefault (lp_InstScale sc) sc))<br/>&nbsp;&nbsp;&nbsp; (setq distanBT (read (cadr (lp_getcfg filename "GeneralAPP/BT" BTDist))))<br/>&nbsp; )<br/>&nbsp; ;-----<br/>&nbsp; (setq a1 (car (lp_pickent "请点取上线:" "LINE" "点取的不是直线,请重点.")))<br/>&nbsp; (setq info (lp_qlineinfo a1) pa (caar info) pb (cadar info))<br/>&nbsp; (prompt "\n请选择下线:")(setq sdl (ssget '((0 . "LINE"))))<br/>&nbsp; (setq len_dl (sslength sdl))<br/>&nbsp; ;-----<br/>&nbsp; (setq d (getdist (strcat "\n请输入线一侧断开的距离&lt;" (rtos distanBT 2 2)"&gt;: ")))<br/>&nbsp; (if (not d) (setq d distanBT))<br/>&nbsp; (setq distanBT d)<br/>&nbsp; (lp_setcfg filename "GeneralAPP/BT" BTDist (rtos distanBT 2 2))<br/>&nbsp; ;-----输入一侧断开的度<br/>&nbsp; (setq oldos (lp_osmode))<br/>&nbsp; (while (&gt; len_dl 0)<br/>&nbsp;&nbsp;&nbsp; (setq a2 (ssname sdl (1- len_dl)));a2是下线<br/>&nbsp;&nbsp;&nbsp; (setq info (lp_qlineinfo a2) pc (caar info) pd (cadar info))<br/>&nbsp;&nbsp;&nbsp; (setq intall (inters pa pb pc pd nil));求两线延长线上的交点<br/>&nbsp;&nbsp;&nbsp; (setq int (inters pa pb pc pd));求两线交点<br/>&nbsp;&nbsp;&nbsp; (if (not intall)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (/= a1 a2)(progn(redraw a1 3)(redraw a2 3)(alert "\n&nbsp; 这两条线无交点!&nbsp; ")(redraw a1)(redraw a2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a2 (entget a2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= int nil)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&lt;= (distance intall (cdr (assoc 10 a2))) (distance intall (cdr (assoc 11 a2))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a2 (subst (cons 10 intall) (assoc 10 a2) a2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a2 (subst (cons 11 intall) (assoc 11 a2) a2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod a2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq int intall)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ));end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&lt; (distance int pc) (distance int pd))(setq pc pd))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq bp1 (polar int (angle int pc) d) bp2 (polar int (+ pi (angle int pc)) d))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "break"(cdr (assoc -1 a2)) bp1 bp2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq len_dl (1- len_dl))<br/>&nbsp; )<br/>&nbsp; (setvar "osmode" oldos)(command "UNDO""End")<br/>&nbsp; (redraw a1)(setq *error* nil)(princ)<br/>)<br/></p>

ZZXXQQ 发表于 2010-5-26 20:51:00

用了别人的函数。在2004中行,在2010中就不行了。
页: [1]
查看完整版本: 看看这个程序在CAD2010中有问题吗?