链接:
工具箱程序下载:http://www.xdcad.net/forum/showthre...0022#post760022
工具箱是个平台,需要加入工具程序才能真正的发挥作用。希望大家能交流一下自己整理的工具程序。
作为开头,我把一段时间来在本版块下载的工具程序打了个包,目前有35个不同类型的工具,其中有一些非常好用的。
欢迎跟贴自己整理的程序集。
安装方法:
1. 把压缩文件解包到c:\program files\lisptbox\lisp目录下。
2. 在工具箱里用读取文件或合并文件的方式调入上述路径内的tools1.tbx文件就可以了。
说明:
这个包适用于工具箱程序的所有版本,不过较新的版本有更好的支持,如在1.5版以后可以生成下拉菜单,在2.0版里程序是分组的。
包内所有的程序均来源于公开渠道。版权归各自作者所有,如作者不同意这种发布方式请声明,本人将删除相关程序。
本程序包仅供应用上的参考,不保证适用性。
首先,LISP不是你说的用来打断线的程序,LISP是AutoCAD的二次开发工具,其实就是一种计算机编程语言,可以用LISP语言编程 *** 作AutoCAD的对象,完成重复性的工作。其次,LISP不需要下载,只要你的电脑中安装了AutoCAD,就可以使用,在“工具”菜单下的“Autolisp”中,有编程界面和加载工具。
最后,对于你所说的功能,我觉得编程并不简单,“打断”命令每次在一条直线上选两个点,打断中间的部分,你要一次打断许多线,每条线上的两个点如何定位是主要的问题。不过,LISP功能强大,应该能够实现你的要求。
(defun c:qx () (setvar "cmdecho" 0) (command "layon") (setvar "cmdecho" 1) (prin1) ) 打开所有图层(defun c:ff () (setvar "cmdecho" 0) (command "layoff") (setvar "cmdecho" 1) (prin1) ) 选择需要关闭的图层
(defun c:qw () (setvar "cmdecho" 0) (command "layiso") (setvar "cmdecho" 1) (prin1) ) 选择需要隔离的图层
(defun c:tc () (setvar "cmdecho" 0) (command "laymcur") (setvar "cmdecho" 1) (prin1) ) 选择对象为当前图层
(defun c:df () (setvar "cmdecho" 0) (command "ribbon") (setvar "cmdecho" 1) (prin1) ) 打开工具选项栏
(defun c:fd () (setvar "cmdecho" 0) (command "ribbonclose") (setvar "cmdecho" 1) (prin1) ) 关闭工具选项栏
修改图层
(defun C:XG (/ #os1 &k1 #k1 %k1 &kw i %k2)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq #os1 (getvar "osmode"))
(setvar "osmode" 0)
(setq &k1 (entsel "\n请选择参考图层"))
(if (= &k1 nil)
(princ "\n没有选择参考图层")
)
(if (/= &k1 nil)
(progn
(setq &k1 (car &k1)
#k1 (entget &k1)
%k1 (assoc 8 #k1)
)
(princ "\n请选择需要改变的对象")
(setq &kw (ssget))
(if (= &kw nil)
(princ "\n没有选择对象")
)
(if (/= &kw nil)
(progn
(setq i 0)
(repeat (sslength &kw)
(setq &k1 (ssname &kw i)
#k1 (entget &k1)
%k2 (assoc 8 #k1)
#k1 (subst
%k1
%k2
#k1
)
i (+ i 1)
)
(entmod #k1)
)
(princ "\n改变图层完成")
)
)
)
)
(setvar "osmode" #os1)
(prin1)
)
一键所有填充对象置后显示,CAD2005以上版本适用 By Gu_xl 2014.07.17
(defun C:ZX5 (/ sortents dict lst Doc)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(vl-load-com)
(setq doc
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
(vlax-for blockdef (vla-get-blocks doc)
(cond
(
(not
(VL-CATCH-ALL-ERROR-P
(setq sortents
(VL-CATCH-ALL-APPLY
'vla-item
(list
(setq dict
(vla-GetExtensionDictionary
blockdef
)
)
"ACAD_SORTENTS"
)
)
)
)
)
)
((setq sortents
(VL-CATCH-ALL-APPLY
'vla-AddObject
(list dict "ACAD_SORTENTS" "AcDbSortentsTable")
)
)
)
)
(setq lst nil)
(vlax-for obj blockdef
(if (= "AcDbHatch" (vla-get-objectname obj))
(setq lst (cons obj lst))
)
)
(if lst
(progn
(vla-MoveToBottom
sortents
(vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray
vlax-vbobject
(cons 0 (1- (length lst)))
)
lst
)
)
)
)
)
)
(vla-regen doc :vlax-true)
(princ)
)
以上复制到记事本,以(.lsp)为后缀命名,加载autoLISP到AutoCAD。这几个命令基本上会用到
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)