明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11225|回复: 45

Lee MAC 李·麦克 动态偏移插件,面板汉化增加提示

    [复制链接]
发表于 2020-2-20 17:05:17 | 显示全部楼层 |阅读模式
本帖最后由 飒路紫 于 2020-6-22 00:00 编辑

原版展示:







面板汉化并增加提示按钮:






举例展示(配电箱出线平面图):




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

发表于 2022-6-24 21:15:56 | 显示全部楼层

这个能够帮助汉化和增加功能吗?

本帖最后由 daixq021 于 2022-6-24 21:21 编辑


附图是李·麦克(Lee.Mac)大师的另一个作品。

建议增加的功能:修改属性文字的高度、宽度和角度;
帮助汉化,有愿意付出的吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2022-5-5 09:03:57 | 显示全部楼层
老兄未汉化提示部分内容,帮你汉化了一下!

  1. ;;-----------------------------=={  动态偏移  }==--------------------------------;;
  2. ;;                                                                               ;;
  3. ;;  允许用户通过通过鼠标单击指定偏移距离,或在命令行。命令行默认值将记住最后输入 ;;
  4. ;;  的偏移量由用户提供。                                                         ;;
  5. ;;                                                                               ;;
  6. ;;  保留对象捕捉功能,屏幕上的偏移距离为由偏移选择集中最近的对象确定。           ;;
  7. ;;                                                                               ;;
  8. ;;  用户可以使用+/-键更改偏移量,或者,或者,用户可以按“N”并指定偏移量直接的。   ;;
  9. ;;                                                                               ;;
  10. ;;  用户也可以在对象偏移期间按“S”键来更改图层,生成的偏移对象的线型、线宽和颜色。;;
  11. ;;                                                                               ;;
  12. ;;  通过按TAB键,用户可以在两侧偏移或只是物体的一面。                            ;;
  13. ;;                                                                               ;;
  14. ;;  保留或删除原始对象的切换可以通过按“D”。用户可以按住SHIFT键以突出显示偏移实体 ;;
  15. ;;                                                                               ;;
  16. ;;-------------------------------------------------------------------------------;;

  17. (defun c:EG (/    ;; ---====={ 局部函数 }=====---

  18.                        *error* clean DynOff_Sub txt2num

  19.                       ;; ---====={ 局部变量 }=====---

  20.                        CODE CPT
  21.                        DATA DCFNAME DCTITLE DOC DRFT
  22.                        E1 E2 ELST ENTLST ET EXFLAG
  23.                        GR
  24.                        I IOBJ
  25.                        K MSG
  26.                        OBJ OBJLST OFF OOBJ OPT OSGRV OSTR
  27.                        PROP
  28.                        RLST
  29.                        SS
  30.                        X id

  31.                       ;; ---====={ 全局变量 }=====---

  32.                        ; *dynOff  ~  默认偏移距离
  33.                        ; *dynNum  ~  默认偏移号
  34.                        ; *dynFac  ~  默认偏移因子
  35.                        ; *dynMod  ~  默认偏移模式(位编码)
  36.                        ; *dynDel  ~  默认删除选项

  37.                        ; *DynOffDefaults*  ~ 默认对话框设置

  38.                  )

  39.   (setq dcfname "LMAC_DynOff_V2.1.dcl"
  40.         dcTitle "动态偏移设置")
  41.   
  42.   (or *dynOff (setq *dynOff 10.0))
  43.   (or *dynNum (setq *dynNum  1  ))
  44.   (or *dynFac (setq *dynFac  1.0))
  45.   (or *dynMod (setq *dynMod  2  ))
  46.   (or *dynDel (setq *dynDel  nil))

  47.   (or *DynOffDefaults*
  48.       (setq *DynOffDefaults* '("1" "1" 256 256 "*Source*" "*Source*"   ;; 图层
  49.                                                "ByLayer"  "ByLayer"    ;; 线型
  50.                                                "ByLayer"  "ByLayer"))) ;; 线宽

  51.   (setq k -1)
  52.   (setq *DynOffDefaults*
  53.     (mapcar
  54.       (function
  55.         (lambda (value)
  56.           (cond (  (<= 4 (setq k (1+ k)) 5)
  57.                    (if (tblsearch "LAYER" value) value "*Source*"))

  58.                 (  (<= 6 k 7)
  59.                    (if (tblsearch "LTYPE" value) value "ByLayer"))

  60.                 (t value)))) *DynOffDefaults*))

  61.   (setq dynMode (nth *dynMod '(1 2 3)))
  62.   

  63.   ;; --=={ 错误处理程序 }==--

  64.   (defun *error* (err)
  65.     (setq eLst (clean eLst))
  66.     (and doc (vla-EndUndoMark doc))
  67.     (or (wcmatch (strcase err) "*BREAK,*CANCEL*,*EXIT*")
  68.         (princ (strcat "\n** 错误: " err " **"))) (redraw) (princ))

  69.   ;;-------------------------------------------------------------------------------;;
  70.   

  71.   (defun clean (lst / lst)
  72.     (cond (lst (mapcar
  73.                  (function
  74.                    (lambda (object)
  75.                      (if (not (vlax-erased-p object))
  76.                        (vla-delete object)))) lst)
  77.            (setq lst nil))))


  78.   (defun DynOff_Sub (obj off / rLst oObj iObj i)
  79.    
  80.     (if (vl-catch-all-error-p
  81.           (vl-catch-all-apply
  82.             (function
  83.               (lambda ( )               
  84.                 (if (= 1 (logand 1 dynmode))
  85.                   (progn
  86.                     (setq i  3 oObj (vlax-invoke obj 'Offset off))
  87.                     (if (or (and et (not (acet-sys-shift-down))) (not et)) ;; -- Mod 2.0 --
  88.                       (foreach prop '(color layer linetype lineweight)
  89.                         (mapcar
  90.                           (function
  91.                             (lambda (object / val)
  92.                               (if (or (vl-position (setq val (nth i *DynOffDefaults*)) '(256 "*Source*"))
  93.                                       (and (= i 3) (= "1" (cadr *DynOffDefaults*))))
  94.                                 (vlax-put-property object prop (vlax-get-property obj prop))
  95.                                 (vlax-put-property object prop (if (< i 9) val (eval (read (strcat "acLnWt" val)))))))) oObj)
  96.                         (setq i (+ i 2))))))
  97.                
  98.                 (if (= 2 (logand 2 dynmode))
  99.                   (progn
  100.                     (setq i 2 iObj (vlax-invoke obj 'Offset (- off)))
  101.                     (if (or (and et (not (acet-sys-shift-down))) (not et)) ;; -- Mod 2.0 --
  102.                       (foreach prop '(color layer linetype lineweight)
  103.                         (mapcar
  104.                           (function
  105.                             (lambda (object / val)
  106.                               (if (or (vl-position (setq val (nth i *DynOffDefaults*)) '(256 "*Source*"))
  107.                                       (and (= i 2) (= "1" (car *DynOffDefaults*))))
  108.                                 (vlax-put-property object prop (vlax-get-property obj prop))
  109.                                 (vlax-put-property object prop (if (< i 8) val (eval (read (strcat "acLnWt" val)))))))) iObj)
  110.                         (setq i (+ i 2))))))
  111.                
  112.                 (setq rLst (append oObj iObj))))))
  113.       
  114.           (clean (append oObj iObj))
  115.       
  116.       rLst))
  117.   

  118.   (defun txt2num  (txt)
  119.     (cond ((distof txt 5)) ((distof txt 2)) ((distof txt 1)) ((distof txt 4)) ((distof txt 3))))

  120.   (defun GetOffLen (num fac / result)
  121.     (setq result 0.)
  122.     (while (not (minusp (setq num (1- num))))
  123.       (setq result (+ result (expt fac num))))
  124.    
  125.     result)

  126.   (setq et (not (vl-catch-all-error-p
  127.                   (vl-catch-all-apply (function (lambda nil (acet-sys-shift-down)))))))
  128.   (or et (princ "\n未加载快速工具-换档选项不可用"))
  129. ;;;  (or et (princ "\nExpress Tools not Loaded - Shift option not Available."))
  130.   

  131.   (setq doc   (vla-get-ActiveDocument
  132.                 (vlax-get-acad-object))
  133.         
  134.         drft  (vla-get-drafting
  135.                 (vla-get-preferences
  136.                   (vlax-get-acad-object)))
  137.         
  138.         osGrv (osmode-grvecs-lst
  139.                 (vla-get-AutoSnapMarkerColor drft)
  140.                   (vla-get-AutoSnapMarkerSize drft)))
  141.   

  142.   (cond (  (not (DC_Write dcfname))
  143.            (princ "\n无法写入DCL文件"))
  144. ;;;           (princ "\nDCL File could not be Written."))

  145.         (t
  146.   
  147.           (if (setq ss (ssget "_:L" '((0 . "ARC,CIRCLE,ELLIPSE,*LINE"))))
  148.             (progn
  149.               
  150.               (vla-StartUndoMark doc)
  151.               (setq ObjLst (mapcar 'vlax-ename->vla-object
  152.                              (setq EntLst (vl-remove-if 'listp
  153.                                             (mapcar 'cadr (ssnamex ss))))) oStr "")
  154.               
  155.               (setq msg '(strcat "\n[TAB] 模式的切换\, [+/-] 增减偏移数量 [N]自定义偏移数量, 偏移 [F]因子"
  156.                                  "\n[C]中心偏移, [S]设置"
  157.                           (if et ", [SHIFT] 显示偏移数量" "") ", [D]删除原对象 = "
  158.                           (if *dynDel "Yes" "No")
  159.                                  "\n指定偏移量 <" (vl-princ-to-string *dynOff) "> : "))
  160.               (princ (eval msg))
  161.               
  162.               (while
  163.                 (progn
  164.                   (setq gr (grread 't 15 0) code (car gr) data (cadr gr))
  165.                   (redraw)
  166.                   
  167.                   (cond (  (and (= 5 code) (listp data))
  168.                            
  169.                            (setq EntLst (vl-sort EntLst
  170.                                           (function
  171.                                             (lambda (a b)
  172.                                               (< (distance data (vlax-curve-getClosestPointto a data))
  173.                                                  (distance data (vlax-curve-getClosestPointto b data)))))))
  174.                              
  175.                            (setq cPt (vlax-curve-getClosestPointto (car entLst) data)

  176.                                  off (/ (distance cPt data) (GetOffLen *dynNum *dynFac)))  ;; -- Mod 2.0 --
  177.                         
  178.                            (grdraw cPt data 3 1)

  179.                            (setq eLst (clean eLst))

  180.                            (if (and (< 0 (getvar "OSMODE") 16384)
  181.                                     (setq oPt (vl-remove-if (function null)
  182.                                                 (mapcar
  183.                                                   (function
  184.                                                     (lambda (x / o)
  185.                                                       (if (setq o (osnap data x))
  186.                                                         (list (distance data o) o x data)))) (get_osmode)))))
  187.                              
  188.                              (setq oPt (cdar (vl-sort oPt (function (lambda (a b) (< (car a) (car b)))))))
  189.                              (setq oPt nil))

  190.                            (and oPt (OsMark oPt))

  191.                            (foreach obj ObjLst (setq i -1 x 0.)
  192.                              (repeat *dynNum                     
  193.                                (setq eLst
  194.                                  (append eLst (cond ((DynOff_Sub obj
  195.                                                        (* (setq x (+ x (expt *dynFac (setq i (1+ i))))) off))) ((clean eLst)))))))
  196.                         
  197.                            (if (and eLst et (acet-sys-shift-down))
  198.                              (mapcar
  199.                                (function
  200.                                  (lambda (x) (vla-put-color x acBlue))) eLst)) ;; -- Mod 2.0 --

  201.                          t)

  202.                         (  (= code 25) nil)
  203.                         
  204.                         (  (and (= code 3) (listp data))

  205.                            (clean eLst)
  206.                         
  207.                            (setq *dynOff off)
  208.                            (setq cPt (vlax-curve-getClosestPointto (car entLst) data))
  209.                         
  210.                            (if (and (< 0 (getvar "OSMODE") 16384)
  211.                                     (setq oPt (vl-remove-if (function null)
  212.                                                 (mapcar
  213.                                                   (function
  214.                                                     (lambda (x / o)
  215.                                                       (if (setq o (osnap data x))
  216.                                                         (list (distance data o) o x data)))) (get_osmode)))))
  217.                              
  218.                              (setq oPt     (cdar (vl-sort oPt
  219.                                                    (function (lambda (a b) (< (car a) (car b))))))
  220.                                    
  221.                                    data    (osnap (caddr oPt) (cadr oPt))

  222.                                    *dynOff (/ (distance (vlax-curve-getClosestPointto (car entLst) data) data)

  223.                                               (GetOffLen *dynNum *dynFac)))   ;; -- Mod 1.9 --
  224.                            
  225.                              (setq oPt nil))

  226.                            (foreach obj ObjLst (setq i -1 x 0.)
  227.                              (repeat *dynNum
  228.                                (setq eLst
  229.                                  (append eLst (cond ((DynOff_Sub obj
  230.                                                        (* (setq x (+ x (expt *dynFac (setq i (1+ i))))) *dynoff))) ((clean eLst))))))) nil)                  
  231.                         
  232.                         (  (= code 2)

  233.                            (cond (  (or (= 46 data) (< 47 data 58))
  234.                                     (setq oStr (strcat oStr (chr data)))
  235.                                     (princ (chr data)))

  236.                                  (  (vl-position data '(67 99)) (clean eLst)

  237.                                     (while
  238.                                       (progn
  239.                                         (setq e1 (entsel "\n选择第一个对象: "))

  240.                                         (cond (  (vl-consp e1)

  241.                                                  (if (wcmatch (cdr (assoc 0 (entget (car e1)))) "ARC,CIRCLE,ELLIPSE,*LINE")
  242.                                                    
  243.                                                    (while
  244.                                                      (progn
  245.                                                        (setq e2 (car (entsel "\n选择第二个对象: ")))

  246.                                                        (cond (  (eq 'ENAME (type e2))

  247.                                                                 (if (wcmatch (cdr (assoc 0 (entget e2))) "ARC,CIRCLE,ELLIPSE,*LINE")
  248.                                                                   (progn

  249.                                                                     (setq p1 (vlax-curve-getClosestPointto (car e1) (cadr e1))
  250.                                                                           p2 (vlax-curve-getClosestPointto e2 p1))

  251.                                                                     (setq *dynOff (/ (distance p1 p2)

  252.                                                                                      (GetOffLen (1+ *dynNum) *dynFac)))  ;; -- Mod 2.0 --

  253.                                                                     (foreach obj ObjLst (setq i -1 x 0.)
  254.                                                                       (repeat *dynNum
  255.                                                                         (setq eLst
  256.                                                                           (append eLst

  257.                                                                             (cond (  (DynOff_Sub obj

  258.                                                                                        (* (setq x (+ x (expt *dynFac (setq i (1+ i))))) *dynoff)))

  259.                                                                                   (  (clean eLst)))))))

  260.                                                                     (setq exFlag nil))

  261.                                                                   (princ "\n选择的对象无效.")))

  262.                                                              (  (setq exFlag t) nil))))
  263.                                                    
  264.                                                    (princ "\n选择的对象无效.")))

  265.                                               (  (setq exFlag t) nil))))

  266.                                     exFlag)                                                                    

  267.                                  (  (vl-position data '(43 61))
  268.                                     (setq *dynNum (1+ *dynNum)))

  269.                                  (  (vl-position data '(68 100))
  270.                                     (setq *dynDel (not *dynDel))
  271.                                  
  272.                                     (princ (strcat "\n原始对象 "
  273.                                                    (if *dynDel "will" "will not") " be Deleted" (eval msg))))

  274.                                  (  (vl-position data '(78 110))
  275.                                     (initget 6)
  276.                                     (setq *dynNum
  277.                                           
  278.                                       (cond ((getint (strcat "\n指定偏移的数量 <" (itoa *dynNum) "> : ")))
  279.                                             
  280.                                             (*dynNum)))
  281.                                  
  282.                                     (princ (eval msg)))

  283.                                  (  (= data 6)
  284.                                     (cond (  (< 0 (getvar "OSMODE") 16384)
  285.                                              (setvar "OSMODE" (+ 16384 (getvar "OSMODE")))
  286.                                              (princ "\n<Osnap off>"))
  287.                                           
  288.                                           (t (setvar "OSMODE" (- (getvar "OSMODE") 16384))
  289.                                              (princ "\n<Osnap on>")))
  290.                                  
  291.                                     (princ (eval msg)))

  292.                                  (  (= data 9)

  293.                                     (setq dynmode

  294.                                       (cond (  (= 2 *dynMod)
  295.                                                (setq *dynMod 0) 1)

  296.                                             (  (nth (setq *dynMod (1+ *dynMod)) '(1 2 3))))))
  297.                                  
  298.                                  (  (vl-position data '(70 102))
  299.                                     (initget 6)
  300.                                     (setq *DynFac
  301.                                           
  302.                                       (cond ((getreal (strcat "\n指定偏移因子 <" (vl-princ-to-string *dynFac) "> : ")))
  303.                                             
  304.                                             (*dynFac)))

  305.                                     (princ (eval msg)))

  306.                                  (  (vl-position data '(83 115))
  307.                                     (Off_Settings dcfname (vlax-ename->vla-object (car EntLst)))
  308.                                  
  309.                                   t)                           

  310.                                  (  (= data 45)
  311.                                  
  312.                                     (cond (  (= 1 *dynNum)
  313.                                              (princ (strcat "\n已达到最小偏移量." (eval msg))))
  314.                                           
  315.                                           (t (setq *dynNum (1- *dynNum)))))

  316.                                  (  (and (< 0 (strlen oStr)) (= data 8))
  317.                                  
  318.                                     (setq oStr (substr oStr 1 (1- (strlen oStr))))
  319.                                     (princ (vl-list->string '(8 32 8))))

  320.                                  (  (vl-position data '(13 32))

  321.                                     (cond (  (zerop (strlen oStr))

  322.                                              (clean eLst)
  323.                                           
  324.                                              (foreach obj ObjLst (setq i -1 x 0.)
  325.                                                (repeat *dynNum
  326.                                                  (setq eLst
  327.                                                    (append eLst
  328.                                                            
  329.                                                      (cond (  (DynOff_Sub obj
  330.                                                                
  331.                                                                 (* (setq x (+ x (expt *dynFac (setq i (1+ i))))) *dynoff)))

  332.                                                            (  (clean eLst))))))) nil)                                    

  333.                                           (  (setq off (txt2num oStr))

  334.                                              (clean eLst)
  335.                                           
  336.                                              (setq *dynOff off)
  337.                                              (foreach obj ObjLst (setq i -1 x 0.)
  338.                                                (repeat *dynNum
  339.                                                  (setq eLst
  340.                                                    (append eLst

  341.                                                      (cond (  (DynOff_Sub obj

  342.                                                                 (* (setq x (+ x (expt *dynFac (setq i (1+ i))))) off)))

  343.                                                            (  (clean eLst))))))) nil)

  344.                                           (t (princ "\n输入的偏移量无效.")
  345.                                              (princ (eval msg)) (setq oStr ""))))
  346.                                  (t )))
  347.                         (t ))))

  348.               (if *dynDel (mapcar (function vla-delete) ObjLst))

  349.               (vla-EndUndoMark doc)))))
  350.   
  351.   (princ))

  352. (defun osMark (o / s)
  353.   (setq s (/ (getvar "VIEWSIZE") (cadr (getvar "SCREENSIZE")))
  354.         o (cons (trans (car o) 1 3) (cdr o)))

  355.   (grvecs (cdr (assoc (cadr o) osGrv))
  356.           (list (list s 0. 0. (caar o))
  357.                 (list 0. s 0. (cadar o))
  358.                 (list 0. 0. s 0.)
  359.                 (list 0. 0. 0. 1.))))

  360. (defun get_osmode nil ; by Evgeniy Elpanov
  361.   (mapcar
  362.     (function cdr)
  363.       (vl-remove-if
  364.         (function (lambda (x) (zerop (logand (getvar "OSMODE") (car x)))))
  365.         '((1    . "_end")
  366.           (2    . "_mid")
  367.           (4    . "_cen")
  368.           (8    . "_nod")
  369.           (16   . "_qua")
  370.           (32   . "_int")
  371.           (64   . "_ins")
  372.           (128  . "_per")
  373.           (256  . "_tan")
  374.           (512  . "_nea")
  375.           (2048 . "_app")))))

  376. (defun osmode-grvecs-lst (col ass / -ASS ASS COL)
  377.    ; By Evgeniy Elpanov (Modified by Lee Mac)
  378.   
  379.   (setq -ass (- ass))
  380.   
  381.   (list (list "_end"
  382.               col (list -ass -ass) (list -ass  ass)
  383.               col (list (1-  -ass) (1- -ass)) (list (1- -ass) (1+  ass))              
  384.               col (list -ass  ass) (list  ass  ass)
  385.               col (list (1-  -ass) (1+  ass)) (list (1+  ass) (1+  ass))              
  386.               col (list  ass  ass) (list  ass -ass)
  387.               col (list (1+   ass) (1+  ass)) (list (1+  ass) (1- -ass))              
  388.               col (list  ass -ass) (list -ass -ass)
  389.               col (list (1+   ass) (1- -ass)) (list (1- -ass) (1- -ass)))
  390.         
  391.         (list "_mid"
  392.               col (list -ass -ass) (list    0. ass)
  393.               col (list (1-  -ass) (1- -ass)) (list 0. (1+  ass))
  394.               col (list    0. ass) (list  ass -ass)
  395.               col (list 0. (1+  ass)) (list (1+  ass) (1- -ass))
  396.               col (list  ass -ass) (list -ass -ass)
  397.               col (list (1+   ass) (1- -ass)) (list (1- -ass) (1- -ass)))
  398.         
  399.         (list "_cen"
  400.               7   (list (* -ass 0.2) 0.)  (list (*  ass 0.2) 0.)
  401.               7   (list  0. (* -ass 0.2)) (list  0.  (*  ass 0.2))
  402.               col (list    -ass   0.)     (list (* -ass 0.86) (* ass  0.5))
  403.               col (list (* -ass 0.86) (* ass  0.5))  (list (* -ass  0.5) (* ass 0.86))
  404.               col (list (* -ass  0.5) (* ass 0.86))  (list 0. ass)
  405.               col (list 0. ass) (list (* ass 0.5)    (* ass 0.86))
  406.               col (list (* ass 0.5)   (* ass 0.86))  (list (* ass 0.86) (* ass 0.5))
  407.               col (list (* ass 0.86)  (* ass 0.5))   (list ass 0.)
  408.               col (list ass 0.) (list (* ass 0.86)   (* -ass 0.5))
  409.               col (list (* ass 0.86)  (* -ass 0.5))  (list (* ass 0.5) (* -ass 0.86))
  410.               col (list (* ass 0.5)   (* -ass 0.86)) (list 0. -ass)
  411.               col (list 0. -ass)(list (* -ass 0.5)   (* -ass 0.86))
  412.               col (list (* -ass 0.5)  (* -ass 0.86)) (list (* -ass 0.86) (* -ass 0.5))
  413.               col (list (* -ass 0.86) (* -ass 0.5))  (list -ass 0.))

  414.         (list "_nod"
  415.               col (list -ass -ass)    (list ass ass)
  416.               col (list -ass ass)     (list ass -ass)
  417.               col (list -ass 0.)      (list (* -ass 0.86) (* ass 0.5))
  418.               col (list (* -ass 0.86) (* ass 0.5))   (list (* -ass 0.5) (* ass 0.86))
  419.               col (list (* -ass 0.5)  (* ass 0.86))  (list 0. ass)
  420.               col (list 0. ass) (list (* ass 0.5)    (* ass 0.86))
  421.               col (list (* ass 0.5)   (* ass 0.86))  (list (* ass 0.86) (* ass 0.5))
  422.               col (list (* ass 0.86)  (* ass 0.5))   (list ass 0.)
  423.               col (list ass 0.) (list (* ass 0.86)   (* -ass 0.5))
  424.               col (list (* ass 0.86)  (* -ass 0.5))  (list (* ass 0.5) (* -ass 0.86))
  425.               col (list (* ass 0.5)   (* -ass 0.86)) (list 0. -ass)
  426.               col (list 0. -ass)(list (* -ass 0.5)   (* -ass 0.86))
  427.               col (list (* -ass 0.5)  (* -ass 0.86)) (list (* -ass 0.86) (* -ass 0.5))
  428.               col (list (* -ass 0.86) (* -ass 0.5))  (list -ass 0.))

  429.         (list "_qua"
  430.               col (list 0. -ass)   (list -ass 0.)
  431.               col (list 0. (1- -ass))   (list (1- -ass) 0.)
  432.               col (list -ass 0.)   (list 0. ass)
  433.               col (list (1- -ass) 0.)   (list 0. (1+ ass))
  434.               col (list 0. ass)    (list ass 0.)
  435.               col (list 0. (1+ ass))    (list (1+ ass) 0.)
  436.               col (list ass 0.)    (list 0. -ass)
  437.               col (list (1+ ass) 0.)    (list 0. (1- -ass)))

  438.         (list "_int"
  439.               col (list -ass -ass) (list ass ass)
  440.               col (list -ass (1+ -ass)) (list ass (1+ ass))
  441.               col (list (1+ -ass) -ass) (list (1+ ass) ass)
  442.               col (list -ass ass)  (list ass -ass)
  443.               col (list -ass (1+ ass))  (list ass (1+ -ass))
  444.               col (list (1+ -ass) ass)  (list (1+ ass) -ass))

  445.         (list "_ins"
  446.               col (list (* -ass 0.1) (* -ass 0.1)) (list -ass (* -ass 0.1))
  447.               col (list -ass (* -ass 0.1)) (list -ass ass)
  448.               col (list -ass ass) (list (* ass 0.1) ass)
  449.               col (list (* ass 0.1) ass)   (list (* ass 0.1) (* ass 0.1))
  450.               col (list (* ass 0.1) (* ass 0.1))   (list ass (* ass 0.1))
  451.               col (list ass (* ass 0.1))   (list ass -ass)
  452.               col (list ass -ass) (list (* -ass 0.1) -ass)
  453.               col (list (* -ass 0.1) -ass) (list (* -ass 0.1) (* -ass 0.1))
  454.               col (list (1- (* -ass 0.1)) (1- (* -ass 0.1))) (list (1- -ass) (1- (* -ass 0.1)))
  455.               col (list (1- -ass) (1- (* -ass 0.1))) (list (1- -ass) (1+ ass))
  456.               col (list (1- -ass) (1+ ass)) (list (1+ (* ass 0.1)) (1+ ass))
  457.               col (list (1+ (* ass 0.1)) (1+ ass)) (list (1+ (* ass 0.1)) (1+ (* ass 0.1)))
  458.               col (list (1+ (* ass 0.1)) (1+ (* ass 0.1))) (list (1+ ass) (1+ (* ass 0.1)))
  459.               col (list (1+ ass) (1+ (* ass 0.1)))   (list (1+ ass) (1- -ass))
  460.               col (list (1+ ass) (1- -ass)) (list (1- (* -ass 0.1)) (1- -ass))
  461.               col (list (1- (* -ass 0.1))   (1- -ass)) (list (1- (* -ass 0.1)) (1- (* -ass 0.1))))

  462.         (list "_tan"
  463.               col (list -ass ass) (list ass ass)
  464.               col (list (1- -ass) (1+ ass)) (list (1+ ass) (1+ ass))
  465.               col (list -ass 0.)  (list (* -ass 0.86) (* ass 0.5))
  466.               col (list (* -ass 0.86) (* ass 0.5)) (list (* -ass 0.5) (* ass 0.86))
  467.               col (list (* -ass 0.5) (* ass 0.86)) (list 0. ass)
  468.               col (list 0. ass) (list  (* ass 0.5) (* ass 0.86))
  469.               col (list (* ass 0.5)  (* ass 0.86)) (list (* ass 0.86) (* ass 0.5))
  470.               col (list (* ass 0.86)  (* ass 0.5)) (list ass 0.)
  471.               col (list ass 0.) (list (* ass 0.86) (* -ass 0.5))
  472.               col (list (* ass 0.86) (* -ass 0.5)) (list (* ass 0.5) (* -ass 0.86))
  473.               col (list (* ass 0.5) (* -ass 0.86)) (list 0. -ass)
  474.               col (list 0. -ass)(list (* -ass 0.5) (* -ass 0.86))
  475.               col (list (* -ass 0.5)(* -ass 0.86)) (list (* -ass 0.86) (* -ass 0.5))
  476.               col (list (* -ass 0.86)(* -ass 0.5)) (list -ass 0.))

  477.         (list "_per"
  478.               col (list -ass -ass) (list -ass ass)
  479.               col (list (1- -ass)  (1- -ass)) (list (1- -ass) (1+ ass))
  480.               col (list ass -ass)  (list -ass -ass)
  481.               col (list (1+ ass)   (1- -ass)) (list (1- -ass) (1- -ass))
  482.               col (list -ass 0.)   (list 0. 0.)
  483.               col (list -ass -1.)  (list 0. -1.)
  484.               col (list 0. 0.)     (list 0. -ass)
  485.               col (list -1. 0.)    (list -1. -ass))

  486.         (list "_nea"
  487.               col (list -ass -ass) (list ass ass)
  488.               col (list -ass ass)  (list ass ass)
  489.               col (list (1- -ass)  (1+ ass)) (list (1+ ass) (1+ ass))
  490.               col (list -ass ass)  (list ass -ass)
  491.               col (list ass -ass)  (list -ass -ass)
  492.               col (list (1+ ass) (1- -ass)) (list (1- -ass) (1- -ass)))

  493.         (list "_app"
  494.               col (list -ass -ass) (list ass ass)
  495.               col (list ass -ass)  (list -ass ass)
  496.               col (list -ass -ass) (list -ass ass)
  497.               col (list (1- -ass)  (1- -ass)) (list (1- -ass) (1+ ass))
  498.               col (list -ass ass)  (list ass ass)
  499.               col (list (1- -ass)  (1+ ass))  (list (1+ ass) (1+ ass))
  500.               col (list ass ass)   (list ass -ass)
  501.               col (list (1+ ass)   (1+ ass))  (list (1+ ass) (1- -ass))
  502.               col (list ass -ass)  (list -ass -ass)
  503.               col (list (1+ ass)   (1- -ass)) (list (1- -ass) (1- -ass)))))


  504. ;; ----=={ DCL Section }==----

  505. (defun Off_Settings (fname obj / mklst img layCol mk_arc lays dcTag lLay lLin bsCol bsflag)

  506.   (mapcar 'set '(*dyniCols *dynoCols *dyniCol *dynoCol  *dynilay
  507.                  *dynolay  *dynilin  *dynolin *dyniwgt  *dynowgt) *DynOffDefaults*)         
  508.   
  509.   (defun mklst (key lst)
  510.     (start_list key) (mapcar 'add_list lst) (end_list))

  511.   (defun img (key col)   
  512.     (start_image key)
  513.     (fill_image 0 0 (dimx_tile key) (dimy_tile key) col)
  514.     (end_image))

  515.   (setq doc  (cond (doc) ((vla-get-ActiveDocument
  516.                             (vlax-get-acad-object))))
  517.         lays (vla-get-layers doc))

  518.   (defun layCol (lay)
  519.     (vla-get-color (vla-item lays lay)))

  520.   (setq bsCol
  521.     (cond (  (vl-position (setq bsCol (vla-get-Color obj)) '(256 0))
  522.              (setq bsflag t)
  523.              (layCol (vla-get-Layer obj)))

  524.           (bsCol)))  

  525.   (defun mk_arc nil
  526.     (vec_arc (if (= "1" *dyniCols)
  527.                (if bsFlag
  528.                  (laycol
  529.                    (if (eq "*Source*" *dynilay)
  530.                      (vla-get-layer obj) *dynilay)) bsCol)
  531.                (if (= 256 *dyniCol)
  532.                  (if (eq "*Source*" *dynilay) bsCol
  533.                    (laycol *dynilay))
  534.                  *dyniCol))

  535.              bsCol

  536.              (if (= "1" *dynoCols)
  537.                (if bsFlag
  538.                  (laycol
  539.                    (if (eq "*Source*" *dynolay)
  540.                      (vla-get-layer obj) *dynolay)) bsCol)
  541.                (if (= 256 *dynoCol)
  542.                  (if (eq "*Source*" *dynolay) bsCol
  543.                    (laycol *dynolay))
  544.                  *dynoCol))))

  545.   
  546.   (cond (  (<= (setq dcTag (load_dialog fname)) 0)
  547.            (princ "\n找不到对话框文件."))

  548.         (  (not (new_dialog "dsett" dcTag))
  549.            (princ "\n无法加载“设置”对话框."))

  550.         (t
  551.            (vlax-for lay (vla-get-layers doc)
  552.              (setq lLay (cons (vla-get-Name lay) lLay)))
  553.            (setq lLay (cons "*Source*" (acad_strlsort lLay)))

  554.            (vlax-for lin (vla-get-linetypes doc)
  555.              (setq lLin (cons (vla-get-Name lin) lLin)))
  556.            (setq lLin (append '("*Source*" "ByLayer") (acad_strlsort (cddr (reverse lLin)))))

  557.            (setq lWgt '("*Source*" "ByLayer"
  558.                         "000" "005" "009" "013" "015" "018" "020" "025" "030"
  559.                         "035" "040" "050" "053" "060" "070" "080" "090" "100"
  560.                         "106" "120" "140" "158" "200" "211"))

  561.            (mapcar 'mklst '("ilay" "olay" "ilin" "olin" "olw" "ilw")
  562.                    (list lLay lLay lLin lLin lWgt lWgt))

  563.            (mapcar 'set_tile '("ilay" "olay" "ilin" "olin" "ilw" "olw")
  564.                    (mapcar 'itoa
  565.                            (mapcar 'vl-position
  566.                                    (list *dyniLay *dynoLay *dyniLin *dynoLin *dyniWgt *dynoWgt)
  567.                                    (list   lLay     lLay      lLin     lLin    lWgt     lWgt))))

  568.            (set_tile "icols" *dyniCols)
  569.            (set_tile "ocols" *dynoCols)

  570.            (set_tile "dtitle" dcTitle)
  571.          
  572.            (mode_tile "icol" (atoi (get_tile "icols")))
  573.            (mode_tile "ocol" (atoi (get_tile "ocols")))

  574.            (logo)
  575.            (mk_arc)
  576.            (mapcar 'img '("icol" "ocol") (list *dyniCol *dynoCol))

  577.            (action_tile "ilay"
  578.              (vl-prin1-to-string
  579.                (quote
  580.                  (progn
  581.                    (setq *dynilay (nth (atoi $value) lLay)) (mk_arc)))))

  582.            (action_tile "olay"
  583.              (vl-prin1-to-string
  584.                (quote
  585.                  (progn
  586.                    (setq *dynolay (nth (atoi $value) lLay)) (mk_arc)))))

  587.            (action_tile "ilin"
  588.              (vl-prin1-to-string
  589.                (quote
  590.                  (progn
  591.                    (setq *dyniLin (nth (atoi $value) lLin))))))

  592.            (action_tile "olin"
  593.              (vl-prin1-to-string
  594.                (quote
  595.                  (progn
  596.                    (setq *dynoLin (nth (atoi $value) lLin))))))

  597.            (action_tile "ilw"
  598.              (vl-prin1-to-string
  599.                (quote
  600.                  (progn
  601.                    (setq *dyniWgt (nth (atoi $value) lWgt))))))

  602.            (action_tile "olw"
  603.              (vl-prin1-to-string
  604.                (quote
  605.                  (progn
  606.                    (setq *dynoWgt (nth (atoi $value) lWgt))))))

  607.            (action_tile "icol"
  608.              (vl-prin1-to-string
  609.                (quote
  610.                  (progn
  611.                    (setq *dyniCol (cond ((acad_colordlg *dyniCol)) (*dyniCol)))
  612.                    (img "icol" *dyniCol)
  613.                    (mk_arc)))))
  614.            (action_tile "ocol"
  615.              (vl-prin1-to-string
  616.                (quote
  617.                  (progn
  618.                    (setq *dynoCol (cond ((acad_colordlg *dynoCol)) (*dynoCol)))
  619.                    (img "ocol" *dynoCol)
  620.                    (mk_arc)))))

  621.            (action_tile "icols"
  622.              (vl-prin1-to-string
  623.                (quote
  624.                  (progn
  625.                    (mode_tile "icol" (atoi (setq *dyniCols $value)))
  626.                    (mk_arc)))))

  627.            (action_tile "ocols"
  628.              (vl-prin1-to-string
  629.                (quote
  630.                  (progn
  631.                    (mode_tile "ocol" (atoi (setq *dynoCols $value)))
  632.                    (mk_arc)))))
  633.                   
  634.            (action_tile "accept"
  635.              (vl-prin1-to-string
  636.                (quote
  637.                  (progn
  638.                    (setq *DynOffDefaults*
  639.                           (list *dyniCols *dynoCols *dyniCol  *dynoCol  *dynilay
  640.                                 *dynolay  *dynilin  *dynolin  *dyniwgt  *dynowgt))
  641.                    (done_dialog)))))         
  642.            (action_tile "about" "(off:about dcTag)")            
  643.            (action_tile "cancel" "(done_dialog)")         
  644.            (start_dialog)
  645.            (unload_dialog dcTag))))

  646. (defun off:about ( id /  )
  647.   (new_dialog "about" id)
  648.   (action_tile "accept" "(done_dialog)")
  649.   (start_dialog)
  650.   )  
  651. (defun DC_Write (fname / wPath ofile)

  652.   (if (not (findfile fname))
  653.     (if (setq wPath (findfile "ACAD.PAT"))
  654.       (progn
  655.         (setq wPath (vl-filename-directory wPath))
  656.         (or (eq "\" (substr wPath (strlen wPath)))
  657.             (setq wPath (strcat wPath "\")))
  658.         
  659.         (setq ofile (open (strcat wPath fname) "w"))
  660.         
  661.         (foreach str
  662.                  
  663.           '(
  664.             "//-------------------=={ Dynamic Offset }==-------------------//"
  665.             "//                                                            //"
  666.             "//  DynOff.dcl for use in conjunction with DynOff.lsp         //"
  667.             "//------------------------------------------------------------//"
  668.             "//  Author: Lee Mac, Copyright ?2009 - www.lee-mac.com       //"
  669.             "//------------------------------------------------------------//"
  670.             ""
  671.             "//  --=={ Sub-Assembly Definitions }==--"
  672.                     ""
  673.                     "txt1 : text"
  674.                     "{"
  675.                     "    alignment = centered;"
  676.                     "    fixed_width = false;"
  677.                     "}"
  678.                     ""
  679.                     "txt2 : text"
  680.                     "{"
  681.                     "    alignment = centered;"
  682.                     "    fixed_width = true;"
  683.                     "    width = 8.8;"
  684.                     "}"
  685.                     ""
  686.                     "txt3 : text"
  687.                     "{"
  688.                     "    alignment = left;"
  689.                     "    fixed_width = false;"
  690.                     "}"
  691.                     ""
  692.                     
  693.             "// Sub-Assembly Definitions"
  694.             ""
  695.             "pop : popup_list   { fixed_width = false; alignment = centered; }"
  696.             "col : image_button { alignment = centered; height = 1.5; width = 4.0;"
  697.             "                     fixed_width = true; fixed_height = true; color = 2; }"
  698.             ""
  699.             "// Main Dialog"
  700.             ""
  701.             "dsett : dialog { key = "dtitle";"
  702.             "  spacer;"
  703.             "  : row {"
  704.             "    : boxed_column { label = "偏移预览"; fixed_width = false; "
  705.             "      : boxed_row { label = "外偏颜色"; fixed_width = true;"
  706.             "                    alignment = centered;"
  707.             "        spacer;"
  708.             "        : col  { key = "ocol"; }"
  709.             "        spacer;"
  710.             "        : toggle { key = "ocols"; label = "缺省色"; }"
  711.             "        spacer;"
  712.             "      } // boxed_row"
  713.             "      : image { key = "dimage"; alignment = centered;"
  714.             "                width = 24.64 ; fixed_width  = true;"
  715.             "                height = 11.39; fixed_height = true; color = -2; }"
  716.             "      : boxed_row { label = "内偏颜色"; fixed_width = true;"
  717.             "                    alignment = centered;"
  718.             "        spacer;"
  719.             "        : col  { key = "icol"; }"
  720.             "        spacer;"
  721.             "        : toggle { key = "icols"; label = "缺省色"; }"
  722.             "        spacer;"
  723.             "      } // boxed_row"
  724.             "    } // column"
  725.             "    : column { "
  726.             "      : boxed_column { label = "向外偏移";"
  727.             "        : pop { label = "图层:"; key = "olay"; }"
  728.             "        : pop { label = "线型:"; key = "olin"; }"
  729.             "        : pop { label = "线宽:"; key = "olw" ; }"
  730.             "        spacer;"
  731.             "      } // boxed_column"
  732.             "      spacer;"
  733.             "      : boxed_column { label = "向内偏移";"
  734.             "        : pop { label = "图层:"; key = "ilay"; }"
  735.             "        : pop { label = "线型:"; key = "ilin"; }"
  736.             "        : pop { label = "线宽:"; key = "ilw" ; }"
  737.             "        spacer;"
  738.             "      } // boxed_column"
  739.             "    } // column"
  740.             "  } // row"
  741.             "  spacer;"
  742.             "  : row {"
  743.             "    : spacer { width = 19.33; height = 3.18; }"
  744.             "        : button { key = "about";  label = "提示"; }"
  745.             "    spacer;"
  746.             "    ok_cancel;"
  747.             "    spacer;"
  748.             "    : image { key = "logo" ; alignment = centered;"
  749.             "              width = 19.33; fixed_width  = true;"
  750.             "              height = 3.18; fixed_height = true; color = -15; }"
  751.             "  } // row"
  752.             "} // dialog"
  753.             ""
  754.             "//------------------------------------------------------------//"
  755.             "//                         End of File                        //"
  756.             "//------------------------------------------------------------//"



  757.             "//------------------------------------------------------------//"
  758.             "//                  'About' Dialog Definition                 //"
  759.             "//------------------------------------------------------------//"
  760.             ""
  761.             "about : dialog"
  762.             "{"
  763.             "    label = "提示";"
  764.             "    spacer;"
  765.             "    spacer_1;"
  766.             "    : row"
  767.             "    {"
  768.             "        fixed_width = true;"
  769.             "        alignment = centered;"
  770.             "        spacer;"
  771.             "        : column"
  772.             "        {"
  773.             "            : txt1 { label = "["     ; }"
  774.             "    spacer_1;"
  775.             "            : txt1 { label = "["     ; }"
  776.             "    spacer_1;"
  777.             "            : txt1 { label = "["     ; }"
  778.             "    spacer_1;"
  779.             "            : txt1 { label = "["     ; }"
  780.             "    spacer_1;"
  781.             "            : txt1 { label = "["     ; }"
  782.             "    spacer_1;"
  783.             "            : txt1 { label = "["     ; }"
  784.             "    spacer_1;"
  785.             "            : txt1 { label = "["     ; }"
  786.             "        }"
  787.             "        : column"
  788.             "        {"
  789.             "            : txt1 { label = "偏距"  ; }"
  790.             "            : txt1 { label = "+/-"   ; }"
  791.             "            : txt1 { label = "F"     ; }"
  792.             "            : txt1 { label = "Tab"   ; }"
  793.             "            : txt1 { label = "D"     ; }"
  794.             "            : txt1 { label = "C"     ; }"
  795.             "            : txt1 { label = "Shift" ; }"
  796.             "        }"
  797.             "        : column"
  798.             "        {"
  799.             "            : txt1 { label = "]"     ; }"
  800.             "            : txt1 { label = "]"     ; }"
  801.             "            : txt1 { label = "]"     ; }"
  802.             "            : txt1 { label = "]"     ; }"
  803.             "            : txt1 { label = "]"     ; }"
  804.             "            : txt1 { label = "]"     ; }"
  805.             "            : txt1 { label = "]"     ; }"
  806.             "        }"
  807.             "        spacer;"
  808.             "        : column"
  809.             "        {"
  810.             "            : txt3 { label = "偏移距离,命令行或屏幕上输入"     ; }"
  811.             "            : txt3 { label = "增加或减少偏移数量,或N输入"      ; }"
  812.             "            : txt3 { label = "逐个加大偏距量的设置,默认1"      ; }"
  813.             "            : txt3 { label = "内/外/内外,模式的切换"            ; }"
  814.             "            : txt3 { label = "保留或删除原始对象"               ; }"
  815.             "            : txt3 { label = "偏移到两个对象的中心"             ; }"
  816.             "            : txt3 { label = "按住shift,高光显示偏移实体"      ; }"
  817.             "        }"
  818.             "    }"
  819.             "    spacer;"
  820.             "    spacer_1;"
  821.             "    ok_only;"
  822.                     "}"
  823.                     ""
  824.             "//------------------------------------------------------------//"
  825.             "//                 End of Dialog Definition                   //"
  826.             "//------------------------------------------------------------//"
  827.             )

  828.           (write-line str ofile))
  829.         (close ofile)
  830.       t)
  831.   nil)
  832. t))

  833. (defun logo nil

  834.   (start_image "logo")

  835.   (mapcar 'vector_image
  836.          
  837.           '(24 21 19 18 17 16 15 14 1 1 0 0 17 8 0 0 1 1 1 1 8 8 7 7 7 7 7 7 33 33 35
  838.             37 38 39 41 48 47 46 46 54 52 51 50 49 41 42 43 44 45 46 46 47 47 48 48 48
  839.             48 48 49 49 49 49 48 48 48 47 47 44 46 47 48 49 49 50 50 51 52 52 53 53 53
  840.             53 53 53 53 52 52 52 52 51 51 51 51 52 54 54 55 56 58 59 60 62 70 70 68 67
  841.             65 64 62 61 59 58 57 55 64 63 63 63 63 62 61 71 70 69 69 69 69 69 68 69 69
  842.             69 47 26 27 28 28 28 28 28 27 27 26 25 36 34 33 33 33 46 46 47 77 77 77 76
  843.             75 74 73 73 73 72 72 72 72 72 72 72 72 73 73 74 75 79 76 76 76 75 75 75 75
  844.             75 76 76 76 77 77 78 78 79 80 81 83 84 85 86 93 76 77 87 87 81 80 88 88 88
  845.             88 86 86 94 93 92 92 92 92 92 92 93 113 113 112 111 109 108 107 105 109 111
  846.             112 113 113 113 96 94 93 93 93 93 93 94 95 96 97 98 99 101 102 104 105 107
  847.             108 104 103 101 100 100 99 99 98 98 98 98 98 99 100 102 103 104 101 99 98
  848.             96 94 105 107 108 109 110 112 113 114 114 114 112 111 110 108 107 105 103 102)

  849.           '(16 18 19 20 21 21 21 21 22 23 23 24 24 0 0 0 1 2 3 21 21 21 20 19 18 1 1 0 1
  850.             1 2 2 3 4 5 5 4 3 3 1 1 2 3 4 5 6 7 9 10 12 12 13 15 16 18 19 21 23 25 25 27
  851.             28 30 31 33 34 35 40 38 37 36 34 34 33 31 30 28 28 26 25 23 21 21 19 18 16 15
  852.             14 13 11 10 10 9 8 7 6 5 4 3 3 2 2 0 0 0 0 0 0 0 0 0 0 0 0 1 20 21 22 22 23
  853.             24 24 23 23 22 21 20 4 3 2 2 0 0 0 1 2 2 4 4 20 21 23 23 24 24 23 22 21 20 1
  854.             1 0 4 5 6 7 8 9 11 12 13 15 16 18 20 20 22 23 25 26 27 29 30 34 30 29 27 26
  855.             24 22 21 19 18 16 15 13 12 12 10 9 8 7 6 5 4 4 3 3 3 4 10 10 12 12 19 19 20
  856.             21 22 22 21 21 20 19 6 6 5 3 13 14 15 16 17 18 19 19 20 19 18 17 15 14 5 9 11
  857.             12 14 14 16 17 18 19 20 21 21 22 22 22 22 21 21 20 19 19 18 18 17 16 14 12 11
  858.             10 8 7 6 6 5 5 3 3 3 3 3 5 5 6 6 6 7 7 7 7 6 5 4 4 3 3 3 3 3)

  859.           '(21 19 18 17 16 15 14 8 1 0 0 17 24 0 0 1 1 1 1 1 8 7 7 7 7 7 7 8 33 35 37 38
  860.             39 41 41 47 46 46 46 52 51 50 49 48 42 43 44 45 46 46 47 47 48 48 48 48 48 49
  861.             49 49 49 48 48 48 47 47 44 46 47 48 49 49 50 50 51 52 52 53 53 53 53 53 53 53
  862.             52 52 52 52 51 51 51 51 52 54 54 55 56 58 59 60 62 64 70 68 67 65 64 62 61 59
  863.             58 57 55 54 63 63 63 63 62 61 71 70 69 69 69 69 69 68 69 69 69 70 26 27 28 28
  864.             28 28 28 27 27 26 25 36 34 33 33 33 33 46 47 47 77 77 76 75 74 73 73 73 72 72
  865.             72 72 72 72 72 72 73 73 74 75 79 76 76 76 75 75 75 75 75 76 76 76 77 77 78 78
  866.             79 80 81 83 84 85 86 87 76 77 77 87 81 80 88 88 88 88 86 86 94 93 92 92 92 92
  867.             92 92 93 93 113 112 111 109 108 107 105 104 111 112 113 113 113 113 94 93 93
  868.             93 93 93 94 95 96 97 98 99 101 102 104 105 107 108 109 103 101 100 100 99 99
  869.             98 98 98 98 98 99 100 102 103 104 105 99 98 96 94 96 107 108 109 110 112 113
  870.             114 114 114 112 111 110 108 107 105 103 102 101)

  871.           '(18 19 20 21 21 21 21 21 23 23 24 24 16 0 0 1 2 3 21 22 21 20 19 18 1 1 0 0 1 2
  872.             2 3 4 5 5 4 3 3 1 1 2 3 4 5 6 7 9 10 12 12 13 15 16 18 19 21 23 25 25 27 28 30
  873.             31 33 34 35 40 38 37 36 34 34 33 31 30 28 28 26 25 23 21 21 19 18 16 15 14 13
  874.             11 10 10 9 8 7 6 5 4 3 3 2 2 1 0 0 0 0 0 0 0 0 0 0 0 1 20 21 22 22 23 24 24 23
  875.             23 22 21 20 4 3 2 2 0 0 0 1 2 2 4 4 20 21 23 23 24 24 23 22 21 20 1 1 0 0 5 6 7
  876.             8 9 11 12 13 15 16 18 20 20 22 23 25 26 27 29 30 34 30 29 27 26 24 22 21 19 18
  877.             16 15 13 12 12 10 9 8 7 6 5 4 4 4 3 3 4 10 10 12 12 19 19 20 21 22 22 21 21 20
  878.             19 6 6 5 3 3 14 15 16 17 18 19 19 20 19 18 17 15 14 13 9 11 12 14 14 16 17 18 19
  879.             20 21 21 22 22 22 22 21 21 20 19 19 18 18 17 16 14 12 11 10 8 7 6 6 5 5 5 3 3 3
  880.             3 5 5 6 6 6 7 7 7 7 6 5 4 4 3 3 3 3 3 3)

  881.           '(14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
  882.             14 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  883.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  884.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  885.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  886.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  887.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  888.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  889.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  890.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  891.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  892.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  893.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  894.             166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166
  895.             166 166 166 166))

  896.   (end_image))

  897. (defun vec_arc (iCol bCol oCol)

  898.   (start_image "dimage")

  899.   (mapcar 'vector_image

  900.           '(0 48 48 48 48 47 46 45 44 43 42 40 39 37 35 33 31 29 26 24 21 19 16 14 11 8 5 2)
  901.           '(0 146 143 141 138 135 132 130 127 124 122 119 117 115 113 111 109 107 105 104 103 101 100 99 99 98 98 97)
  902.           '(0 48 48 48 47 46 45 44 43 42 40 39 37 35 33 31 29 26 24 21 19 16 14 11 8 5 2 0)
  903.           '(0 143 141 138 135 132 130 127 124 122 119 117 115 113 111 109 107 105 104 103 101 100 99 99 98 98 97 97)

  904.           (list iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol
  905.                 iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol iCol))

  906.   (mapcar 'vector_image

  907.           '(0 42 39 35 32 28 25 21 18 14 10 7 3 42 39 35 32 28 25 21 18 14 10 7 3 71 69 66 63
  908.             60 58 55 52 48 45 71 69 66 63 60 58 55 52 48 45 93 92 90 89 88 86 84 82 80 78 76
  909.             74 93 92 90 89 88 86 84 82 80 78 76 74 97 97 97 97 96 96 95 94 97 97 97 97 96 96 95 94)

  910.           '(0 58 57 55 54 53 52 51 50 50 49 49 49 58 57 55 54 53 52 51 50 50 49 49 49 80 77 75
  911.             72 70 68 65 63 62 60 80 77 75 72 70 68 65 63 62 60 117 114 111 107 104 101 97 94 91
  912.             88 85 82 117 114 111 107 104 101 97 94 91 88 85 82 146 143 139 135 132 128 125 121
  913.             146 143 139 135 132 128 125 121)

  914.           '(0 39 35 32 28 25 21 18 14 10 7 3 0 39 35 32 28 25 21 18 14 10 7 3 0 69 66 63 60 58
  915.             55 52 48 45 42 69 66 63 60 58 55 52 48 45 42 92 90 89 88 86 84 82 80 78 76 74 71 92
  916.             90 89 88 86 84 82 80 78 76 74 71 97 97 97 96 96 95 94 93 97 97 97 96 96 95 94 93)

  917.           '(0 57 55 54 53 52 51 50 50 49 49 49 48 57 55 54 53 52 51 50 50 49 49 49 48 77 75 72
  918.             70 68 65 63 62 60 58 77 75 72 70 68 65 63 62 60 58 114 111 107 104 101 97 94 91 88
  919.             85 82 80 114 111 107 104 101 97 94 91 88 85 82 80 143 139 135 132 128 125 121 117 143
  920.             139 135 132 128 125 121 117)

  921.           (list bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol
  922.                 bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol
  923.                 bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol
  924.                 bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol
  925.                 bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol bCol
  926.                 bCol bCol bCol bCol bCol))

  927.   (mapcar 'vector_image

  928.           '(56 51 47 43 39 35 30 26 22 17 13 8 4 0 106 103 100 97 93 90 86 83 79 75 72 68 64 60
  929.             146 146 146 146 145 144 144 143 142 141 139 138 137 135 133 131 129 127 125 123 120
  930.             118 115 112 109)

  931.           '(11 9 8 6 5 4 3 2 1 1 0 0 0 0 46 42 39 36 34 31 28 25 23 21 18 16 14 12 146 142 137 133
  932.             129 124 120 115 111 107 103 98 94 90 86 82 78 74 70 67 63 59 56 52 49)

  933.           '(51 47 43 39 35 30 26 22 17 13 8 4 0 0 103 100 97 93 90 86 83 79 75 72 68 64 60 56 146
  934.             146 146 145 144 144 143 142 141 139 138 137 135 133 131 129 127 125 123 120 118 115 112 109 106)

  935.           '(9 8 6 5 4 3 2 1 1 0 0 0 0 0 42 39 36 34 31 28 25 23 21 18 16 14 12 11 142 137 133 129
  936.             124 120 115 111 107 103 98 94 90 86 82 78 74 70 67 63 59 56 52 49 46)

  937.           (list oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol
  938.                 oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol
  939.                 oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol oCol
  940.                 oCol oCol oCol oCol oCol))

  941.   (end_image))


  942. (vl-load-com)
  943. (princ)
 楼主| 发表于 2020-5-25 09:44:19 | 显示全部楼层
开心68602 发表于 2020-5-24 23:06
老师:加载插件后提示:未加载快速工具-换档选项不可用
怎么解决?

是不是没有EXPRESS TOOLS     CAD更改或卸载程序——添加或删除功能,把快速工具选中,更新。试试看。
发表于 2020-2-23 10:42:10 | 显示全部楼层
感谢楼主分享,支持一下!
发表于 2020-3-5 09:21:31 | 显示全部楼层
感谢感谢,支持一下
发表于 2020-3-16 19:08:58 | 显示全部楼层
非常感谢楼主的大力
发表于 2020-4-20 10:00:11 | 显示全部楼层
收藏了,感谢分享
发表于 2020-4-28 04:00:13 | 显示全部楼层
牛,谢谢楼主了。。。。。。。。。。。。。。。。。。
发表于 2020-5-12 17:16:20 | 显示全部楼层

收藏了,感谢分享
发表于 2020-5-14 07:45:35 | 显示全部楼层
能不能搞个拉伸动态
发表于 2020-5-24 23:06:23 | 显示全部楼层
老师:加载插件后提示:未加载快速工具-换档选项不可用
怎么解决?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 14:11 , Processed in 0.239050 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表