AutlLisp版本:Visual LISP 2024 (zh)
【资料图】
插入块的方法有三种:
command调用insert
entmake生成图元
vla扩展函数
一、command调用insert
示例:
其中:
[command]为AutoLisp调用AutoCAD操作的命令。
["_.-insert"]表示CutoCAD插入块命令,其前面的 "-" 表示调用该命令的命令行模式,再前面的 "_." 表示调用该命令的原始定义,而非各种再定义、重定义。
[#sBLK]为字符串,表示块名。这里有如下三种情况:
1)逻辑上首先调用图形文件中存在的块名,若图形文件中之前不存在该块的定义,则会从AutoCAD设定(options)中的“支持文件搜索路径”中搜索图形文件名“#sBLK.dwg”,将目标图形文件中的图形作为块插入当前图形文件,并在当前图形文件中添加块定义“#sBLK”。
若要指定目标图形文件“#sBLK.dwg”被作为块插入时的插入基点,请使用如下方式:
可以使用"_.base"命令查询所设定的基点值。
2)“#sBLK”可以为路径,则会从指定路径把目标图形文件作为块插入当前图形文件。
若目标图形文件在AutoCAD“支持文件搜索路径”内,可以采用如下语句获得路径:
3)可以在块名前加 “*”,此时,会插入块分解后的图形,如果图形文件中之前没有该块的定义,这样做也不会添加该块的定义。
[(list 0 0 0)]为插入点坐标。
[#rXSCALE #rYSCALE]为实型数,表示所插入图块x拉伸比例和y拉伸比例。
[#degR]为旋转角度<角度制>。
二、entmake生成图元
示例:
该方法的好处:可以控制插入块的图层,可以获得块的图元名
该方法的缺点:图形文件必须已经有块定义,若没有,需要先通过insert方法生成定义:
先在原点插入一次块,生成了块定义,然后删除该块。
三、vla扩展函数
vla-InsertBlock命令,示例:
其中:#ModelSpace为要插入的空间;#pt为插入点坐标;#sBLKNAME为块名;#rSX #rSY #rsZ为XYZ拉伸比例;#ar为旋转角度<弧度制>。
该方法的好处:代码行数少
该方法的缺点:图形文件必须已经有块定义,若没有,需要先通过insert方法生成定义;无法指定图层;要指定空间,涉及到vla命令。
该方法更详细内容请见官方文档“vla-insertblock”:
https://help.autodesk.com/view/OARX/2023/CHS/?guid=GUID-17F86FDD-B7FC-4F43-9F16-B4958F73A66D
关键词: