-
2021-01-13 03:20:46
CAD二次开发求LISP高手写个程序
改为如下即可:
(defun c:sdd ( dwg )
(setq dwg (getfiled "路径+文件名" "" "Dwg" 1))
(if (wcmatch dwg "* ####-##-## ##:##.dwg")
(setq dwg (substr dwg 1 (vl-string-search " " dwg)))
(setq dwg (substr dwg 1 (- (strlen dwg) 4)))
)
(setq dwg (strcat dwg " " (menucmd "M=$(edtime,$(getvar,date),YYYY-MO-DD HH:MM)") ".dwg"))
(command "_.saveas" "" dwg)
(princ)
)
cad加开图层lisp语句谢谢?
(DEFUN SUB_CHK_LAYER1 (layername COLOR / );;;;;;;;;;检测图层是否存在,若不存在,新建一个图层.(提供图层名 图层color)
(SETVAR "CMDECHO" 0)
(SETQ CHKLAY (TBLSEARCH "LAYER" layername))
(IF (= CHKLAY NIL)
(vl-cmdf "LAYER" "N" layername "C" (itoa COLOR) layername "");;;不能用COMMAND
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:TE ();;;;;;;;;;;;;;;;;;;;;
(SUB_CHK_LAYER1 "1" 1 );
(SUB_CHK_LAYER1 "2" 2);
(SUB_CHK_LAYER1 "3" 3);
(SUB_CHK_LAYER1 "4" 3);
(SUB_CHK_LAYER1 "5" 5);
)
(PROMPT "***C:TE***生成图层* ****")
(PRIN1)
CAD lisp语言编程!
你这个问题主要的难点还是在如何读入excel文件吧,其他生成图像不是什么难点,这里就不加概述,重点说下怎么读入文件吧。其实挺好解决的,只要将excel表格转换成任何能用记事本打开且不出现乱码的形式,再用open函数加以调用读取即可,刚好excel另存的csv格式正好可以用记事本打开不出现乱码。
首先,你将excel另存成csv格式。然后:(defun c:GETCSV (/ @file @ascii @char @fullChar @charLength)
(setq @file (open (getfiled "数据读取" "" "csv" 2) "r"));选择并打开csv文件
(setq@char ""
@fullChar ""
@ascii 0
)
(while @ascii
(setq @ascii (read-char @file))
(if @ascii
(setq @char (chr @ascii))
)
(if(= @char ",")
(setq @char " ")
)
(if(= @char "
")
(setq @char ")(")
)
(setq @fullChar (strcat @fullChar @char))
);读入csv文件的内容,并根据内容转换成特定表样式的字符串,储存到@fullChar中
(setq @charLength (strlen @fullChar))
(while (or (= (substr @fullChar @charLength 1) ")")
(= (substr @fullChar @charLength 1) "(")
)
(setq @fullChar (substr @fullChar 1 (- @charLength 1)))
(setq @charLength (strlen @fullChar))
)处理@fullChar特定表样式的字符串尾部多余的括号
(setq @fullChar (strcat "((" @fullChar "))"));将@fullChar前后各加两个括号和反括号
(setq @pointList (read @fullChar));把字符串转换成表,储存到@pointList中
(setq outside @pointList);将@pointList中的内容赋予全局变量ouside
(close @file);CAD中停止调用之前打开的csv文件
(princ)
)
之后,整个excel表的内容都在变量outside中,搭配car和cdr系列函数以及foreach函数去处理outside变量,并利用entmake创建出相应的CAD图元即可。
更多相关内容 -
cad lisp 初级教程
2013-06-13 17:38:44AutoLisp语言建基于普通的LISP语言上,并扩充了许多适用于CAD的特殊功能而形成。是一种能以直译方式(不须先行编译)亦可于AutoCAD内部执行的直译性程序语言。程序容易学习及撰写,程序即使出错亦不会对操作系统(如DOS... -
cad二次开发之lisp语言
2016-06-17 21:48:20LISP是最早和最重要的符号处理编程语言之一,它于1958年由美国的J. McCarthy提出,并于1960年发表了他的第一篇关于LISP的论文。之后,LISP很快受到人工智能工作者的欢迎,获得广泛应用。LISP是LISt Processing(表... -
cad lisp学习过程记录
2021-11-20 21:51:24入职设计院四个月,参与了部分画图工作,发现画图过程中存在不少重复性劳动,决定自学一下lisp语言,结合自己平日画图工作中的痛点,针对性地写一些简单小插件,提升工作效率。 现已接触lisp两周,一边自学一边自编...入职设计院四个月,参与了部分画图工作,发现画图过程中存在不少重复性劳动,决定自学一下lisp语言,结合自己平日画图工作中的痛点,针对性地写一些简单小插件,提升工作效率。
现已接触lisp两周,一边自学一边自编了部分小插件,这里把小插件演示动图放上来记录一下自己学习过程。
1.计算多个数字之和
2.计算多条线段长度之和
3.插入墙高标注
4.查询多段线顶点坐标并绘制(自己平时会填写抗滑桩桩心或角点坐标表)
5.自动生成页码
6.自动插入页码(针对自己常用图框而编)
7.绘制示坡线(示坡线方向还只能固定一个方向,以后继续优化)
8.插入排水箭头
-
AutoLiSP入门教程
2018-12-06 16:57:23AutoLISP 是强化AutoCAD 最好、最直接的『程序语言』! AutoLISP 易学、易用,即使不会程序设计的AutoCAD 使用者,都能在最 短的时间内,写出令人惊讶、赞叹的功能! 学习AutoLISP 是非常容易的,对初学者而言,即使没有... -
Lisp:AutoLisp入门、操作编程实例详细攻略
2018-06-02 11:32:53Lisp:AutoLisp入门、操作编程实例详细攻略 目录 AutoLisp入门 1、图文教程 ... AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。...AutoLISP语言作为嵌入在Auto...Lisp:AutoLisp入门、操作编程实例详细攻略
目录
AutoLisp入门
AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。
1、图文教程
AutoLisp操作
Autolisp:利用AuoCAD之Lisp编程案例之自动智能获取所选对象的面积并标注在指定位置
Autolisp:利用AuoCAD之Lisp编程案例之自动智能绘制枫叶玫瑰
AutoLisp:AutoLisp实现对AutoCAD进行输入命令,选择对象,实现不同方向进行缩放
Autolisp:利用AuoCAD之Lisp编程案例之智能加工齿轮的演示程序 -
利用lisp进行AutoCAD二次开发(环境说明、文件读取、以及表格创建与写值)
2018-10-24 18:55:13今天的这个例子是lisp计算机语言编程,说到这门计算机语言还是大学的时候接触的,不过那时候都是停留在了解的层面上,后面编写AutoCAD二次开发程序几乎是用的是C#。所以对lisp不熟,就别提关于lisp在AutoCAD方面的...今天的这个例子是lisp计算机语言编程,说到这门计算机语言还是大学的时候接触的,不过那时候都是停留在了解的层面上,后面编写AutoCAD二次开发程序几乎是用的是C#。所以对lisp不熟,就别提关于lisp在AutoCAD方面的接口。而今天所以又捡起这么计算机语言,是出于两方面原因,首先在AutoCAD明经测绘GIS板块中有相当一部分代码是lisp编写的,这部分代码非常实用于测绘GIS日常生产。另外一个方面是,在AutoCAD论坛中,autoLisp版块非常活跃,这里常常汇聚着一些业界的大牛,在这里开源了相当一部分代码。可以说,是一部分相当不错的资料。
使用lisp开发AutoCAD程序开发环境为AutoCAD自带的编辑器。具体界面如下图所示。
代码只要写在空白处,保存为.lsp后缀文件即可。下面来说一下,常用的调试键,F8为单步调试,为嵌套的方式,会层层的深入。而如果想一个一个表达式调试,只要shift+F8即可。而下面截图中按钮是对代码的执行,代码的检查,由于lisp以非常繁琐的链表方式,即括号的方式编写,所以使用这几个功能对代码的检查是十分有必要的。
类似于C#,JAVA计算机语言,我们在调试的时候需要对我们的变量值进行查看,在AutoCAD中可以使用如下图的监视窗口。在窗口中输入变量的值,可以查看程序运行中,变量值的变化。
而我们在开发中,往往需要对代码进行类似C#一样,将AutoCAD添加到进程中调试,在AutoCAD自带的编辑器中,我们只要使用激活AutoCAD即可。具体如下图所示。
好了,关于编写AutoCAD开发的lisp程序方面的环境,以及常用的快捷键就说明完,当然了,更多的相关的知识,大家可以查看网络的相关资料,这里就不做详细的说明。
今天的这个例子是利用AutoCAD对象,利用反射调用函数打开文件窗口,读取文件。然后读文件该目录下的dwg后缀的文件。再由AutoCAD里面创建表格,将文件名填写到表格里面,整个程序就作完工作。在这里例子,我们将会学到AutoCAD对象的链接,模型空间中添加表格,表格单元格的填写。就lisp语法而言,有对象的反射调用,循环的使用。可以说是学习AutoCAD在lisp开发不错的例子。具体的实现代码如下图所示。
(defun c:GET_FILES ( / sh folder folderobject result) (vl-load-com) (command "cmdecho" 0) (setq sh (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application" )) (setq folder (vlax-invoke-method sh 'BrowseForFolder 0 "" 0 )) (vlax-release-object sh) (setq folderobject (vlax-get-property folder 'Self)) (setq result (vlax-get-property FolderObject 'Path)) (setq Files_Folder (vl-directory-files result "*.dwg")) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq pt (vlax-3d-point 0 0 0)) (setq modelSpace (vla-get-ModelSpace doc)) (setq MyTable (vla-Addtable modelSpace pt (+ (length Files_Folder) 2) 2 10 100)) (vla-ZoomExtents acadObj) (vla-setText MyTable 0 0 "图形文件列表") (vla-setText MyTable 1 0 "序号") (vla-setText MyTable 1 1 "文件名") (if (/= (length Files_Folder) 0) (repeat (setq N (length Files_Folder)) (setq e (nth (setq N (- N 1)) Files_Folder)) (setq fsl (strlen e)) (Setq Fsl (- fsl 4)) (setq Fname (substr e 1 fsl)) (vla-setText MyTable (+ N 2) 0 (+ N 1)) (vla-setText MyTable (+ N 2) 1 Fname) ) (princ "\n无 *.DWG 后缀的文件") ) (command "cmdecho" 1) (princ) )
下面来看一下录制的gif效果。
更多内容,请关注公众号
-
cad_lisp基础教程.pdf
2021-01-27 06:29:42cad_lisp基础教程Lisp 基础知识一.基本知识1二、数值资料5三、程序设计 11四、流程控制 16五、输入输出23六、字符串资料31七、串行资料36八、图元资料42九、选集资料52十、常用函数 1 58十一常、用函数2 67十二、... -
CAD 二次开发教案 LISP
2016-01-24 20:28:22这就是Autodesk公司早在1985年的2.1版本就引用了LISP语言的宏操作,在1986年的2.5版本就推出了比较完整的AutoLISP语言的原因。 LISP在它几十年的发展过程中产生了多种版本,如MacLISP、InterLISP、ZetaLISP、和... -
中望CAD+API接口应用教程之Lisp篇
2020-12-21 10:44:22前段时候中望公司发布了新一代拥有全新内核的产品:中望CAD+,作为一个国产CAD软件的支持者,我进行了下载测试,使用过后确实有了耳目一新的感觉,新功能方面有很多朋友已经做了深入的评测,我就不凑热闹了,这里我... -
autolisp教程pdf
2021-01-27 06:29:28AutoCAD高级培训教程之二 AutoCAD应用开发第三部分 AutoLISP基本函数 3 AutoLISP基本函数 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.1 赋值函数 3.2 数据类型......搜试试 2 悬赏文档 全部 DOC PPT TXT PDF XLS 百度文库 ... -
AutoLISP入门教程.pdf
2014-10-15 10:14:05非常简明而实用的AutoLISP教程!...AutoLisp是强化AutoCad最好、最直接的程序语言。 AutoLisp易学、易用,即使没有学习任何的程序语言,都能很快上手,写出精彩漂亮的AutoLisp程序。 -
Lisp入门教程--介绍 AutoLISP 语言
2010-05-03 09:06:51本教程用于示范 AutoCAD® 的 AutoLISP® 编程环境的一些强大功能,并介绍 AutoLISP 语言的新功能。 本教程的目标是用自动绘图工具绘制花园小路。这些工具可以最大限度地节省绘图时间,显示出参数化编程的能力。 将... -
AutoLISP入门基本知识.pdf
2021-12-17 11:25:01AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师...AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。 -
AutoLisp入门教程
2013-01-19 09:45:45一个不错的CAD 语言编程教程。深入浅出 -
autocad visua lisp 自学教程
2010-03-06 12:21:00对于autocad 使用者是一个非常有用的语言,可以编辑和加载块,方便用户的操作,提高工作效率 -
CAD二次开发之LISP读取excel数据
2020-04-02 01:15:33内容:将通过CAD访问Excel文件,并对下列表格的总价进行计算 步骤: 1、写程序首先利用(V-load-com)加载扩展的AutoLISP函数,不可缺。 (v-load-com) 具体程序如下: 2、运行程序 (1)加载 (2)运行 显示... -
CAD二次开发课件包含visual lisp\vb\.net多种语言开发的教程!
2010-11-19 22:08:58cad的二次开发,包含visual lisp\vb\.net多种语言开发的教程! -
《Visual Lisp开发人员手册》
2017-10-20 10:50:27AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师...AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。 -
AutoCAD软件的二次开发lisp
2017-08-24 12:46:42AutoCAD软件的二次开发lisp语言详细介绍,lisp语法,及如何进行CAD对象调用,是初学者很好的参考资料。 -
**lisp** 学习笔记
2021-01-13 06:43:54开发环境开发环境:SBCLEmacsSlime:在emacs里面帮助进行common lisp开发的扩展quicklisp:Common Lisp的包管理工具安装步骤:安装emacs这个不用多讲了。从GNU的网站能下载到不同平台的版本。安装SBCLbrew install ... -
CAD二次开发lisp教程《第二章》
2012-11-06 12:31:36学好一门编程语言有两个条件是必不可少的,一是理论与实践结合,在实际例程去验证书本上的理论能加深你对理论的理解;二是学会总结,把学习、运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中... -
基于AutoLISP的AutoCAD二次开发研究_郭秀娟.pdf
2020-12-21 12:44:452008年12月JournalofJilinArchitecturalandCivilEngineeringInstituteDec.2008基于AutoLISP的AutoCAD二次开发研究郭秀娟范晓鸥(吉林建筑工程学院计算机科学与工程学院,长春130021)摘要:介绍了AutoLISP语言的功能、... -
visual lisp开发人员手册
2018-11-30 22:41:21VLISP对是autoLisp语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通过实现反应器函数,还扩展了AutoLISP响应事件的能力。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),... -
cad 二次开发教程,很详细,配合cad使用
2008-12-24 22:36:02lisp语言, (DEFUN C:RECT ( ) (SETQ PT_START (GETPOINT "Select first point") PT_END (GETCORNER PT_START "Select second point") PT_TMP1 (LIST (CAR PT_START) (CADR PT_END)) PT_TMP2 ... -
Lisp教程(下册 DCL编程)彩版
2020-12-21 06:32:51ControlLanguage)语言,作对话方框的开发及应用.本课程只适合对AutoLISP程序设计有相当认识之人仕.全课共分为12篇,每篇一个主题;而每篇再分为若干小节,每天顺序显示.内文若有错漏,敬祁见谅,欢迎来函赐教,多谢!!课程... -
如何用CAD画正弦曲线????有lisp的最好。。。谢谢了
2020-12-22 02:22:12该楼层疑似违规已被系统折叠隐藏此楼查看此楼打开CAD,依次点击菜单“工具→AutoLISP→Visual LISP编辑器”,新建文件,输入以下代码:(defun C:drawsin (/ LeftPoint LeftPointX LeftPointY N x step) (initget 1) ... -
AutoLISP培训教程
2009-02-23 14:05:263、AutoLISP是强化AutoCAD最好、最直接的『程序语言』! 4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的 时间内,写出令人惊讶、赞叹的功能! 若说AutoLISP的出现,是替 AutoCAD 创造一片天的... -
AUTOLISP@DCL基础篇(全)
2020-12-21 04:42:33二位AutoCAD高手震撼年度精心巨作最震撼的AutoCAD专业工程师必修宝典一贯原则 篇篇精彩...循序渐进,熟悉Autolisp&DCL程序设计资深老手->充分掌握,自我希望成为真正的AutoCAD制图的创造者高手练功->如虎...