明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: andyding

[函数] 求助:实现多重复制

  [复制链接]
 楼主| 发表于 2011-8-10 09:48 | 显示全部楼层
自顶一下,求助。
发表于 2011-8-10 14:14 | 显示全部楼层
这个还是需要自带的copy命令去做,再润色一下就可以了
发表于 2011-8-10 14:57 | 显示全部楼层
  1. (defun c:mcopy()
  2. (vl-load-com)
  3.   (defun *error* ( msg )
  4.     (if (and Doc (not (vlax-object-released-p Doc))) (vlax-release-object Doc))
  5.     (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.         (princ (strcat "\n** Error: " msg " **")))
  7.     (princ)
  8.   )
  9.    (if (= (getvar "userr3") 0) (setvar "userr3" 20.0))
  10.    (while (and (princ "\n选择图元 :")
  11.                (setq ss (ssget))
  12.                (setq p1 (getpoint "\n起始点 :")))
  13.    (setq p2 (getpoint "\n终止点<回车输入方向和距离>: "))
  14.      (if (= p2 nil)  
  15.     (progn   
  16.   (setq ang (getangle p1 "\n方向 :"))
  17.     (if (setq ll (getdist (strcat "\n距离<" (rtos (getvar "userr3")) ">:")))
  18.    (setvar "userr3" ll)
  19.      (setq ll (getvar "userr3"))
  20.     )
  21.   (setq p2 (polar p1 ang (/ ll bl)))
  22.   )
  23.   (command ".COPY" ss "" "m" p1 p2)
  24.   )
  25.     (command ".COPY" ss ""  p1 p2)
  26.    )
  27.   (princ)
  28. )

 楼主| 发表于 2011-8-10 19:27 | 显示全部楼层
回复 xiaxiang 的帖子

谢谢指点!
程序有错误,小问题, (setq p2 (polar p1 ang (/ ll bl)))      bl变量可能是笔误了。
多加一个方向条件是可以实现的。
我原本的设想是不是不可能实现?
发表于 2011-8-10 23:14 | 显示全部楼层
回复 andyding 的帖子

不好意思啊。
你那个要求应该可以实现的。就是要绕点弯子。
是个好的思路!
发表于 2011-8-12 16:29 | 显示全部楼层
本帖最后由 xiaxiang 于 2011-8-12 16:29 编辑

用这个函数acet-ss-drag-move
理所当然,需要扩展工具支持。



本帖子中包含更多资源

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

x
 楼主| 发表于 2011-8-14 16:22 | 显示全部楼层
本帖最后由 andyding 于 2011-8-14 16:22 编辑
xiaxiang 发表于 2011-8-12 16:29
用这个函数acet-ss-drag-move
理所当然,需要扩展工具支持。

可否开源让我学习一下?其实这个多重复制的功能有没有不重要,我想学习这个方法。
发表于 2011-9-20 11:54 | 显示全部楼层
其实几行代码就能写出来,不用扩展工具。
这个代码暂时没实现记忆功能,不过也不难。


本帖子中包含更多资源

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

x
 楼主| 发表于 2011-9-20 15:26 | 显示全部楼层
本帖最后由 andyding 于 2011-9-20 15:30 编辑
xiaxiang 发表于 2011-9-20 11:54
其实几行代码就能写出来,不用扩展工具。
这个代码暂时没实现记忆功能,不过也不难。

跟我的要求相差甚远。

多重复制,记忆距离。有两种模式。左键点了,就复制到左键点的这个点。
左键不点,按空格、回车依记忆的距离和鼠标及时所指的方向去复制。
复制基点自动跳到最后复制出来的这个对象的相应的位置上。
我发在一楼的那个程序基本可以实现,就是出错率太高,不精确。
发表于 2011-9-20 16:47 | 显示全部楼层
andyding 发表于 2011-9-20 15:26
跟我的要求相差甚远。

多重复制,记忆距离。有两种模式。左键点了,就复制到左键点的这个点。

差一个记忆距离。我26#那个就可以实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 12:33 , Processed in 0.370219 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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