SY2索引2.LSP
上传用户:sd555111
上传日期:2014-05-17
资源大小:31k
文件大小:3k
源码类别:

CAD

开发平台:

MathCAD

  1. ;       =============================================
  2. ;       |                索引标注软件               |
  3. ;       |         版本: V1.0   作者: 尉迟俊岭       |
  4. ;       =============================================
  5. (defun C:sy2( / lay scab scale pt1 pt2 pt3 pt4 pt5 pt6 high dx dy dx1 dy1
  6.                 txt1 txt2 txt3 be)
  7.   (setvar "CMDECHO" 0)
  8.   (setq lay (getvar "clayer"))
  9.   (command "color" "bylayer")
  10.   (command "layer" "m" "sy" "c" "g" "sy" "")
  11.   (if (or (= nil (tblsearch "style" "xw"))
  12.           (/= (cdr (assoc 40 (tblsearch "style" "xw"))) 0)
  13.       )
  14.     (command "STYLE" "xw" "txt" "0" ".8" "0" "n" "n" "n")
  15.   )
  16.   (if (= scab nil) (setq scab 100))
  17.   (setq scale (getreal (strcat "n输入比例值 <" (rtos scab 2 0) ">:")))
  18.     (if (= scale nil) (setq scale scab))
  19.     (setq scab scale)
  20.   (setq pt1 (getpoint "n第一点: "))
  21.   (setq pt2 (getpoint pt1 "n第二点: "))
  22.   (setq dy (car pt1))
  23.   (setq dy1 (car pt2))
  24.   (setq be T)
  25.   (if (> dy1 dy) (setq be nil))
  26.   (setq txt1 (strcase (getstring "n图集名称:") nil))
  27.   (setq txt2 (getstring "n详图编号:"))
  28.   (setq txt3 (getstring "n图集页次:"))
  29.   (setq high (* scale 4))
  30.     (setq dy (cadr pt2))
  31.     (setq dx (car pt2))
  32.     (if (= be nil)
  33.        (setq dx1 (+ dx (* scale 5)))
  34.        (setq dx1 (- dx (* scale 5)))
  35.     )
  36.     (setq dy1 (+ dy (* scale 1.15)))
  37.     (setq pt3 (list dx1 dy1))
  38.   (if (= be nil)
  39.      (command "text" pt3 high "0" txt1)
  40.      (command "text" "j" "r" pt3 high "0" txt1)
  41.   )
  42.   (if (= be nil)
  43.     (progn
  44.       (setq pt4 (polar pt2 0 (* scale (+ 5 (* 4 0.8 (strlen txt1)) 1.5 5))))
  45.       (command "pline" pt1 "w" "0" "0" pt2 (polar pt4 0 (* 5 scale)) "")
  46.       (command "circle" pt4 (* 5 scale))
  47.     )
  48.     (progn
  49.       (setq pt4 (polar pt2 pi (* scale (+ 5 (* 4 0.8 (strlen txt1)) 1.5 5))))
  50.       (command "pline" pt1 "w" "0" "0" pt2 (polar pt4 pi (* 5 scale)) "")
  51.       (command "circle" pt4 (* 5 scale))
  52.     )
  53.   )
  54.     (setq dy (cadr pt4))
  55.     (setq dx (car pt4))
  56.     (setq dx1 (- dx (* scale 1.2)))
  57.     (setq dy1 (+ dy (* scale 0.9)))
  58.     (setq pt5 (list dx1 dy1)) 
  59.     (setq pt6 (polar pt5 0 (* scale 2.4)))
  60.   (command "text" "j" "f" pt5 pt6 (* scale 3.3) txt2)
  61.     (setq dx1 (- dx (* scale 1.2)))
  62.     (setq dy1 (- dy (* scale 4.2)))
  63.     (setq pt5 (list dx1 dy1)) 
  64.     (setq pt6 (polar pt5 0 (* scale 2.4)))
  65.   (command "text" "j" "f" pt5 pt6 (* scale 3.3) txt3)
  66.   (setq pt1 (polar pt1 (* pi 0.5) (* 1 scale)))
  67.   (setq pt2 (polar pt2 (* pi 0.5) (* 1 scale)))
  68.   (command "pline" pt1 "w" (* 0.8 scale) "" pt2 "")
  69.   (command "layer" "s" lay "")
  70.   (princ)
  71. )