❶ 如何在cad中使用autolisp编写一个小程序,使选择好后的 选择集 中的 某一
可以编程实现
❷ 用CAD的lisp命令绘制图块的外框
;试用以下程序
(defun c:kjxwk()
(vl-load-com)
(setq cm (getvar "cmdecho") os (getvar "osmode"))
(setvar "cmdecho" 0) (setvar "osmode" 0)
(command "_undo" "be")
(while (setq ssa (ssget ":S" '((0 . "INSERT"))))
(setq ent (ssname ssa 0)
obj (vlax-ename->vla-object ent)
)
(vla-GetBoundingBox obj 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
)
(command "_rectang" p1 p2)
(command "_chprop" (entlast) "" "c" 1 "")
)
(command "_undo" "e")
(setvar "osmode" os) (setvar "cmdecho" cm)
(princ)
)
❸ AUTOLISP编程求助,如何得到屏幕的中点的坐标
很简单的一个系统变量就能获得,参见下面代码:
(setq pt (getvar "viewctr"))
如果你还想获得屏幕的四内个角点的容坐标,可以利用系统变量viewsize screensize配合上面得到的屏幕中心坐标获得。
下面在给你个代码,可以获得当前拾取框的高度,在你选取实体的时候这个代码很有用:
;|
求拾取框的高度
|;
(defun $XDLSP_Drawing_getPickboxHeight ()
(* (/ (getvar "pickbox") (cadr (getvar "screensize"))) (getvar "viewsize"))
)
上面代码摘自晓东工具箱里面的系统代码库里面的代码。
❹ 请问AutoLISP语言在选择了一个选择集之后退出命令后如何让它在图形空间里保持选择集是亮选的选择状态!!!
(setq ss (ssget))
(sssetfirst nil ss)
❺ 如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序
打开Visual Lisp编辑器有两种方式:
1.AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual
Lisp编辑器"。(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的)
2.AutoCAD2009及之后的版本,在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。
如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序
打开Visual Lisp编辑器之后新建一个文件,并另存为Lisp源文件。然后就可以在编辑窗口里输你的代码了。
代码编辑并调试确认无错误后,就可以在AutoCAD中使用了。
如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序
左边的按钮表示立即运行当前代码,如果有错误就会提示出来,右边按钮是切换到CAD窗口。
如果不需要再修改代码了还可以将代码进行编译以加速运行。
如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序
根据向导一步步进行编译很简单的。
如果在其他CAD图形文件中需使用当前代码文件或编译后的文件,就按上面第一点的,或者在命令行输入”ap",打开导入应用的对话框。
如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序
1是用来临时导入的,2是将程序加入CAD的启动组。
lisp解决重复性劳动问题
在设计和绘图中,你觉得都是简单粗暴的重复性工作,就可以考虑用AutoLisp来代替你做。
首先,AutoLisp也是一个程序设计语言,属于Common
Lisp的子集,同时加入了很多自定义的函数。即然是一个程序语言,就是其他编程语言能做的,它也能做,只是他的lisp语法跟一般的语言有些差另就是了,但是如果是一个没有VB、C#、C++(对应于AutoCAD的开发方式分别是VBA,.net,ObjectArx)的基础的人来说,AutoLisp是很简单而且特别容易上手的一个语言。
作为一个编程语言,AutoLisp能做的很多:
1、扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可以像"line" "circle"
"dim"等命令一样使用。
2、编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各种设计手册中的相关数据并继续使用。
3、进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。
4、DWG文件本质上是AutoCAD在图形生成和编辑中使用的数据库,可以将一些非图形信息的数据(粗糙度,高度,厚度。。)等存于DWG文件中作
为非图形数据库文件,然后利用Lisp程序进行读取等。
各种AutoCAD二次开发方式的比较:
由于 .net语言和c++的学习曲线比较陡峭,所以简单易学的AutoLisp经常与VBA进行对比。(当然如果有VB的基础还是直接学VBA好了。)
AutoLISP擅长建立新命令和产生已有命令的连接。VBA擅长执行包括在其他应用程序中的组件,如Microsoft的Excel和Access。AutoLISP是基于表处理的编程体系,它允许程序员随意地存储和操作传送信息,然而VBA部件包括数据和对复杂情况的各种有效操作,这就是问题变得复杂的地方。
不过,在AutoCAD2000开始,Autodesk公司就在AutoCAD中加入了Visual
Lisp编辑器,引入了许多新函数扩充AutoLisp的功能,并支持ActiveX对象的访问方式,所以使用AutoLisp来与Word\Excel等程序进行交互也是变简单了。
另外,在创建带GUI图形界面的应用程序上,VBA当然是所见即所得的了,而AutoLisp是通过DCL文件来实现GUI的(语法很简单,但做不到所见即所得).这点是AutoLisp略逊一筹了。原文出自[
CAD自学网 ] 转载请保留原文链接:http://www.cadzxw.com/1873.html
❻ 请问autolisp程序里面调用(c:yx_sl)命令时需要选择图元,我可以集成到我的程序里面吗详见下面。
如果你能得到 (yx_sl)这个程式的源代码,就把它Copy一份到你的程式后面,改个名字,直接在你的程式中调用...
❼ 取消cad启动时自动加载
1、点击“工具”菜单-“AutoLISP”-“加载应用程序”。
❽ autolisp 应用程序源代码怎么杀掉啊
那是个病毒,要杀的。
具体方法引用如下:
近期很多CAD用户都出现了同一问题,即打开了一些从网上下载的或从其他地方拷贝过来的图纸后,CAD开始变的非常慢,通常打开一张图纸要等待几分钟的时间,并且一些运行于CAD上的二次开发软件的命令变的不可用。即使重新安装CAD甚至重新安装系统,只要再次打开以前打开过的图纸,问题重现,这个问题对许多CAD设计人员都造成相当大的困扰。
该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。
对此我们制作了该病毒的专杀工具,希望对广大设计人员有所帮助。
借此我们也建议广大设计人员:对于网上的一些未知图纸,在下载、打开之前,一定要慎重。
下载http://www.haochenc.com/download/soft/soft.asp?ID=145
❾ autolisp粘贴内容怎么加进选择集
;;;=================================================================*
;;;功能:复制系统剪贴析板内容
(defun get ( / HTML RESULT)
(and (setq HTML (vlax-create-object "htmlfile"))
(setq RESULT (vlax-invoke
(vlax-get (vlax-get HTML 'PARENTWINDOW)
'CLIPBOARDDATA
)
'GETDATA
"Text"
)
)
(vlax-release-object HTML)
)
RESULT
)
❿ 【Auto CAD】 求LISP 程序包
Lisp工具箱
链接:
工具箱程序下载:http://www.xdcad.net/forum/showthre...0022#post760022
工具箱是个平台,需要加入工具程序才能真正的发挥作用。希望大家能交流一下自己整理的工具程序。
作为开头,我把一段时间来在本版块下载的工具程序打了个包,目前有35个不同类型的工具,其中有一些非常好用的。
欢迎跟贴自己整理的程序集。
安装方法:
1. 把压缩文件解包到c:\program files\lisptbox\lisp目录下。
2. 在工具箱里用读取文件或合并文件的方式调入上述路径内的tools1.tbx文件就可以了。
说明:
这个包适用于工具箱程序的所有版本,不过较新的版本有更好的支持,如在1.5版以后可以生成下拉菜单,在2.0版里程序是分组的。
包内所有的程序均来源于公开渠道。版权归各自作者所有,如作者不同意这种发布方式请声明,本人将删除相关程序。
本程序包仅供应用上的参考,不保证适用性。