0

0

如何进行CAD Autolisp的二次开发?

王林

王林

发布时间:2024-01-04 10:18:30

|

1838人浏览过

|

来源于Excel办公网

转载

请问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)

;;;结束语

)

supplierShop供货商城系统
supplierShop供货商城系统

supplierShop供货商城系统是一个以springboot2+mybatis+mybatisplus+jwt+mpvue进行开发的完整的商城系统,系统包括小程序+API+管理理后台,非常适合学习或者二次开发使用,也可以直接使用。

下载

;;;将以上文字放到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)

)

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

738

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

88

2023.09.25

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

278

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

253

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

121

2025.08.07

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

256

2023.08.03

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

6

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号