BG表格自动生成.LSP
上传用户:sd555111
上传日期:2014-05-17
资源大小:31k
文件大小:3k
源码类别:

CAD

开发平台:

MathCAD

  1. ;       =============================================
  2. ;       |             表格自动生成软件              |
  3. ;       |         板本: V1.1   作者: 尉迟俊岭       |
  4. ;       =============================================
  5. (defun C:bg(/ rows colu rows1 rows2 ly lx i ii propt colu1 co coo 
  6. dx dy dxx dyy str with ptp1 ptp2 ptp3 ptp4 os)
  7.    (setvar "CMDECHO" 0)
  8.    (setq lay (getvar "clayer"))
  9.    (setq os (getvar "OSMODE"))
  10.    (setvar "OSMODE" 0)
  11.    (command "color" "bylayer")
  12.    (command "layer" "m" "bg" "c" "y" "bg" "")
  13.    (initget 7)
  14.    (setq rows (getint "n表格总行数: "))
  15.    (initget 7)
  16.    (setq colu (getint "n表格总列数: "))
  17.    (initget 7)
  18.    (setq rows1 (getreal "n表格第一行行距: "))
  19.    (initget 7)
  20.    (setq rows2 (getreal "n表格其它行行距: "))
  21.    (setq ly (+ rows1 (* rows2 (1- rows))))
  22.    (setq lx 0)
  23.    (setq i 1)
  24.      (repeat colu
  25. (initget 7)
  26. (setq ii (itoa i))
  27. (setq propt (strcat "表格第" ii "列列距: "))
  28. (setq colu1 (getreal propt))
  29. (setq lx (+ lx colu1))
  30.    (if (= 1 i) (setq co (list colu1))
  31.       (progn
  32.  (setq coo (list colu1))
  33.  (setq co (append co  coo))
  34.       )
  35.    )
  36. (setq i (1+ i))
  37.      )
  38.    (setq pt1 (getpoint "n表格左上角点: "))
  39.    (setq ptp1 pt1)
  40.       (setq dy (cadr pt1))
  41.       (setq dx (car pt1))
  42.       (setq dxx (+ dx lx))
  43.       (setq pt2 (list dxx dy)) 
  44.       (command "line" pt1 pt2 "")
  45.       (setq dy (- dy rows1))
  46.       (setq pt1 (list dx dy))
  47.       (setq pt2 (list dxx dy))
  48.       (command "line" pt1 pt2 "")
  49.    (repeat (1- rows)
  50.        (setq dy (- dy rows2))
  51.        (setq pt1 (list dx dy))
  52.        (setq pt2 (list dxx dy))
  53.        (command "line" pt1 pt2 "")    
  54.    )
  55.        (setq dyy (+ dy ly))
  56.        (setq pt2 (list dx dyy))
  57.        (command "line" pt1 pt2 "")
  58.    (setq i 0)
  59.    (repeat colu
  60.        (setq c (nth i co))
  61.        (setq dx (+ dx c))
  62.        (setq pt1 (list dx dy))
  63.        (setq pt2 (list dx dyy))
  64.        (command "line" pt1 pt2 "")
  65.        (setq i (1+ i))
  66.    )
  67.    (initget "Yes No")     
  68.    (setq str (getkword "n表格边框是否加粗: 不加粗:No / <加粗:Yes> "))
  69.    (if (or (= str nil) (= (strcase str) "YES"))
  70.       (progn
  71.  (initget 6)
  72.  (setq with (getreal "n表格边框线宽<0.6>: "))
  73.  (if (= with nil) (setq with 0.6))
  74.  (setq dy (cadr ptp1))
  75.  (setq dx (car ptp1))
  76.  (setq dxx (+ dx lx))
  77.  (setq ptp2 (list dxx dy)) 
  78.  (setq dyy (- dy ly))
  79.  (setq ptp3 (list dxx dyy))
  80.  (setq ptp4 (list dx dyy))
  81.  (command "PLINE" ptp1 "w" with with ptp2 ptp3 ptp4 "c")
  82.       )
  83.    )
  84.    (setvar "OSMODE" os)
  85.    (command "layer" "s" lay "")
  86.    (princ)(princ)
  87. )