找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 441|回复: 4

[建议]:增加“自由复制”和“自由移动”

[复制链接]

已领礼包: 8612个

财富等级: 富甲天下

发表于 2004-10-24 19:04:40 | 显示全部楼层 |阅读模式

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

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

×
天正和晓东工具里都有这两个功能,很好用。可是理正里没有,不能不说是个缺憾。尤其晓东工具for 2004里这两个功能会出错,QUN能不能增加一下?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-24 20:05:57 | 显示全部楼层
能说一下两个命令的具体功能吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

 楼主| 发表于 2004-10-25 08:45:00 | 显示全部楼层
在拷贝和移动的同时,可以对选择集进行旋转、对齐、X或Y轴的镜像,理正图库的插入图块功能的相应操作就是我想要的效果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

 楼主| 发表于 2004-10-25 12:16:08 | 显示全部楼层
最初由 Qun 发布
[B]记下了,有时间会做,谢谢! [/B]

我先来一个“自由移动”,用理正的函数组合出来的,QUN不会禁止吧?:)
“自由复制”我就无能为力了。


  1.   [FONT=courier new]
  2. (defun angtos1 (a)
  3.   (angtos a (getvar "aunits") 9)
  4. )

  5. (defun redrw (x ss / e n)
  6.   (setq n 0)
  7.   (while (setq e (ssname ss n))
  8.     (setq n (1+ n))
  9.     (redraw e x)
  10.   )
  11. )

  12. (defun drag_ss (ss p0 tfm / oth p1 a typ tf tfe tfdg klt x l st prm s tff)
  13.   (if (listp tfm)
  14.     (setq klt (cadr tfm)
  15.           tfm (car tfm)
  16.     )
  17.     (setq klt' ("A" "S"
  18.            "D" "R"
  19.            "T"
  20.           )
  21.     )
  22.   )
  23.   (setq tfe T
  24.         st (car klt)
  25.   )
  26.   (foreach x klt
  27.     (setq l (append
  28.               (list x (strcat x " "))
  29.               l
  30.             )
  31.     )
  32.   )
  33.   (foreach x (cdr klt)
  34.     (setq st (strcat st " " x))
  35.   )
  36.   (setq prm "\r请取插入点")
  37.   (foreach x klt
  38.     (setq s (cond
  39.               ((= x "A")
  40.                 "{A}90度旋转"
  41.               )
  42.               ((= x "S")
  43.                 "{S}X翻转"
  44.               )
  45.               ((= x "D")
  46.                 "{D}Y翻转"
  47.               )
  48.               ((= x "R")
  49.                 "{R}改插入角"
  50.               )
  51.               ((= x "T")
  52.                 "{T}改基点"
  53.               )
  54.             )
  55.           prm (strcat prm (if tff
  56.                             "/"
  57.                             "["
  58.                           ) s
  59.               )
  60.           tff T
  61.     )
  62.   )
  63.   (setq prm (strcat prm "] <退出>: "))
  64.   (redrw 2 ss)
  65.   (while tfe
  66.     (setq tfe (= tfm "1"))
  67.     (setosm 2815)
  68.     (print)
  69.     (apply'_namess_ l)
  70.     (while (and
  71.              p0
  72.              (progn
  73.                (initget 128 st)
  74.                (not (listp (setq p1 (_rdsld_ prm ss p0 tfdg))))
  75.              )
  76.            )
  77.       (setosm nil)
  78.       (cond
  79.         ((= p1 "A")
  80.           (command ".rotate" ss "" p0 (angtos1 _pi2))
  81.         )
  82.         ((= p1 "S")
  83.           (command ".mirror" ss "" p0 (mapcar'+ p0' (0 1e3)) "y")
  84.         )
  85.         ((= p1 "D")
  86.           (command ".mirror" ss "" p0 (mapcar'+ p0' (1e3 0)) "y")
  87.         )
  88.         ((or
  89.            (setq tf (= p1 "R"))
  90.            (= p1 "T")
  91.          )
  92.           (while (/= 5 (car (setq p1 (grread T)))))
  93.           (setq p1 (cadr p1)
  94.                 p1 (cond
  95.                      ((osnap p1 "end,mid,cen,nod,qua,int,ins,per,nea,app"))
  96.                      (p1)
  97.                    )
  98.           )
  99.           (command ".move" ss "" p0 p1)
  100.           (setq p0 p1)
  101.           (if tf
  102.             (progn
  103.               (redrw 2 ss)
  104.               (setq oth (getvar "orthomode"))
  105.               (setosm 2815)
  106.               (setvar "orthomode" 0)
  107.               (initget 128)
  108.               (setq a (_axa_ "\n请给出新的插入角度 <0>: " ss p0)
  109.                     typ (type a)
  110.               )
  111.               (setvar "orthomode" oth)
  112.               (setosm nil)
  113.               (cond
  114.                 ((= typ'REAL)
  115.                   (setq a (angtos1 a))
  116.                 )
  117.                 ((= typ'STR)
  118.                   (setq typ (type (read a)))
  119.                   (if (and
  120.                         (/= typ'REAL)
  121.                         (/= typ'INT)
  122.                       )
  123.                     (setq a nil)
  124.                   )
  125.                 )
  126.                 (T
  127.                   (setq a "0")
  128.                 )
  129.               )
  130.               (if (and
  131.                     a
  132.                     (/= (atof a) 0.)
  133.                   )
  134.                 (command ".rotate" ss "" p0 a)
  135.               )
  136.             )
  137.             (setq p1 (_xdin_ "\n请给出新的插入基点 <返回>: ")
  138.                   p0 (if p1
  139.                        p1
  140.                        p0
  141.                      )
  142.             )
  143.           )
  144.         )
  145.       )
  146.       (setosm 2815)
  147.       (redrw 2 ss)
  148.     )
  149.     (_sortd_)
  150.     (setq tfdg T)
  151.     (setosm nil)
  152.     (if (and
  153.           p1
  154.           p0
  155.         )
  156.       (progn
  157.         (command ".move" ss "" p0 p1)
  158.         (setq p0 p1)
  159.         (setosm 2815)
  160.       )
  161.       (progn
  162.         (setq tfe nil)
  163.         (command ".erase" ss "")
  164.         (setq ss nil)
  165.       )
  166.     )
  167.     (_socas_)
  168.     (if tfe
  169.       (progn
  170.         (print)
  171.         (_drags_)
  172.         (command ".copy" ss "" "0,0,0" "")
  173.       )
  174.     )
  175.   )
  176.   ss
  177. )

  178. (defun c:xmove ()
  179.   (command ".undo" "be")
  180.   (drag_ss (ssget ":L") (getpoint "\n选择基点:") T)
  181.   (command ".undo" "e")
  182.   (princ)
  183. )
  184.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-20 00:48 , Processed in 0.375237 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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