大家好,今天给各位分享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))
选择对象: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’)))
(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.’或’)
)
)
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/145047.html
用户评论
夏至离别
我一直在想学习AutoLISP来提升CAD工作效率,这款工具真是太棒了!这篇博文讲解得十分详细,终于明白怎么自定义命令啦!
有8位网友表示赞同!
请在乎我1秒
AutoLISP的开发确实强大,不过对于新手来说入门有点难度啊。感觉更需要一些实际案例和练习,这样才能更好地掌握原理。
有13位网友表示赞同!
留我一人
作为一名CAD老司机,我一直使用AutoLISP来进行自动化操作,这篇博文回顾了许多基本知识,让我回味了当初学习的点点滴滴!
有12位网友表示赞同!
何必锁我心
对于我来说,AutoLISP最大的魅力就是可以节省大量重复劳动的时间,现在很多复杂命令都可以自己编程实现,效率大大提升了!
有11位网友表示赞同!
残留の笑颜
一直觉得AutoLISP太过于庞大复杂了,这款工具的目标用户应该更加局限于专业人士吧?普通CAD操作者可能不太需要这么强大的功能。
有14位网友表示赞同!
终究会走-
这篇博文讲得真不错,终于理清楚了AutoLISP的语法结构和常用函数。现在我尝试着用它编写简单的宏脚本,期待能够慢慢掌握它的奥秘!
有14位网友表示赞同!
淡写薰衣草的香
学习AutoLISP确实需要投入时间和精力,但最终收获是很值得的。 mastering this technology can truly revolutionize your workflow in AutoCAD!
有15位网友表示赞同!
炙年
希望博主以后可以分享更多实用的AutoLISP案例,比如如何实现特定的绘图功能或自动生成一些报表等,这样更有帮助!
有12位网友表示赞同!
陌颜幽梦
我对程序开发不太感兴趣,只是想提高CAD工作效率。其实AutoLISP的学习门槛还是比较高的,很多功能也显得过于复杂了。希望可以有一些更直观易用的替代方案!
有13位网友表示赞同!
?亡梦爱人
AutoCAD二次开发技术之 AutoLISP (6) 这标题很有吸引力,我一直在想找到一些更高级的方法来使用CAD,这篇博文或许能给我带来一些启发!
有15位网友表示赞同!
沐晴つ
AutoLISP 和 VBA 两种宏编程语言各有优缺点,AutoLISP的通用性和扩展性更强,但是学习成本也更高。对于初学者来说,或许可以先从简单的VBA开始入手。
有10位网友表示赞同!
信仰
这篇博文讲得专业且容易理解,对于想要深入学习AutoLISP的人来说非常实用。我已经在练习编写一些基础程序了,期待能够最终掌握这款强大的工具!
有6位网友表示赞同!
来自火星的我
AutoCAD 越来越智能化了,也希望这些自动化技术能更接地气,比如可以更方便地与其他软件进行数据互换,这样就能真正实现CAD工作流程的优化!
有16位网友表示赞同!
苏樱凉
作为一名学生学习cad主要用作设计和绘图任务,感觉AutoLISP这种高级功能暂时对我来说还没有很大的实际应用价值,不过以后说不定会用到呢!
有5位网友表示赞同!
残花为谁悲丶
AutoLISP 的开发技巧确实很厉害,可以实现很多定制化的功能。我之前也见过一些开发者运用 AutoLISP 完成了复杂的设计任务,真是令人惊叹!
有12位网友表示赞同!
艺菲
希望能看到更多关于 AutoLISP 应用案例的分享,比如在建筑设计、机械制造等领域的使用,这样能更好地理解它的应用范围和价值!
有10位网友表示赞同!
予之欢颜
AutoLISP 的学习难度较高,需要一定的编程基础才能入门。对于非专业人士来说,或许可以通过其他的 CAD 插件来实现一些简单的自动化功能。
有17位网友表示赞同!
繁华若梦
AutoCAD二次开发技术之 AutoLISP (6),这篇文章深入浅出地介绍了 AutoLISP 的基础知识。我一直在想学习 AutoLISP 来提高工作效率,这篇博文给了我很多启发!
有19位网友表示赞同!