 - [FONT=courier new](defun c:test ()
- (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 50.0)
- )
- (setq hh (getdist pt1 "\n每格高度<8>:"))
- (if (null hh)
- (setq hh 8.0)
- )
- (setq pt2 (polar pt1 0 ww)
- pt3 (polar pt2 (* pi 1.5) hh)
- pt4 (polar pt1 (* pi 1.5) hh) ;原句有错
- )
- (command "PLINE" pt1 pt2 pt3 pt4 "c")
- (setq pt5 (polar pt1 0 (/ ww 2))
- pt6 (polar pt5 (* pi 1.5) hh)
- )
- (command ".LINE" pt5 pt6 "")
- (command "TEXT"
- "m"
- (inters pt1 pt6 pt4 pt5 nil)
- (/ 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)
- blk_key (substr (cdr blkn) 1 1)
- )
- (if (/= blk_key "*")
- (progn
- (setq ss (ssget "x" (list blkn)))
- (if (null ss)
- (setq ssn 0)
- (setq ssn (sslength ss))
- )
- (setq blknn (cdr blkn))
- (setq pt1 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 ".PLINE" pt2 pt3 pt4 pt1 "")
- (command ".LINE" pt5 pt6 "")
- (command ".TEXT"
- "m"
- (inters pt1 pt6 pt4 pt5)
- (/ hh 2)
- 0
- blknn
- )
- (command ".TEXT"
- "m"
- (inters pt5 pt3 pt2 pt6)
- (/ hh 2)
- 0
- (itoa ssn)
- )
- )
- )
- (setq blk (tblnext "BLOCK"))
- )
- (setvar "osmode" os)
- (princ)
- )[/FONT]
|