![]() |
【转帖】帮忙看看自动做图框的lsp,能做图框,为什么不是块。
帮忙看看自动做图框的lsp,能做图框,为什么不是块。
www.dimcax.com 帮忙看看自动做图框的lsp,能做图框,为什么不是块。 想做成一个图框块。 ;;; 此程序用于绘制图框. ;;;------------------------------------------------------------------------- (setq i (getvar "dimscale")) ;获取比例 (setvar "regenmode" 1) ;保证autocad不询问是否重新生成 (setvar "cmdecho" 0) ;屏蔽command显示 (setq cl (getvar "clayer") osm (getvar "osmode")) (command "limits" "off") (setvar "osmode" 0) (initget "0 1 2 3 4") (princ "\nsmcad-lsp, 绘制图框 ...") (setq tf (getkword "\n选择标准图幅(0-4)<4>:")) (if (not tf) (setq tf 4) (setq tf (atoi tf))) (if (= tf 4) (progn (initget "hor ver") (setq hv (getkword "\nstyle(ver/hor)<ver>:")) (if (not hv) (setq hv "ver")) (if (= hv "hor") (setq bb 210. ll 297.) (setq bb 297. ll 210.))) ;progn ) ;if (cond ((= tf 0) (setq bb 841. ll 1188.)) ;841x1188 ((= tf 1) (setq bb 594. ll 841.)) ;546x841 ((= tf 2) (setq bb 420. ll 594.)) ((= tf 3) (setq bb 297. ll 420.)) ) ;cond (setq aa 25 i ii) (if (< tf 3) (setq cc 10) (setq cc 5)) (setq aa (* aa i) ll (* ll i) bb (* bb i) cc (* cc i)) (command "layer" "s" "0" "") (command "pline" '(0 0) "w" (* i 0.5) (* i 0.5) (polar '(0 0) 0 (- ll aa cc)) (polar (getvar "lastpoint") (/ pi 2) (- bb cc cc)) (polar '(0 0) (/ pi 2) (- bb cc cc)) "cl") (command "layer" "s" "0" "") (command "pline" (setq pti (list (- aa) (- cc))) "w" 0 0 (polar (getvar "lastpoint") 0 ll) (setq ptm (polar (getvar "lastpoint") (/ pi 2) bb)) (polar (list (- aa) (- cc)) (/ pi 2) bb) "cl") (command "limits" (polar pti -2.356 i) (polar ptm 0.785 i) "zoom" "e") (setq fn (strcat " file name: " (strcase (getvar "dwgname")) ".dwg")) (command "insert" "/block/sign.dwg" "0,0" i i 0 "text" (list (* -1.5 i) (* 105 i)) (* i 3) 90 fn) (command "layer" "s" cl "") (setvar "osmode" osm) (princ) (defun c:autostbk() (princ "\nauto camd (ver.szp), automatic-set a block...") (setq osmode_save (getvar "osmode")) (setvar "osmode" 0) (setq sss (ssget)) (if sss (progn (setq cd (rtos (getvar "cdate") 2 6)) (setq cd (substr cd (- (strlen cd) 5))) (command "block" (strcat "auto-set-" cd) (getvar "viewctr") sss "") (command "insert" (strcat "auto-set-" cd) (getvar "viewctr") 1 1 0) ) ;progn ) ;if (setvar "osmode" osmode_save) (princ) ) (c:autostbk) 应该是形成一个块,只是需人工选择作成块的元素范围 |
| 所有的时间均为北京时间。 现在的时间是 05:43 AM. |