如何进行CAD Autolisp的二次开发?
请问CAD autolisp二次开发怎么弄啊
;;;灯管T4
(defun C:T4206()
用户输入T4206执行命令(不带任何参数)以加载并立即运行后续的程序。
(graphscr)
(setvar "cmdecho" 0)
;;;命令行显示关闭
(setq P1(getpoint "n请指定灯管(T4 206.5mm 6W)放置位置:"))
;;;设定一个插入点P1,返回点
(command "-INSERT" "D:/YZ_ZCAD/TK/DGT/T4206.dwg" "S" "1" P1 "0")
在执行CAD标准命令时,可以在命令前面加上"-"(参考CAD命令)来直接在命令行中执行命令,而不使用对话框。
在程序执行时,不能使用对话框来进行操作,可以在命令前加上“-”符号或使用变量FILEDIA来控制。还有一些特殊情况可以使用其他方式来进行控制。
(setvar "cmdecho" 1)
;;;命令行显示打开
(princ)
;;;结束语
)
;;;将以上文字放到LISP里面以任何英文名命名保存
在保存完文件后,我们可以在CAD中使用AP加载该文件。
;;;执行T4206命令执行插入命令,(确;认文件的存在)
就我个人看法而言,我认为VBA开发比LISP更为方便。学习LISP只需掌握基本的知识即可,不必深入学习。而LISP对话框开发(DCL)相比VBA要复杂得多。但是,有时候我们需要使用LISP函数来执行VBA函数。在AutoCAD的帮助文档中,有专门为开发人员提供的帮助,其中包含了很多详细的内容。很多编书人员也直接使用这些文档中的资源。我建议你可以去看一下,可能会对你有所帮助。
CAD二次开发修改LISP
(defun c:dz (/ oce1 n1 zn h1 sxh1 p1)
(vl-load-com)
(setq oce1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ms (vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object)) 这行代码用于在AutoCAD中获取当前活动文档的对象。它使用了AutoCAD的VLAX(Visual LISP ActiveX)接口,通过vlax-get-acad-object函数获取AutoCAD的应用程序对象,然后使用vla-get-activedocument方法获取当前活动文档的对象。这样我们就可以对当前文档进行各种操作,如访问其属性、修改对象等。这一行代码在AutoCAD的LISP编程中非常常见,并且在处理文档对象时非常
)
)
(if qz
()
(setq qz "")
)
(if hz
()
(setq hz "")
)
(initget "c")
(setq nqz (getstring (strcat "n请输入前缀/c(为空): " )))
(cond
((= nqz "c") (setq qz ""))
(T (if (/= nqz "")(setq qz nqz)))
)
(setq hz "")
(if (not (setq n1 (getint "n请输入起始顺序号 : ")))
(setq n1 1)
)
(setq zn 1)
(if (not (setq h1 (getreal "n请指定文字高度 : ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) hz))是一个常见的LISP表达式。在这个表达式中,qz、n1和hz是变量,通过拼接它们的值来创建一个新的字符串sxh1。 我将为您解释一下这个表达式的具体意思。 - qz是表示前缀的变量,它存储了一个字符串,例如"前缀"。 - n1是一个整数变量,它存储了一个数字值,例如10
(setq p1 (getpoint "n请指定插入点: "))
(while (/= p1 nil)
(setq p1 (vlax-3d-point p1))
(setq txt (vla-addtext
ms
sxh1
p1
h1
)
)
(setq
n1 (+ n1 zn)
sxh1 (strcat qz (itoa n1) hz)
p1 (getpoint "n请指定下一插入点: ")
)
)
(setvar "cmdecho" oce1)
(vlax-release-object ms)
(princ)
)
CAD二次开发LISP高手写个程序
改为如下即可:
(defun c:sdd ( dwg )
(setq dwg (getfiled "选择路径和文件名" "" "Dwg" 1))
(if (wcmatch dwg "* ####-##-## ##:##.dwg")
(setq dwg (substr dwg 1 (vl-string-search " " dwg)))
给定一个字符串变量`dwg`,我们可以使用`(setq dwg (substr dwg 1 (- (strlen dwg) 4)))`来对其进行处理。这行代码的作用是将`dwg`字符串的最后四个字符截取掉,并将结果重新赋值给`dwg`变量。这样做的目的可能是为了去除文件名或其他标识符中的文件扩展名。通过这行代码,我们可以实现对`dwg`字符串的修改,使其符合特定的要求或格式。
)
(setq dwg (strcat dwg " " (menucmd "M=$(edtime,$(getvar,date),YYYY-MO-DD HH:MM)") ".dwg"))
(command "_.saveas" "" dwg)
(princ)
)
以上是如何进行CAD Autolisp的二次开发?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Windows设置中的驱动器健康警告是什么意思?收到磁盘警告时该怎么办?阅读本php.cn教程以获取逐步说明以应对这种情况。

文章讨论了编辑Windows注册表,预防措施,备份方法以及不正确的编辑中的潜在问题。主要问题:系统不稳定和数据丢失的风险不当变化。

蒸汽云错误可能是由于许多原因引起的。要顺利玩游戏,您需要采取一些措施来删除此错误,然后才能启动游戏。 PHP.CN软件在这篇文章中介绍了一些最佳方法以及更多有用的信息。

您可能会看到“无法建立与Windows Metadata和Internet Services(WMI)的连接”。事件查看器的错误。 PHP.CN的这篇文章介绍了如何删除Windows元数据和Internet服务问题。

KB5035942更新问题 - 用户通常发生崩溃系统。受到的人们希望找到摆脱困境的出路,例如崩溃系统,安装或声音问题。针对这些情况,这篇文章由Php.cn Wil发表

本文介绍了如何在Windows中使用组策略编辑器(GPEDIT.MSC)来管理系统设置,突出显示常见的配置和故障排除方法。它指出gpedit.msc在Windows Home Edition中不可用,建议
