AutoCAD二次开发技术AutoLISP(6)

2.8 文件处理技巧AutoLISIP处理文件和数据I/O的函数:close help read-linewrite-line findfile open se

大家好,今天给各位分享AutoCAD二次开发技术AutoLISP(6)的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

写行findfile 打开setfunhelp getfiled 读字符写字符

2.8.1 文件搜索

我们可以使用findfile函数来搜索特定的文件名,指定它要搜索的目录,或者使用当前CAD库路径作为搜索目录。示例:(setq refname ‘refc.dwg’)

(setq fil (查找文件引用名称))

(如果菲尔

(setq refname fil)

(princ(strcat ‘\n 找不到文件’ refname ‘。’))

调用getfiled 函数将在屏幕上显示一个对话框。

(getfiled 标题default_ext 标志)

getfiled 函数需要提供四个参数: · 标题· 隐藏文件名· 文件扩展名· 一个整数值(决定如何与所选文件交互)

注意:我们不能在对话框中使用它! dfil。此用法仅在命令行中有效。

2.8.2 访问帮助文件

示例:(帮助’morehelp.ahp’)

2.9 设备访问和控制(/)

2.10 ASE AutoLISP 接口(/)

*2.11 选择集的处理(管理图形数据库)

ssadd ssget ssmemb ssdel sslength ssnname

2.11.1 生成选择集——ssget函数

(ssget [模式] [pt1] [pt2] [pt_list] [filter_list])

生成选择集的方法有多种:

· 使用“最后一个”、“上一个”、“Windows”、“隐含”、“Wpolygon”、“Crossing Cpolygon”或“Fence”选项显式指定选定的对象。

·通过指定一个点。

·通过选择整个数据库。

· 提示用户选择对象

(1) 没有办法选择

如果ssget 不带任何参数,系统会提示我们选择对象。此时系统提示“选择objects:”。此时,我们可以通过CAD允许的任何方式进行响应。例如:Command:(setq s1(ssget))

AutoCAD二次开发技术AutoLISP(6)

选择对象:W

Firstcorner:指定窗口的第一个角点

其他corner:指定窗口的第二个角点

选择对象: 输入

列表返回:选择集:1

(2) 单点选择

如果ssget 函数调用指定一个点,则相当于在CAD 系统中的单个点处选择该目标。此时,返回的选择集仅包含一个选定的目标。例如Command:(setq s2 (ssget ‘(20 20)))

(3) 皮带模式选择“L” “P” “W” “C” “WP” “CP” “F” “X”

“我”

(4) 过滤功能

它由一对或多对点组成。 DXF 代码可用作过滤点对,但1(像素名称)、5(句柄)和大于1000(扩展图形元素数据)除外。

例如: (setq a1 (ssget ‘((0 . ‘TEXT’))))

(setq a2 (ssget ‘((0 . ‘LINE’))))

(setq a3 (ssget ‘L’ ‘((0 . ‘圆圈’))))

(setq a4 (ssget ‘P’ ‘((8 . ‘1’))))

(setq a5 (ssget ‘X’ ‘((0 . ‘圆圈’))))

如果其中一项由变量指定,则必须调用函数list 和cons 来构造过滤器序列。

(setq 名称’2′)

(setq s (ssget ‘X’ (列表(cons 8 名称))))

(4.1) 通配符模式: (单个字符)

@(任何单个字母)

#(任何单个数字)

·(字母和数字以外的单个字符)

*(匹配任何字符,包括空字符串)

[-](匹配字符范围内的字符)

如:[1-5]:1 2 3 4 5

示例: (setq ss (ssget ‘X’ ‘((8 . ‘*A’)))

AutoCAD二次开发技术AutoLISP(6)

(4.2)关系测试(用-4DXF代码表示)

运算符:=等于

!=、/=、不等于

少于

大于

=大于或等于

=小于或等于

*永远正确

位于

=位掩码

示例: (setq s (sssget ‘X’ ‘((0 . ‘CIRCLE’)(-4 . ”) (40 . 20))))

选择半径大于20 的所有圆以形成选择集。

(4.3) 逻辑分组

AND AND 与运算

或或或运算

异或异或异或运算

NOT NOT NOT 操作

示例:(setq s (ssget ‘X’

‘(

(-4.’或’)

(8.’1′)

(8.’2′)

(-4.’或’)

用户评论

AutoCAD二次开发技术AutoLISP(6)
夏至离别

我一直在想学习AutoLISP来提升CAD工作效率,这款工具真是太棒了!这篇博文讲解得十分详细,终于明白怎么自定义命令啦!

    有8位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
请在乎我1秒

AutoLISP的开发确实强大,不过对于新手来说入门有点难度啊。感觉更需要一些实际案例和练习,这样才能更好地掌握原理。

    有13位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
留我一人

作为一名CAD老司机,我一直使用AutoLISP来进行自动化操作,这篇博文回顾了许多基本知识,让我回味了当初学习的点点滴滴!

    有12位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
何必锁我心

对于我来说,AutoLISP最大的魅力就是可以节省大量重复劳动的时间,现在很多复杂命令都可以自己编程实现,效率大大提升了!

    有11位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
残留の笑颜

一直觉得AutoLISP太过于庞大复杂了,这款工具的目标用户应该更加局限于专业人士吧?普通CAD操作者可能不太需要这么强大的功能。

    有14位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
终究会走-

这篇博文讲得真不错,终于理清楚了AutoLISP的语法结构和常用函数。现在我尝试着用它编写简单的宏脚本,期待能够慢慢掌握它的奥秘!

    有14位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
淡写薰衣草的香

学习AutoLISP确实需要投入时间和精力,但最终收获是很值得的。 mastering this technology can truly revolutionize your workflow in AutoCAD!

    有15位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
炙年

希望博主以后可以分享更多实用的AutoLISP案例,比如如何实现特定的绘图功能或自动生成一些报表等,这样更有帮助!

    有12位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
陌颜幽梦

我对程序开发不太感兴趣,只是想提高CAD工作效率。其实AutoLISP的学习门槛还是比较高的,很多功能也显得过于复杂了。希望可以有一些更直观易用的替代方案!

    有13位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
?亡梦爱人

AutoCAD二次开发技术之 AutoLISP (6) 这标题很有吸引力,我一直在想找到一些更高级的方法来使用CAD,这篇博文或许能给我带来一些启发!

    有15位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
沐晴つ

AutoLISP 和 VBA 两种宏编程语言各有优缺点,AutoLISP的通用性和扩展性更强,但是学习成本也更高。对于初学者来说,或许可以先从简单的VBA开始入手。

    有10位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
信仰

这篇博文讲得专业且容易理解,对于想要深入学习AutoLISP的人来说非常实用。我已经在练习编写一些基础程序了,期待能够最终掌握这款强大的工具!

    有6位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
来自火星的我

AutoCAD 越来越智能化了,也希望这些自动化技术能更接地气,比如可以更方便地与其他软件进行数据互换,这样就能真正实现CAD工作流程的优化!

    有16位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
苏樱凉

作为一名学生学习cad主要用作设计和绘图任务,感觉AutoLISP这种高级功能暂时对我来说还没有很大的实际应用价值,不过以后说不定会用到呢!

    有5位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
残花为谁悲丶

AutoLISP 的开发技巧确实很厉害,可以实现很多定制化的功能。我之前也见过一些开发者运用 AutoLISP 完成了复杂的设计任务,真是令人惊叹!

    有12位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
艺菲

希望能看到更多关于 AutoLISP 应用案例的分享,比如在建筑设计、机械制造等领域的使用,这样能更好地理解它的应用范围和价值!

    有10位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
予之欢颜

AutoLISP 的学习难度较高,需要一定的编程基础才能入门。对于非专业人士来说,或许可以通过其他的 CAD 插件来实现一些简单的自动化功能。

    有17位网友表示赞同!

AutoCAD二次开发技术AutoLISP(6)
繁华若梦

AutoCAD二次开发技术之 AutoLISP (6),这篇文章深入浅出地介绍了 AutoLISP 的基础知识。我一直在想学习 AutoLISP 来提高工作效率,这篇博文给了我很多启发!

    有19位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/145047.html

(0)
小su的头像小su
上一篇 2024年9月19日 上午11:22
下一篇 2024年9月19日 上午11:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注