找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6098|回复: 43

[每日一码] 【源码分享之自由系列1】可代替copy的自由复制程序---V1.6版

[复制链接]
发表于 2013-6-20 16:29:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
   程序实现COPY过程中动态的进行镜像、旋转、放大、缩小、对齐、改基点、改转角及记忆复制。

程序目标:在我的工作中完全取代CAD的COPY命令!  目标有点大了   

程序现在已基本成型。
先将程序分享出来。看看反响如何!是否值得将把此程序逐步逐步的完善!
同时希望有兴趣的朋友一起来完善此程序,毕竟本人水平精力有限。(如您完善了此程序也请发至论坛,感谢)

================特别鸣谢G版===================
  1. ;;;==================={ 自由复制V1.1 BY wowan1314 }================================
  2. ;;;功能:实现复制的过程中镜像、旋转、放大、缩小、修改复制基点。
  3. ;;;程序目标:在我工作中取代CAD的复制命令
  4. ;;;                特别鸣谢 G版
  5. ;;;程序难点、复杂点均参考自G版的"带捕捉的GRREAD函数"-----
  6. ;;;程序的完善也将继续大抄特抄G版的代码,在此表示由衷的感谢。
  7. (DEFUN C:YY-COPY (/   SS  PT     SIZE   OLDOS  BB      PT1
  8.       NEARPT G2  H      D      LST    PTX    PTY
  9.       PTT1   PTT2  PTT3   PTT4   AERROR Aerror_end
  10.       olderr
  11.      )
  12.   (defun Aerror  (x)
  13.     (Aerror_end)
  14.     (AND olderr (COMMAND "ERASE" SS ""))
  15.   )
  16.   (defun Aerror_end ()
  17.     (if  oldos
  18.       (setvar "osmode" oldos)
  19.     )
  20.     (if  oldCM
  21.       (setvar "cmdecho" oldCM)
  22.     )
  23.     (command "_.undo" "e")
  24.     (REDRAW)
  25.     (prinC)
  26.   )
  27.   (IF (SETQ SS (SSGET ":L"))
  28.     (SETQ PT  (getpoint "\n选择复制基点:")
  29.     pt1 pt
  30.     )
  31.   )
  32.   (IF (AND SS PT)
  33.     (PROGN
  34.       (setq olderr  *error*
  35.       *error* Aerror
  36.       )
  37.       (setq size (* (getvar "viewsize") 2))
  38.       (setq oldos (getvar "osmode")
  39.       oldCM (getvar "cmdecho")
  40.       )
  41.       (setvar "osmode" 0)
  42.       (setvar "cmdecho" 0)
  43.       (command "_.undo" "be")
  44.       (WHILE pt1
  45.   (setq pt pt1)
  46.   (command "_.copy" SS "" "0,0" "@")
  47.   (PRINC
  48.     "\n点取位置或 [转90度(A)/左右翻(D)/上下翻(S)/改转角()/改基点(T)]<退出>"
  49.   )
  50.   (while PT
  51.     (setq BB (grread T 5 1))
  52.     (cond
  53.       ((= (car BB) 5)
  54.        (SETQ PT1 (CADR BB))
  55.        (redRaw)
  56.        (gxl-Sel-ReDrawSel SS 2)
  57.        (if
  58.          (setq
  59.      nearpt  (osnap PT1 "_ENDP,_MID,_INT,NEA")
  60.          )      ; 取得的捕捉点,端点,中点,交点
  61.     (PROGN
  62.       (setq g2 nearpt)
  63.       (setq  h   (/ (getvar "viewsize")
  64.              (cadr (getvar "screensize"))
  65.           )
  66.       d   (getvar "pickbox")
  67.       lst (list (* d h) (* (- d 0.5) h) (* (+ d 0.5) h))
  68.       ptx (car g2)
  69.       pty (cadr g2)
  70.       )
  71.       (foreach x lst
  72.         (setq ptt1 (list (- ptx x) (- pty x))
  73.         ptt2 (list (+ ptx x) (- pty x))
  74.         ptt3 (list (+ ptx x) (+ pty x))
  75.         ptt4 (list (- ptx x) (+ pty x))
  76.         )
  77.         (grvecs
  78.           (list 2 ptt1 ptt2 ptt2 ptt3 ptt3 ptt4 ptt4 ptt1)
  79.         )
  80.       )
  81.       (setq pt1 g2)
  82.     )
  83.        )
  84.        (GRVECS
  85.          (LIST 1314
  86.          PT1
  87.          (mapcar '+ (LIST size 0 0) PT1)
  88.          1314
  89.          PT1
  90.          (mapcar '- PT1 (LIST size 0 0))
  91.          1314
  92.          PT1
  93.          (mapcar '- PT1 (LIST 0 size 0))
  94.          1314
  95.          PT1
  96.          (mapcar '+ (LIST 0 size 0) PT1)
  97.          )
  98.        )
  99.        (gxl-Sel-ReDrawSel SS 1)
  100.        (COMMAND "MOVE" SS "" PT PT1)
  101.        (SETQ PT PT1)
  102.       )
  103.       ((= (car BB) 3) (SETQ PT NIL))
  104.       ((member (car BB) '(11 25)) (SETQ pt1 NIL) (EXIT))
  105.       ((member BB '((2 97) (2 65)))
  106.        (COMMAND "ROTATE" SS "" PT1 90)
  107.       )
  108.       ((member BB '((2 115) (2 83)))
  109.        (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(1 0)) "Y")
  110.       )
  111.       ((member BB '((2 100) (2 68)))
  112.        (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(0 1)) "Y")
  113.       )
  114.       ((member BB '((2 43) (2 61)))
  115.        (COMMAND "scale" SS "" PT1 "2")
  116.       )
  117.       ((member BB '((2 116) (2 84)))
  118.        (setvar "osmode" oldos)
  119.        (redRaw)
  120.        (IF (setq pt (getpoint "\n请选择新基点"))
  121.          NIL
  122.          (exit)
  123.        )
  124.        (setvar "osmode" 0)
  125.       )
  126.       ((equal BB '(2 45))
  127.        (COMMAND "scale" SS "" PT1 "0.5")
  128.       )
  129.     )
  130.   )
  131.       )
  132.     )
  133.   )
  134.   (Aerror_end)
  135. )
  136. ;;;==================================================================
  137. ;;gxl-Sel-ReDrawSel 重画选择集中的对象,Sel 为选择集或图元名 mode 为方式码
  138. ;;;重画选择集中的对象,mode 为方式码,
  139. ;;;方式码 1 在屏幕重画该选择集对象
  140. ;;;方式码 2 隐藏该选择集对象
  141. ;;;方式码 3 “醒目显示”该选择集对象
  142. ;;;方式码 4 取消“醒目显示”该选择集对象--------BY G版
  143. ;;;==================================================================
  144. (defun gxl-Sel-ReDrawSel (Sel mode / m n)
  145.   (if sel
  146.     (progn
  147.       (cond ((= 'pickset (type Sel))
  148.        (setq m (sslength Sel)
  149.        n 0
  150.        )
  151.        (repeat m
  152.          (redraw (ssname Sel n) mode)
  153.          (setq n (1+ n))
  154.        )
  155.       )
  156.       ((= 'ename (type Sel))
  157.        (redraw Sel mode)
  158.       )
  159.       )
  160.     )
  161.   )
  162. )
YY-COPY.gif


;;;==================={ 自由复制V1.1 BY wowan1314 }================================
;;;功能:实现复制的过程中镜像、旋转、放大、缩小、修改复制基点。 
;;;程序目标:在我的工作中取代CAD的复制命令
;;;                特别鸣谢 G版
;;;程序难点、复杂点均参考自G版的"带捕捉的GRREAD函数"-----
;;;程序的完善也将继续大抄特抄G版的代码,在此表示由衷的感谢。
(DEFUN C:YY-COPY (/   SS  PT     SIZE   OLDOS  BB      PT1
      NEARPT G2  H      D      LST    PTX    PTY
      PTT1   PTT2  PTT3   PTT4   AERROR Aerror_end
      olderr
     )
  (defun Aerror  (x)
    (Aerror_end)
    (AND olderr (COMMAND "ERASE" SS ""))
  )
  (defun Aerror_end ()
    (if  oldos
      (setvar "osmode" oldos)
    )
    (if  oldCM
      (setvar "cmdecho" oldCM)
    )
    (command "_.undo" "e")
    (REDRAW)
    (prinC)
  )
  (IF (SETQ SS (SSGET ":L"))
    (SETQ PT  (getpoint "\n选择复制基点:")
    pt1 pt
    )
  )
  (IF (AND SS PT)
    (PROGN
      (setq olderr  *error*
      *error* Aerror
      )
      (setq size (* (getvar "viewsize") 2))
      (setq oldos (getvar "osmode")
      oldCM (getvar "cmdecho")
      )
      (setvar "osmode" 0)
      (setvar "cmdecho" 0)
      (command "_.undo" "be")
      (WHILE pt1
  (setq pt pt1)
  (command "_.copy" SS "" "0,0" "@")
  (PRINC
    "\n点取位置或 [转90度(A)/左右翻(D)/上下翻(S)/改转角()/改基点(T)]<退出>"
  )
  (while PT
    (setq BB (grread T 5 1))
    (cond
      ((= (car BB) 5)
       (SETQ PT1 (CADR BB))
       (redRaw)
       (gxl-Sel-ReDrawSel SS 2)
       (if
         (setq
     nearpt  (osnap PT1 "_ENDP,_MID,_INT,NEA")
         )      ; 取得的捕捉点,端点,中点,交点
    (PROGN
      (setq g2 nearpt)
      (setq  h   (/ (getvar "viewsize")
             (cadr (getvar "screensize"))
          )
      d   (getvar "pickbox")
      lst (list (* d h) (* (- d 0.5) h) (* (+ d 0.5) h))
      ptx (car g2)
      pty (cadr g2)
      )
      (foreach x lst
        (setq ptt1 (list (- ptx x) (- pty x))
        ptt2 (list (+ ptx x) (- pty x))
        ptt3 (list (+ ptx x) (+ pty x))
        ptt4 (list (- ptx x) (+ pty x))
        )
        (grvecs
          (list 2 ptt1 ptt2 ptt2 ptt3 ptt3 ptt4 ptt4 ptt1)
        )
      )
      (setq pt1 g2)
    )
       )
       (GRVECS
         (LIST 1314
         PT1
         (mapcar '+ (LIST size 0 0) PT1)
         1314
         PT1
         (mapcar '- PT1 (LIST size 0 0))
         1314
         PT1
         (mapcar '- PT1 (LIST 0 size 0))
         1314
         PT1
         (mapcar '+ (LIST 0 size 0) PT1)
         )
       )
       (gxl-Sel-ReDrawSel SS 1)
       (COMMAND "MOVE" SS "" PT PT1)
       (SETQ PT PT1)
      )
      ((= (car BB) 3) (SETQ PT NIL))
      ((member (car BB) '(11 25)) (SETQ pt1 NIL) (EXIT))
      ((member BB '((2 97) (2 65)))
       (COMMAND "ROTATE" SS "" PT1 90)
      )
      ((member BB '((2 115) (2 83)))
       (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(1 0)) "Y")
      )
      ((member BB '((2 100) (2 68)))
       (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(0 1)) "Y")
      )
      ((member BB '((2 43) (2 61)))
       (COMMAND "scale" SS "" PT1 "2")
      )
      ((member BB '((2 116) (2 84)))
       (setvar "osmode" oldos)
       (redRaw)
       (IF (setq pt (getpoint "\n请选择新基点"))
         NIL
         (exit)
       )
       (setvar "osmode" 0)
      )
      ((equal BB '(2 45))
       (COMMAND "scale" SS "" PT1 "0.5")
      )
    )
  )
      )
    )
  )
  (Aerror_end)
)
;;;==================================================================
;;gxl-Sel-ReDrawSel 重画选择集中的对象,Sel 为选择集或图元名 mode 为方式码
;;;重画选择集中的对象,mode 为方式码,
;;;方式码 1 在屏幕重画该选择集对象
;;;方式码 2 隐藏该选择集对象
;;;方式码 3 “醒目显示”该选择集对象
;;;方式码 4 取消“醒目显示”该选择集对象--------BY G版
;;;==================================================================
(defun gxl-Sel-ReDrawSel (Sel mode / m n)
  (if sel
    (progn
      (cond ((= 'pickset (type Sel))
       (setq m (sslength Sel)
       n 0
       )
       (repeat m
         (redraw (ssname Sel n) mode)
         (setq n (1+ n))
       )
      )
      ((= 'ename (type Sel))
       (redraw Sel mode)
      )
      )
    )
  )
)


更新记录:
       V1.1---增加多重复制, 修复空选空点以及右键的正常退出。
       V1.2---增加橡皮筋、增加对齐选项、增加改转角选项。                           【2013.6.21上午】
       V1.3---增加输入距离选项、
                 及空格默认上次输入距离选项、修复光标变小问题。                     【2013.6.21下午】
       V1.5---增加F3(或CTRL+F)开关对象捕捉,增加F8(或CTRL+L)开关正交。【2013.6.22中午】                  

程序待完善项:
      1、完善对象捕捉模式,尽量接近于CAD的copy命令               
      2、取消1选项,输入数字自动识别,尽量接近于CAD的copy命令
      3、增加对极轴模式的支持。
      4、完善对UCS下的支持。
      5、增加对象追踪模式的支持。
      6、优化代码执行效率。


[sell];;;==================={ 自由复制V1.6 BY wowan1314 }================================;;;
;;;功能:实现复制的过程中镜像、旋转、放大、缩小、对齐、改基点、改转角、记忆复制。  ;;;
;;;                特别鸣谢: G版 不死猫 xshrimp                                    ;;;
;;;特别说明:左键点取位置,右键退出,F3开关捕捉,F8开关正交,距离可直接输入无需按键    ;;;
;;;          量取Z的意思是:复制距离可由屏幕两点来确认,方便后面空格来默认距离     ;;;
;;;================================================================================;;;
(DEFUN C:YY-COPY (/            SS           PT          SIZE         OLDOS        BB     PT1    NEARPT
             G2            H           D          LST         PTX        PTY    PTT1   PTT2
             PTT3   PTT4   AERROR Aerror_end        olderr PT0    SS0
             APT1   JULI   zhuyi1 zhuyi2 F3        F8     pt0x   pt0y
             STARTPT WS ASC REAL
            )
  (defun Aerror        (x)
    (Aerror_end)
    (AND oldos (COMMAND "ERASE" SS ""))
  )
  (defun Aerror_end ()
    (setq *error* olderr)
    (if        oldos
      (setvar "osmode" oldos)
    )
    (if        oldCM
      (setvar "cmdecho" oldCM)
    )
    (command "_.undo" "e")
    (REDRAW)
    (prinC)
  )
  (IF (SETQ SS0 (SSGET ":L"))
    (SETQ PT0 (getpoint "\n选择复制基点:"))
  )
  (IF (AND SS0 PT0)
    (PROGN
      (setq olderr  *error*
            *error* Aerror
      )
      (setq oldos (getvar "osmode")
            oldCM (getvar "cmdecho")
      )
      (setq F8 (getvar "ORTHOMODE")
            F3 T ws  (vlax-Create-Object "WScript.Shell")
      )
      (setvar "osmode" 0)
      (setvar "cmdecho" 0)
      (setvar "nomutt" 0)
      (setq zhuyi1 "\n点取位置或\n[转90度(A)/左右翻(D)/上下翻(S)/对齐(F)/改转角(R)/改基点(T)/大1倍(+)/小一倍(-)/量取(Z)/默认<"
            zhuyi2 "mm>(空格)]"
      )
      (command "_.undo" "be")
      (IF *JULI*
        (setq juli *JULI*)
        (setq juli 100)
      )
      (WHILE pt0
        (if pt1
          (setq        pt   pt1
                pt0  pt1
                SS   SS0
                PT0X (mapcar '+ pt0 '(1 0 0))
                PT0y (mapcar '+ pt0 '(0 1 0))
          )
          (setq        pt   pt0
                SS   SS0
                PT0X (mapcar '+ pt0 '(1 0 0))
                PT0y (mapcar '+ pt0 '(0 1 0))
          )
        )
        (command "_.copy" SS "" "0,0" "@")
        (PRINC (strcat zhuyi1 (rtos juli 2) zhuyi2))
        (while PT
          (setq        BB        (grread T 5 1)
                STARTPT        (CADR BB)
          )
          (cond
            ((= (car BB) 5)
             (SETQ PT1 STARTPT)
             (redRaw)
             (setq size (* (getvar "viewsize") 2))

             (if (AND F3
                      (gxl-Sel-ReDrawSel SS 2)
                      (setq
                        nearpt (osnap PT1 "_ENDP,_MID,_INT,NEA")
                      )
                 )                        ; 取得的捕捉点,端点,中点,交点,最近点.
               (PROGN
                 (setq g2 nearpt)
                 (setq h   (/ (getvar "viewsize")
                              (cadr (getvar "screensize"))
                           )
                       d   (getvar "pickbox")
                       lst (list (* d h) (* (- d 0.5) h) (* (+ d 0.5) h))
                       ptx (car g2)
                       pty (cadr g2)
                 )
                 (foreach x lst
                   (setq ptt1 (list (- ptx x) (- pty x))
                         ptt2 (list (+ ptx x) (- pty x))
                         ptt3 (list (+ ptx x) (+ pty x))
                         ptt4 (list (- ptx x) (+ pty x))
                   )
                   (grvecs
                     (list 2 ptt1 ptt2 ptt2 ptt3 ptt3 ptt4 ptt4 ptt1)
                   )
                 )
                 (setq pt1 g2)
                 (gxl-Sel-ReDrawSel SS 1)
               )
             )
             (IF (AND (= G2 NIL) (= F8 1))
               (PROGN
                 (setq PT1 STARTPT)
                 (IF
                   (OR (< (* pi 0.25) (ANGLE PT1 PT0) (* pi 0.75))
                       (< (* pi 1.25) (ANGLE PT1 PT0) (* pi 1.75))
                   )
                    (SETQ PT1
                           (inters pt1
                                   (polar pt1
                                          (+ (angle pt0 pt0Y) (* pi 0.5))
                                          1.0
                                   )
                                   pt0
                                   pt0Y
                                   nil
                           )
                    )
                    (SETQ PT1
                           (inters pt1
                                   (polar pt1
                                          (+ (angle pt0 pt0X) (* pi 0.5))
                                          1.0
                                   )
                                   pt0
                                   pt0X
                                   nil
                           )
                    )
                 )
               )
             )
             (GRVECS
               (LIST 1314
                     PT0
                     PT1
                     1314
                     STARTPT
                     (mapcar '+ (LIST size 0 0) STARTPT)
                     1314
                     STARTPT
                     (mapcar '- STARTPT (LIST size 0 0))
                     1314
                     STARTPT
                     (mapcar '- STARTPT (LIST 0 size 0))
                     1314
                     STARTPT
                     (mapcar '+ (LIST 0 size 0) STARTPT)
               )
             )
             (COMMAND "MOVE" SS "" PT PT1)
             (SETQ PT PT1
                   G2 NIL
             )
            )
            ((= (car BB) 3) (SETQ PT NIL))
            ((member (car BB) '(11 25)) (SETQ pt0 NIL) (EXIT))
            ((member BB '((2 97) (2 65)))
             (COMMAND "ROTATE" SS "" PT1 90)
            )
            ((member BB '((2 82) (2 114)))
             (redraw)
             (COMMAND "ROTATE" SS "" PT1 pause)
            )
            ((member BB '((2 70) (2 102)))
             (REDRAW)
             ;;对齐
             (setvar "osmode" oldos)
             (initget 1)
             (IF (SETQ APT1 (getpoint "\n选择第一个源点:"))
               (PROGN
                 (COMMAND "align" SS "" APT1)
                 (princ "\n选择第一个目标点:")
                 (COMMAND pause)
                 (princ "\n选择第二个源点:")
                 (COMMAND pause)
                 (princ "\n选择第二个目标点:")
                 (COMMAND pause)
                 (COMMAND "" "N")
                 (REDRAW)
                 (setvar "osmode" 0)
               )
               (PRINC (strcat zhuyi1 (rtos juli 2) zhuyi2))
             )
            )
            ((member BB '((2 115) (2 83)))
             (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(1 0)) "Y")
            )
            ((member BB '((2 32)))
             (IF JULI
               (progn (setq pt1 (polar PT0 (ANGLE PT0 PT1) JULI))
                      (COMMAND "MOVE" SS "" PT PT1)
                      (SETQ PT nil)
               )
             )
            )
            ((member BB
                     '((2 46)
                       (2 49)
                       (2 48)
                       (2 50)
                       (2 51)
                       (2 52)
                       (2 53)
                       (2 54)
                       (2 55)
                       (2 56)
                       (2 57)
                      )
             )
             (redraw)
             (setq
                   ASC (CADR BB)
             )
             (setq real
                    (getreal
                      (car
                        (list ""
                              (vlax-invoke-method ws 'sendkeys (chr asc))
                        )
                      )
                    )
             )
             (setq pt1 (polar PT0 (ANGLE PT0 PT1) real))
             (COMMAND "MOVE" SS "" pt PT1)
             (SETQ *JULI* real
                   JULI        *JULI*
                   PT NIL
             )
            )
            ((member BB '((2 90) (2 122)))
             (redraw)
             (setq
               juli (getdist
                      (strcat "\n输入复制距离<" (rtos juli 2) ">:")
                    )
             )
             (setq pt1 (polar PT0 (ANGLE PT0 PT1) JULI))
             (COMMAND "MOVE" SS "" PT PT1)
             (SETQ PT nil
                   *JULI* JULI
             )
            )
            ((member BB '((2 100) (2 68)))
             (COMMAND "mirror" SS "" PT1 (mapcar '- pt1 '(0 1)) "Y")
            )
            ((member BB '((2 43) (2 61)))
             (COMMAND "scale" SS "" PT1 "2")
            )
            ((member BB '((2 116) (2 84)))
             (setvar "osmode" oldos)
             (redRaw)
             (IF (setq pt (getpoint "\n请选择新基点:"))
               (PRINC (strcat zhuyi1 (rtos juli 2) zhuyi2))
               (exit)
             )
             (setvar "osmode" 0)
            )
            ((equal BB '(2 45))
             (COMMAND "scale" SS "" PT1 "0.5")
            )
            ((equal BB '(2 6))
             (if (= f3 NIL)
               (progn (setq f3 T) (prompt "\n<对象捕捉 开>"))
               (progn (setq f3 NIL) (prompt "\n<对象捕捉 关>"))
             )
             (redraw)
            )
            ((equal BB '(2 15))
             (if (= f8 0)
               (progn (setq f8 1) (prompt "\n<正交 开>"))
               (progn (setq f8 0) (prompt "\n<正交 关>"))
             )
             (setvar "orthomode" f8)
             (redraw)
            )
          )
        )
        ;;END 内WHILE

      )
      ;;END 外WHILE
    )                                        ;END progn
  )
  ;;end if
  (Aerror_end)
)

;;;==================================================================
;;gxl-Sel-ReDrawSel 重画选择集中的对象,Sel 为选择集或图元名 mode 为方式码
;;;重画选择集中的对象,mode 为方式码,
;;;方式码 1 在屏幕重画该选择集对象
;;;方式码 2 隐藏该选择集对象
;;;方式码 3 “醒目显示”该选择集对象
;;;方式码 4 取消“醒目显示”该选择集对象--------BY G版
;;;==================================================================
(defun gxl-Sel-ReDrawSel (Sel mode / m n)
  (if sel
    (progn
      (cond ((= 'pickset (type Sel))
             (setq m (sslength Sel)
                   n 0
             )
             (repeat m
               (redraw (ssname Sel n) mode)
               (setq n (1+ n))
             )
            )
            ((= 'ename (type Sel))
             (redraw Sel mode)
            )
      )
    )
  )
  T
)
[/sell]


记忆复制.gif

YY-COPY(V1.2).LSP

4.81 KB, 阅读权限: 20, 下载次数: 18, 下载积分: D豆 -1 , 活跃度 1

YY-COPY(V1.3).LSP

5.77 KB, 阅读权限: 20, 下载次数: 34, 下载积分: D豆 -1 , 活跃度 1

评分

参与人数 2D豆 +15 收起 理由
XDSoft + 10 很给力!经验;技术要点;资料分享奖!
牢固 + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-6-20 16:34:47 | 显示全部楼层
不错,用了一下,感觉确实比自带的好用。唯一的就是不支持追踪。

点评

代码还差很多,有时间来一一完善吧! COPY也能追踪? 没用过追踪  发表于 2013-6-20 16:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-20 16:38:57 | 显示全部楼层
如果能实现右键退出就更好了。目前好像只能esc退出

点评

以后我将会把代码一一完善。 不过更新的可能会比较慢!  发表于 2013-6-20 16:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-6-20 16:49:32 | 显示全部楼层
把command命令改成 vla速度会快些!
还可以尝试去用矩阵变换来写!加油!

点评

矩阵还没学会呢! 更新路漫漫啊。 command改用VLA不见得会快吧! 对选择集还是command快些吧?  发表于 2013-6-20 16:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-6-20 16:55:40 | 显示全部楼层
command命令速度最慢是毋庸置疑的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-20 17:14:56 | 显示全部楼层
其实,对比缩放等功能,最重要的功能是对齐,楼主看看能不能把对齐给加进来。

点评

我没用过对齐选项! 还不晓得是个什么意思呢 汗  发表于 2013-6-20 17:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-20 17:30:39 | 显示全部楼层
改转角是什么键?

点评

还没加此功能  发表于 2013-6-20 17:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-20 18:07:11 | 显示全部楼层
你试下 align 命令,就理解对齐的作用了。

点评

还还是没搞懂如何使用转角度这项功能  详情 回复 发表于 2013-6-21 09:02
T通过选择有角度的线等来达到修改选集角度。这样效果也一样吧。。  详情 回复 发表于 2013-6-20 23:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-20 23:50:10 | 显示全部楼层
newer 发表于 2013-6-20 18:07
你试下 align 命令,就理解对齐的作用了。

T通过选择有角度的线等来达到修改选集角度。这样效果也一样吧。。

点评

还还是没搞懂如何使用转角度这项功能  详情 回复 发表于 2013-6-21 09:01
对齐是选 你 拖动里面的 两点 对齐 目标的 两点, 你用角度怎么算呢? 用用户自己算出来吗? 拖动时候的对齐操作时, 暂停,你拾取选择集里面的两个特征点 然后 去对齐下目标位置的两点,然后选择集自动变换角度  详情 回复 发表于 2013-6-20 23:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-20 23:55:54 | 显示全部楼层
wowan1314 发表于 2013-6-20 23:50
T通过选择有角度的线等来达到修改选集角度。这样效果也一样吧。。

对齐是选 你 拖动里面的 两点 对齐 目标的 两点, 你用角度怎么算呢? 用用户自己算出来吗?

拖动时候的对齐操作时, 暂停,你拾取选择集里面的两个特征点 然后 去对齐下目标位置的两点,然后选择集自动变换角度和目标对齐,然后再拖动。

点评

线啥角度就按基点位置旋转多少角度。 不过你说的也有道理,可能要对齐的是选集内其他角度的实体。 那就再加个选项吧。  详情 回复 发表于 2013-6-21 00:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-21 00:05:37 | 显示全部楼层
newer 发表于 2013-6-20 23:55
对齐是选 你 拖动里面的 两点 对齐 目标的 两点, 你用角度怎么算呢? 用用户自己算出来吗?

拖动时候 ...

线啥角度就按基点位置旋转多少角度。
不过你说的也有道理,可能要对齐的是选集内其他角度的实体。
那就再加个选项吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-21 07:49:02 | 显示全部楼层
哥们,那个全屏的进展如何啊

点评

那东西高手不出面,新手搞不定  发表于 2013-6-21 10:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-21 09:01:44 | 显示全部楼层
wowan1314 发表于 2013-6-20 23:50
T通过选择有角度的线等来达到修改选集角度。这样效果也一样吧。。

还还是没搞懂如何使用转角度这项功能

点评

已增加  发表于 2013-6-21 10:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-21 09:02:17 | 显示全部楼层
newer 发表于 2013-6-20 18:07
你试下 align 命令,就理解对齐的作用了。

还还是没搞懂如何使用转角度这项功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3394个

财富等级: 富可敌国

发表于 2013-6-21 13:26:02 | 显示全部楼层
不错,谢谢分享,可以参考学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 18:19 , Processed in 0.322752 second(s), 79 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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