超级拷贝(2014.12.1新增ARX版本)
本帖最后由 Highflybird 于 2014-12-1 17:33 编辑基于CAD拷贝和阵列方式的死板,我编写了一个程序,名字叫做超级拷贝。
其功能是对CAD拷贝命令的扩充。主要用于一些比较艺术化的场合。 例如:园林或者总图的树木的拷贝和阵列。
它实现了在拷贝的同时进行了随机的变化(缩放比,旋转角, 间距,偏移),既可用所见所得方式的动态拷贝,也可沿曲线阵列,或者区域阵列,从点、线、面全方位都可进行。当然也可用于规整的场合,只需将参数的最大值,最小值设置相同。你甚至可以当一个超级填充来使用。
程序运行命令为SuperCopy,如果你想要简短的名字,可修改字C:SuperCopy 为你想要的,例如C:CCC.
如想设置拷贝参数,在程序的使用前调用命令 SCSet或者使用 中输入关键字Set来配置。设置的参数可供下次使用。
提醒: 线或者面拷贝时,如果间距设置太少,可能会造成运行时间太长处于假死的状态。另外,勾选“选择集视作图块”,就可把物体数量过多的选择集当做整体处理,加速效果明显。下面是演示图片:
关于程序在此:
ARX版本在此:
ARX 稍微有些不同,速度更快,功能更多,提供了菜单和工具栏形式。并且把命令分解了几个部分:
SCD,用于动态拷贝,SCC用于曲线阵列,SCA用于区域阵列,SCSET设置参数。这些都可以在工具栏和菜单中找到。
(工具栏和菜单的加载和卸载命令是atam,dtam)。
R15---2000~2002;
R16---2004~2006;
R17---2007~2009;
R18---2010~2012;
R19---2013~2014;
R20稍后提供。
程序的源码收一点豆豆吧,毕竟我花了很多时间和心血。
因为是开源软件,所以我希望大家在引用我源码时,遵循开源协议。
**** Hidden Message *****
其实在这个程序里,读了源码,可以回答网友碰到的几个大问题:
1、关于点在多边形或者曲线内的判定问题。
2、关于对实体的矩阵变换问题。
3、动态绘图技术。
4、对话框关闭后一些数据的保留和恢复技巧 。
5、线段细分和阵列拷贝的技巧。
对这个程序的建议和bug请大家在回复中提出。多谢!
强大....下载学习。 厉害支持!!!!!!!! 很强大的程序,感觉收3币有点少,毕竟签到一次就5东豆,哈哈 必须支持,许久不见版主露面,出手都是重量级的,不过这个都靠桌子提供的A/Vlisp那些函数的确要耗很大精力 支持高飞鸟!每次出手都给人以惊喜! 下载试试,看着很强大啊
厉害!:)谢谢分享。 win7 05版,选择一个块和文字运行失败
(VL-BT)
(*ERROR* "ActiveX Server returned an error: 找不到元素。") LAP+7
(_call-err-hook #<USUBR @0b88fca8 *ERROR*> "ActiveX Server returned an
error: 找不到元素。")
(sys-error "ActiveX Server returned an error: 找不到元素。")
:ERROR-BREAK.57 "ActiveX Server returned an error: 找不到元素。"
(intelligent-invoke #<VLA-OBJECT 0b13e394> "Move" 1 #<variant 8197 ...>
#<variant 8197 ...>)
(#<SUBR @08eb821c vlax-invoke-method> #<VLA-OBJECT 0b13e394> "Move"
#<variant 8197 ...> #<variant 8197 ...>)
(vla-Move #<VLA-OBJECT 0b13e394> #<variant 8197 ...> #<variant 8197 ...>)
:XTSF-MARK.31 (FOREACH nil #<SUBR @0b8bf2a8 nil> (Rest-List O))
(SC:MAKEANONYMOUSBLOCK (#<VLA-OBJECT 0b114c54> #<VLA-OBJECT
IAcadBlockReference 0b114fa4>) (-1809.0 2738.0 0.0) #<VLA-OBJECT IAcadDocument
01ea4510>) LAP+289
(C:SUPERCOPY) LAP+260
(#<SUBR @08e7b99c -rts_top->)
(#<SUBR @08e70334 veval-str-body> "(C:SUPERCOPY)" T #<FILE internal>)
:CALLBACK-ENTRY.6 (:CALLBACK-ENTRY)
:ARQ-SUBR-CALLBACK.3 (nil 0)
activex server returned an error: 找不到元素。; error: An error has occurred
inside the *error* functionbad argument type: consp #<VLA-OBJECT 0b13e914>
选择的基点和下一点能捕捉就好了。 如果加入拷贝数量就好了 支持一下新程序 大师作品必须学习.... 支持!学习了