CAD LISP 小程序 求高手!

CAD LISP 小程序 求高手!,第1张

autocad2007的copy自身就是多次拷贝,就是你不用输入m就是多次拷贝,但在二次开发中一定要用m

下面的lisp程序是用于拷贝

(defun c:ccp1 ()

(prompt "选择要拷贝的目标:")

(setq en (ssget))

(prompt "输入基点:")

(setq p1 (getpoint))

(command "copy" en "" p1 )

(while (setq p2 (getpoint))

(command p2)

)

)

在上面的程序中应没输入"m"虽然copy在命令下是多次拷贝的在程序中给它了多次拷贝的条件,但只能拷贝一次。

(defun c:ccp ()

(prompt "选择要拷贝的目标:")

(setq en (ssget))

(prompt "输入基点:")

(setq p1 (getpoint))

(command "copy" en "" "m" p1 )

(while (setq p2 (getpoint))

(command p2)

)

(command "")

)

在程序ccp中在输入p1前加了"m" (command "copy" en "" "m" p1 )它就是多次拷贝

下面是一个循环只要p2有值它就要去拷贝,当你在(setq p2 (getpoint))输入回车,这时p2是空值,程序就退出。

在AutoCAD的安装文件夹下,有一个acadxxxx.lsp文件,此文件名中的xxxx代表一个年的版本数,例如在C:\Program Files\Autodesk\ACADM 2010\Support下,有个acad2010.lsp文件。在它的最后加上你的后两个函数句子,保存之(见以下第一个截图)。这样在AutoCAD启动后,就会自动运行这两句函数。而且一般默认的是每新建一张图时,均会自动运行。还有几个文件也会在加载时自动调入内存的,从“应用程序加载”对话框中可以看出(见下面第二个截图的左下角)。如果你在这些文件中加入函数,它们都会自动运行的。

至于你的菜单文件,其实是屏幕菜单,现在Autodesk公司在帮助文件中声明快要淘汰这种菜单了,从2010版看尚可使用。然而菜单文件已经变成.cuix文件,虽然仍能用(command "munuload" "xxx")函数加载局部菜单-这里xxx代表后缀为.mnu的菜单文件的前缀,然而新的菜单自定义方式已经在“自定义用户界面”的对话框中进行,这个对话框已经融合了工具栏、命令、下拉菜单等的所有界面自定义功能,但已不支持屏幕菜单的自定义。在这个对话框中,可以加载原有的主菜单文件,然后在其中插入相应的局部菜单、或者在新的混合菜单文件中增加自定义的命令、下拉菜单项、右键快捷菜单,并可以作为一个新的用户界面文件.cuix保存之。你可以参见下述的帮助文件“开发人员文档/目录选项卡”中的“自定义手册”-其中有.cuix文件的编辑方法,并且写道:基于 XML 的 CUIx 文件取代了 AutoCAD 2010 之前版本中的自定义文件和菜单文件。用户无需使用文字编辑器来自定义 AutoCAD 2006 之前的版本中使用的菜单文件(MNU 和 MNS 文件),而可以在 AutoCAD 内的(自定义用户界面对话框中)自定义用户界面。

      因此,你的屏幕菜单的内容,就需换一种比较直观的方式,在此对话框中进行,建议增加一个下拉菜单,并先定义好新的命令(代替你原来的屏幕菜单中的宏命令)之后,将其引用到这个下拉菜单的菜单项中去。最后另存这个混合的“自定义用户界面”文件(.cuix),就可以复制给其他人以供使用了。

将A建成块,比如命令该块的名称为A0

然后对B进行定距等分,定距等分的命令为me

在提示中注意看,我们设定距离为25,插入块,块名称为刚才我们建的那个A0

这样就可以快速对B完成你想要的

另外,在对A进行建块的时候要注意指定基点

最好指定A的中点为基点


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11910319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存