请教LISP高手(关于高程点的自动检查)
<p>前几天在网上找的这样一段关于高程点注记的检查程序,好像不能用,请高手指教,现急用,不甚感激!</p><p>(defun c:gcdjc ()<br/> (setvar "cmdecho" 0)<br/> (write-line "欢迎使用高程点自动检查与修改程序!")<br/> (setq ent (ssget "x" ((8, "gcd") (0, "text"))))<br/> (if ent<br/> (progn<br/> (command "zoom" "e")<br/> (command "layer" "m" "gcd" "")<br/> (setq ent_length (sslength ent))<br/> (setq ent_number 0)<br/> (repeat ent_length<br/> (setq ent_name (ssname ent ent_number))<br/> (clgcd)<br/> (setq ent_number (1+ent_number))<br/> )<br/> (command "layer" "In" "0" "")<br/> (command "zoom" "e")<br/> (write-line "高程点检查修改完毕!")<br/> )<br/> )<br/>)<br/>(defun clgcd ()<br/> (setq data (entget ent_name))<br/> (setq rex (cdr (assoc 1 data)))<br/> (setq P (cdr (assoc 10 data)))<br/> (setq pl (polar P (* 1.25 pi) 7,0)<br/> pr (polar P (* 0.25 pi) 10,0)<br/> )<br/> (setq ent-P (ssget "w" pl pr ((0, "point") (8, "gcd"))))<br/> (if ent-P<br/> (progn<br/> (setq p_length (sslength ent-P))<br/> (setq p_number 0)<br/> (setq p_data (entget (ssname ent-P p_number)))<br/> (setq gcdz (rtos (cadddr (assoc 10 p_data)) 2 2))<br/> (setq wc (- (atof gcdz) (atof tex)))<br/> (while (and<br/> (>= (abs wc) 0.01)<br/> (<p_number (1-P_length))<br/> )<br/> (setq p_number (1+p_number))<br/> (setq p_data (entget (ssname ent-P p_number)))<br/> (setq gcdz (rtos (cadddr (assoc 10 p_data)) 2 2))<br/> (setq wc (- (atof gcdz) (atof rex)))<br/> )<br/> (if (>= (abs wc) 0.O1)<br/> (progn<br/> (command "zoom" pl pr)<br/> (write-line "无匹配高程点,请选择需要修改的高程点,不选择则自动加点.")<br/> (redraw ent_name 3)<br/> (setq p_sel (ssget))<br/> (redraw ent_name 4)<br/> (if p_sel<br/> (progn<br/> (setq sel (entget (ssname P_sel 0)))<br/> (setq X (cadr (assoc 10 sel))<br/> Y (caddr (assoc 10 sel))<br/> )<br/> (setq zb_new (1ist 10 X Y (atof tex)))<br/> (setq sel (subst<br/> zb_new<br/> (assoc 10 sel)<br/> sel<br/> )<br/> )<br/> (entmod sel)<br/> )<br/> (jiagcd)<br/> )<br/> (command "zoom" "e")<br/> )<br/> )<br/> )<br/> )<br/> (jiagcd)<br/>)<br/>(defun jiagcd ()<br/> (setq P-xy (polar (polar P (*0.5 pi) 0.5) pi 0.8))<br/> (command "point" P-xy)<br/> (command "change" "l" "" "P" "e" (atof tex) "")<br/>)</p> 不知道什么叫高程点,,,就程序本身的格式改下:<br/> (setq ent (ssget "x" ((8, "gcd") (0, "text"))))<br/><font color="#009900">(setq ent (ssget "x" '((8, "gcd") (0, "text"))))</font>;加一个'号<br/> (setq ent_number (1+ent_number))<br/><font color="#009900"> (setq ent_number (1+ ent_number))</font>;空格<br/>(setq ent-P (ssget "w" pl pr ((0, "point") (8, "gcd"))))<br/><font color="#009900">(setq ent-P (ssget "w" pl pr '((0, "point") (8, "gcd"))))</font>;加一个'号<br/>(<p_number (1-P_length))<br/><font color="#009900">(< p_number (1- P_length))</font>;空格<br/>(setq p_number (1+p_number))<br/><font color="#009900">(setq p_number (1+ p_number))</font>;空格<br/>(setq P-xy (polar (polar P (*0.5 pi) 0.5) pi 0.8))<br/><font color="#009900">(setq P-xy (polar (polar P (* 0.5 pi) 0.5) pi 0.8))</font>;空格<br/><br/><br/> 这个不错式试http://bbs.mjtd.com/forum.php?mod=viewthread&tid=66699 <p>问题已解决,非常感谢楼上两位。</p> sydney2000 发表于 2008-4-26 18:09 static/image/common/back.gif问题已解决,非常感谢楼上两位。
请问楼主怎么解决的?能否发一下程序?
页:
[1]