dzrs.net
当前位置:首页 >> 几个很有用的CAD的lisp程序 >>

几个很有用的CAD的lisp程序

AutoLISP语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言.它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存.例如:(setq i 1);就是代码i

(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

autocad2007的copy自身就是多次拷贝,就是你不用输入m就是多次拷贝,但在二次开发中一定要用m下面的lisp程序是用于拷贝(defun c:ccp1 () (prompt "选择要拷贝的目标:") (setq en (ssget)) (prompt "输入基点:") (setq p

方案一:直接读取dwg格式文件有点难度,估计高手会做 方案二:若是文件有很多要做的话,可以用c#,c++,vb通过com去开发,用com方式依次打开dwg图档,然后遍历图元来进行你的要求来运算 方案三:若是文件有很多要做的话,也可以用autolisp来做,自动打开你的文件列表,然后遍历图元来进行你的要求来运算 方案四:若是文件不是很多的话,也可以手动打开dwg文件,然后编写lisp函数遍历图元来进行你的要求来运算 或者你发一些cad参考图档给我,我来帮你看看到底怎么做合适 若是觉得满意的话还请采纳

(defun c:mov1() ; 选择所有对象,平移-500000,0(setq ss (ssget "x" ))(command "move" ss "" (list 0 0) (list -500000 0)))(defun c:mov2() ; 选择所有对象,平移500000,0(setq ss (ssget "x" ))(command "move" ss "" (list 0 0) (list

我可以帮你编制,做到这个功能.请你先给这个命令起个名称.如果你愿意,我可以帮你起这个名字,就叫ct 吧(存图的意思).源代码如下,图形直接存到d:盘根目录下.(defun c:ct (/ dat file) (setq dat (rtos (fix (getvar "cdate")))) (setq file (strcat "d:" (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4)) dat)) (command "saveas" "" file "y") (princ "当前的dwg文件存储目录为:d:"))

可以首先把这几个线框做成面域,然后用面域合并命令合并面域.然后总面积就出来了.不用lisp就可以实现了.

可以用反应器实现,前提是画线和输入文字必须用定义的函数一次性操作完成.LISP代码如下:(VL-Load-Com)(defun c:Line_Txt(/ Pt Pt1 Pt2 EntLine HandTxt VlaObj Tmp) (setq Pt1 (getpoint "\n指定第一点:")) (setq Pt2 (getpoint "\n指

如果觉得回答对你有帮助请采纳为最佳答案,你的采纳就是我们的动力(^_^)!!!以下以一个放在D:\MYPROG文件夹下的名为1.exe的程序为例. (DEFUN C:RM()(STARTAPP "D:\\MYPROG\\1.exe" ) (PRINC) 加载到CAD后命令行输入RM就相当于该程序的快捷键. 如果觉得回答对你有帮助请采纳为最佳答案,你的采纳就是我们的动力(^_^)!!!

(defun c:tes ( / #k1 %k1 %k2 &k1 &kw1) (if (setq &k1 (entsel "\n请选择参考圆")) (progn (setq #k1 (entget (car &k1)) &k1 (cdr (assoc 0 #k1)));取得图元名 (if (= &k1 "circle");如果是圆 (progn;那么 (setq %k1 (assoc 40 #k1));

网站首页 | 网站地图
All rights reserved Powered by www.dzrs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com