tssd这个功能如何用LISP实现?我只会写两点的 - (defun C:tt (/ angle1 cl dd djdj n1 old_cmdecho xx yy osm)
- (setq OLD_CMDECHO (getvar "CMDECHO"))
- (setvar "CMDECHO" 0)
- (setq CL (getvar "clayer"))
- (setq osm (getvar "osmode")) ;;抓点
- (setvar "osmode" 0)
- (if (not(tblsearch "layer" "rein")) (vl-cmdf "-layer" "N" "rein" "c" "6" "rein" ""))
- (command "clayer" "rein")
-
- (setq L1 (getpoint "\n请选择点筋起点:"))
- (setq L2 (getpoint L1 "\n选择点筋终点:"))
- (setq angle1 (angle L1 L2))
- (setq dd (distance L1 L2))
- (setq n1 (read (rtos (- ( / dd 800) 0.5) 2 0)))
- (setq xx (sin angle1))
- (setq yy (cos angle1))
- (setq djdj ( makeDJ L1))
- (repeat n1
- (command "copy" djdj "" "m" (list 0 0) (list ( * 800 yy ) ( * 800 xx )) "" )
- (setq djdj (entlast))
- )
-
- (setvar "clayer" CL)
- (setvar "CMDECHO" OLD_CMDECHO)
- (setvar "osmode" osm)
-
- (princ)
- )
|