乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 164|回复: 9

连续copy和旋转copy,如何编程?

[复制链接]

14

主题

31

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
87
发表于 2003-11-14 12:42:00 | 显示全部楼层 |阅读模式
由于工作上的需要,绘图工作经常要使用copy命令(废话),当我们copy时,先选取几个的元素,然后确定,选基准点,然后到目的点,确定,就完成了。而我们需要再copy这些元素的时候又得重新选元素和基准点,能否编个程,用“lc”命令来实现copy完一组之后接着点第二个目的点实现连续copy呢?旋转copy,就是将copy命令和旋转命令合在一起,操作过程如下:选元素,选基准点,输入角度,完成。没有这个命令我的租做法是先copy出来,然后再旋转到我需要的角度,有点麻烦。希望大家能交流交流。
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-14 13:03:00 | 显示全部楼层
连续copy时,输入M就可。
实际上,专业工具上都有!
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-14 13:22:00 | 显示全部楼层
依二樓的意思的話用夾持點也能實現.
可樓主的意思有點象在重復執行COPY指令. 但是在操作的過程中可以ROTATE或MIRROR的. 這樣的要用程序來解決. 我好象在什麼地方見過可以這樣做的. 但是我用LISP程序也做不出來. 也希望做出的大俠給我一個用用. 呵呵
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-14 13:41:00 | 显示全部楼层
copy并旋转,只能是一次拷贝
  1. (defun c:rc( / ang ent ss)
  2.   (setq ang (getreal "输入角度:"))
  3.   (setq ent (entlast))
  4.   (setvar "cmdecho" 1)
  5.   (command "_.copy" pause pause pause pause)
  6.   (setq ss (ssadd))
  7.   (while (setq ent (entnext ent))
  8.     (ssadd ent ss)
  9.   )
  10.   (setvar "cmdecho" 0)
  11.   (command "_.rotate" ss "" (getvar "lastpoint") ang)
  12.   (princ)
  13. )
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-14 13:56:00 | 显示全部楼层
to meflying
,                                 對這個程序我的要求是這樣的.
1. 可做到沒有確定復制定位時按一個鍵盤鍵(如 R 就向右轉 L就向左轉)嗎?
2. 另外執行程序選了圖素再確定起點后如能象插入塊時的效果就很好. (這樣做時程序把選到的圖素復制到剪切板, 再貼出來)
3, 可以在進行復制未確定時, 要還是可以再更改復制的基點. 真的就好了, 呵呵
4. 確定退出程序啦
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-11-14 15:57:00 | 显示全部楼层
没有做出错检查,按取消键退出
  1. ;;复制旋转对象
  2. (defun c:cr ( / ent1 ent pnt )
  3.   (setq ent (ssget))
  4.   (setq pnt (getpoint "\n请选择基点:"))
  5.   (while t
  6.     (setq ent1 (entlast))
  7.     (setvar "cmdecho" 0)
  8.     (command "copy" ent "" pnt "@" )
  9.     (setq ss (ssadd ))
  10.     (while (setq ent1 (entnext ent1))
  11.       (ssadd ent1 ss)
  12.     )
  13.     (command "rotate" ss "" pnt)
  14.     (setvar "cmdecho" 1)
  15.     (princ "\n指定旋转角度:")
  16.     (command pause)
  17.   )
  18.   (princ)
  19. )
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-14 16:51:00 | 显示全部楼层
樓上這個, 只能在原地打轉地復制, 呵呵.
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-14 16:54:00 | 显示全部楼层
(defun c:coro (/ ss e0 ss2 e1)
  (setq ss (ssget))
  (setq e0 (entlast))
  (vl-cmdf "copy" ss "" pause pause)
  (setq ss2 (ssadd))
  (setq e1 (entnext e0))
  (while e1
    (ssadd e1 ss2)
    (setq e1 (entnext e1))
  )
  (vl-cmdf "rotate" ss2 "" pause pause)
)
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2003-11-14 23:22:00 | 显示全部楼层

(defun ai_error        (errmsg)
  (if errmsg
    '("console break"
      "Function Cancelled"
     )
    (princ (strcat "\nError: " errmsg))
  )
  (princ)
)
(defun c:cr ()
  (setq cm (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq        old_error *error*
        *error*        ai_error               
  )
  (setq ss (ssget))
  (if ss
    (progn
      (command "copy" ss "" "0,0" "0,0")
      (command "rotate" ss "")
    )
  )
  (setvar "cmdecho" cm)
  (setq *error* old_error)
  (princ)
)
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-15 01:12:00 | 显示全部楼层
楼主要的是某些软件中的自由复制
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 00:42 , Processed in 1.102987 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表