(defun c:tjtk() (setvar "cmdecho" 0 ) (setq os (getvar "osmode")) (setvar "osmode" 0 ) (setq pt1 (getpoint "\n左上角:")) (setq ww (getdist pt1 "\n宽度<50>:")) (if (null ww) (setq ww 40.0)) (setq hh (getdist pt1 "\n每格高度<8>:")) (if (null hh) (setq hh 8.0)) (setq pt2 (polar pt1 0 ww)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (setq pt4 (polar pt1 (* pi 1.5) hh)) (command "pline" pt1 pt2 pt3 pt4 "c") (setq pt5 (polar ptl 0 (/ ww 2))) (setq pt6 (polar pt5 (* pi 1.5) hh)) (command "line" pt5 pt6 "") (command "text" "m" (inters pt1 pt6 pt4 pt5)(/ hh 2) 0 "图块名称") (command "text" "m" (inters pt5 pt3 pt2 pt6)(/ hh 2) 0 "数量") (setq blk (tblnext "block" t)) (while blk (setq blkn (assoc 2 blk)) (setq blk_key (substr (cdr blkn) 1 1)) (if (/= blk_key "*") (progn (setq ss (ssget "X" (list blkn))) (if (null ss) (setq ssn O) (setq ssn (sslength ss)) ) (setq blknn (cdr blkn)) (setq ptl pt4 pt5 pt6 pt2 pt3) (setq pt4 (polar pt1 (* pi 1.5) hh)) (setq pt6 (polar pt5 (* pi 1.5) hh)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (command "pllne" pt2 pt3 pt4 pt1 " ") (command "llne" pt5 pt6 " ") (command "text" "m" (inters ptl pt6 pt4 pr5) (/ hh 2) 0 blknn) (command "text" "m" (inters pt5 pt3 pt2 pr6) (/ hh 2) 0 (itoa snn)) ) ) (setq blk (tblnext "bLock")) ) (setvar "osmode" os) (prin1) ) 出现 error: bad argument type: 2D/3D point: nil 谢谢 |