这是一位高人帮我弄得程式 但我使用不了 它会显示错误: no function definition: SORTLIST1 我也不知道如何改 希望高人可以指导下
我改了Vl-sort list1 现在成了这样了选择对象: ; 错误: 函数错误: 6.64656
(defun c:cw () ;;;---------------------------------------- (defun cwt1 () (setq m 0) (repeat (length lisx) (setq ps (nth m lisx)) (setq m (1+ m)) (setq px (vl-prin1-to-string (car ps)) py (vl-prin1-to-string (Cadr ps)) ) ;;; (setq px (vl-prin1-to-string px) ;;; py (vl-prin1-to-string px) ;;; ) (setq str (strcat "X坐标为:.." px) str1 (strcat "Y坐标为:.." py) ) (cwt #pp #hh str) (cwt (POLAR #pp 0.0 (* #hh 15.0)) #hh str1) (setq #pp (polar #pp (* pi 1.5) (+ 1.5 #hh))) ) (setq m nil ps nil px nil py nil str nil str1 nil ) ) ;;;---------------------------------------- (defun cwt (#pt #hh txt1) ;;; (if (tblsearch "style" "hz") ;;; (SETVAR "TEXTSTYLE" "hz") ;;; (progn ;;; (command "-style" "hz" "txt,xc02" "" "0.7" "" "" "") ;;; (SETVAR "TEXTSTYLE" "hz") ;;; ) ;;; ) (setq #pt (trans #pt 1 0)) (setq eli (list (cons 0 "TEXT") (cons 7 "HZ") (CONS 8 "TXT") (CONS 10 #PT) (CONS 40 #hh) (CONS 1 TXT1) (CONS 41 0.75) ) ) (ENTMAKE ELI) (princ) ) ;;;---------------------------------------- (defun ccw2 () (vl-load-com) (SETQ #PP (GETPOINT (list 0 0) "\n 请输入文本的基准点:...")) (cwt #pp #hh "所选圆实体的圆心,直径列表__前生<OursCAD@21cn.com>") (setq #pp (polar #pp (* pi 1.5) (+ 2.5 #hh))) (setq n 0) (repeat (length lisr) (setq r (nth n lisr)) (setq n (1+ n)) (setq count 0) (setq lisx nil) (setq str (strcat "圆 C" (rtos n 2 0) " 列表, 直径为:__" (vl-prin1-to-string (* 2.0 r)) ) ) (cwt #pp #hh str) (setq #pp (polar #pp (* pi 1.5) (+ 2.5 #hh))) (while (< count (sslength ss)) (setq en (ssname ss count)) (setq count (1+ count)) (setq #r (cdr (assoc 40 (entget en)))) (if (= r #r) (progn (setq p (trans (cdr (assoc 10 (entget en))) 0 1)) (setq lisx (cons p lisx)) ) ) ;end of if ) ;end of while (cwt1) ) (setq n nil r nil count nil lisx nil str nil en nil #r nil p nil ) (setq cwt1 nil #pp nil #hh nil str nil ) (princ) ) ;;;---------------------------------------- (defun ccw1 () (setq count 0) (setq lisr nil) (setq #hh nil) (while (< count (sslength ss)) (setq en (ssname ss count)) (setq r (cdr (assoc 40 (entget en)))) (setq lisr (cons r lisr)) (setq count (1+ count)) ) (setq en nil r nil count nil ) (setq lisr (vl-sort lisr '<)) (setq lisr (sortlist1 lisr)) (IF (NULL (sETQ #HH (GETDIST "\n 请输入文本的高度<缺省高度为2.5MM>:..")) ) (SETQ #HH 2.5) ) (setq n 0) (repeat (length lisr) (setq r (nth n lisr)) (setq n (1+ n)) (setq count 0) (while (< count (sslength ss)) (setq en (ssname ss count)) (setq count (1+ count)) (setq str (strcat "C" (rtos n 2 0))) (setq #r (cdr (assoc 40 (entget en)))) (if (= r #r) ;;; (if (equal r #r 0.000001) (progn ;;; (setq ed (entget en)) ;;; (entdel en) ;;; (entmake ed) (setq pt (cdr (assoc 10 (entget en)))) ;;; (setq pt (cdr (assoc 10 ed))) (setq eli (list (cons 0 "TEXT") (cons 7 "HZ") (CONS 8 "TXT") (CONS 10 PT) (CONS 40 #hh) (CONS 1 str) (CONS 41 0.75) ) ) (ENTMAKE ELI) (princ) ) ) ;end of if ) ;end of while ) (setq count nil en nil r nil n nil str nil pt nil eli nil ) (Ccw2) ) ;;;---------------------------------------- (setq ss nil) ;;; (c_hz "HZ" 0.7 0 "TXT.SHX" "1.SHX") (setq ss (ssget (list (cons 0 "circle,arc")))) (if ss (ccw1) (prompt "\n 未选择到圆实体:..") ) (setq ccw1 nil ccw2 nil ) (setq ss nil eli nil ) ;;; (prompt (strcat "\n" (getcfg "appdata/tel"))) (prompt " ___circle.lsp") (princ) ) |