搜索
首页电脑教程电脑知识自学编写CAD的Lisp程序

自学编写CAD的Lisp程序

Jan 08, 2024 pm 02:02 PM
cadlisp基础教程doccad怎么自己编lisp程序cad里面的lisp有什么作用啊怎么

CAD怎么自己编lisp程序

做了隐藏和显示两个命令.

我编写的简单,功能不太全.你看着用吧

复制下列代码,创建acad.lsp.放在在CAD安装目录第一层文件夹下,可自动加载啊:

;在命令行输入该命令hidsel,然后选择图元,结果没选的被改到隐藏层

(defun C:hidsel(/ all;所有图元

xs;非隐藏图元

yc;隐藏图元

n nam dat)

(setvar "CMDECHO" 0);关闭命令回显

(command "_layer" "n" "临时隐藏图层" "")(command "_layer" "off" "临时隐藏图层" "")

(setvar "CMDECHO" 1)

(setq all (ssget "x"));选择所有

(setq xs (ssget));选择非隐藏图元

(setq n -1 yc all);运算隐藏图元

(repeat (sslength xs)

(setq n (+ n 1))

(setq nam (ssname xs n));返回第N个图元的名称

(setq yc (ssdel nam yc))

)

(setq N -1);隐藏

(repeat (sslength yc)

(setq N (+ n 1))

(setq nam (ssname yc n));返回第N个图元的名称

(setq dat (entget nam));DAT储存第N个图元数据

(entmod (subst (cons 8 "临时隐藏图层") (Assoc 8 dat) dat));将yc集合隐藏

)

(setq all nil xs nil yc nil n nil nam nil dat nil);清除数据占用内存

(princ)

)

;显示所有图元

(defun c:shoal(/ all n nam dat)

(setq all (ssget "x"));选择所有

(setq N -1);隐藏

(repeat (sslength all)

(setq N (+ n 1))

(setq nam (ssname all n));返回第N个图元的名称

(setq dat (entget nam));DAT储存第N个图元数据

(entmod (subst (cons 8 "0") (Assoc 8 dat) dat));将yc集合隐藏

)

(setvar "CMDECHO" 0)

(COMMAND "PURGE" "LA" "临时隐藏图层" "Y" "Y" "")

(setvar "CMDECHO" 1)

(setq all nil n nil nam nil dat nil);清除数据占用内存

(princ)

)

CAD里面的lisp有什么作用啊怎么用要具体的能让我明白加分

lisp本身就是cad所属的开发程序,他提供一些简单的函数计算,剩下的就全是针对autocad的绘图功能了。lisp程序类似与数据库中的存储过程,可以批量的处理绘制cad图形。

学习lisp是很简单的,只要掌握了几个主要命令的使用就行,就是对语句格式要很研,本身lisp的函数相当多,不必去记。

加载LISP

1. 可以使用APPLOAD命令,然后去找到要加载的LISP文件,加载即可。

2. 可以自己从文件管理器把LISP文件拖动到ACAD的图形窗口,也可以加载

3. 在命令行后用,(load "c:\temp\xxx.lsp")也可以加载,路径名请输入实际的路径。

另:对于一个LSP程序,(defun 后面的既是命令或者函数,一般程序应该有提示,若没有,标志符c:后面的单词是可以在ACAD下使用的命令,既可以在COMMAND:后面直接输入,即可执行。

有几个CAD中的LISP语言怎么编程

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

(setq i 1);就是代码i值是1

(command "CIRCLE" '(0 0) 100);命令在坐标原点绘制半径100的圆。

AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。例如:

(setq pt1 (getpoint "n请选择圆心插入点"))

(command "CIRCLE" pt1 100);命令这个插入点绘制圆,半径为100

AutoLISP把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。

例如:一条直线,起点坐标'(0 0),端点坐标'(1000 0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:

(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))

以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要的直线。

AutoLISP语言中程序运行过程就是对函数值的过程,是在对函数值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。

AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:

(setq &k1 (entsel));选择对象

(setq &k1 (car &k1));提取图元

(setq #g1 (entget &k1));取得属性列表

(setq c0 (cdr (assoc 0 #g1)));取得图元名称

以上是一个个的写下来,可以写成以下:

(setq c0 (cdr (assoc 0 (entget (car (entsel))))));简单易懂

由于autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。

autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。

以上是自学编写CAD的Lisp程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:Excel办公网。如有侵权,请联系admin@php.cn删除
Autofill在Excel中不起作用吗?这是修复程序! -  MinitoolAutofill在Excel中不起作用吗?这是修复程序! - MinitoolApr 16, 2025 am 12:51 AM

你们中有些人可能会发现自动填充没有在Excel中工作。您能提出任何解决方案吗?如果没有,那么您就会到达正确的位置。 PHP.CN网站上的这篇文章将为您提供6种方法来解决Excel Autofill无法正常工作的方法。

Windows 7 Starter Edition:这是什么?如何下载? -  MinitoolWindows 7 Starter Edition:这是什么?如何下载? - MinitoolApr 16, 2025 am 12:50 AM

什么是Windows 7 Starter版本? Windows 7 Starter版的局限性是什么?如何获得Windows 7首发版ISO?来自PHP.CN的这篇文章为您提供了有关Windows 7 Starter Edition的详细信息。

使用此顶部指南在Windows中以其他用户的方式运行应用程序使用此顶部指南在Windows中以其他用户的方式运行应用程序Apr 16, 2025 am 12:49 AM

运行应用程序时,您是否通过登录目前然后登录另一个应用程序来更改帐户感到困扰? PHP.CN收集了一些有效的方法来帮助您在Windows 10和Windows 11中作为其他用户运行应用程序。

修复:Dropbox下载您的文件有错误修复:Dropbox下载您的文件有错误Apr 16, 2025 am 12:48 AM

您是否患有“ Dropbox下载文件的错误下载您的文件”错误?现在阅读PHP.CN发表的这篇文章,以获取有关此问题的一些有用解决方案。

修复所选文件的5种方法未在文件资源管理器中突出显示-Minitool修复所选文件的5种方法未在文件资源管理器中突出显示-MinitoolApr 16, 2025 am 12:47 AM

您是否对“所选文件在文件资源管理器中未突出显示”的问题感到困扰?您知道如何解决吗?如果没有,您可以在PHP.CN上阅读此帖子,以获取几个可行解决方案,以使所选文件在文件资源管理器中可见。

修复任务栏中缺少语言栏 - 经过验证的指南修复任务栏中缺少语言栏 - 经过验证的指南Apr 16, 2025 am 12:46 AM

如果您使用多语言,语言栏是必不可少的。您可以通过从任务栏调整设置来更改输入语言。但是,当您打开计算机时,语言条可能有一天会消失。如何修复语言栏丢失

如何将外部驱动器连接到Android手机或平板电脑? -  Minitool如何将外部驱动器连接到Android手机或平板电脑? - MinitoolApr 16, 2025 am 12:45 AM

是否想使用外部驱动器来扩展手机的存储空间?可以这样做。此php.cn帖子向您展示了如何将外部驱动器连接到手机的指南。此外,如果您需要从外部驱动器中恢复数据,则可以尝试PHP

如何修复键盘在Windows上键入多个字母如何修复键盘在Windows上键入多个字母Apr 16, 2025 am 12:44 AM

您是否曾经遇到过,当您使用键盘工作时,它一次打字了多个字母?如何修复键盘在计算机上键入多个字母? PHP.CN将通过完整的指导来解决问题。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),