AutlLisp版本:Visual LISP 2024 (zh)
插入块的方法有三种:
示例:
代码块
ts
自动换行
复制代码
1
(command "_.-insert" #sBLK (list 0 0 0) #rXSCALE #rYSCALE #degR)
复制成功
其中:
[command]为AutoLisp调用AutoCAD操作的命令。
["_.-insert34;]表示CutoCAD插入块命令,其前面的 "-34; 表示调用该命令的命令行模式,再前面的 "_.34; 表示调用该命令的原始定义,而非各种再定义、重定义。
[#sBLK]为字符串,表示块名。这里有如下三种情况:
1)逻辑上首先调用图形文件中存在的块名,若图形文件中之前不存在该块的定义,则会从AutoCAD设定(options)中的“支持文件搜索路径”中搜索图形文件名“#sBLK.dwg”,将目标图形文件中的图形作为块插入当前图形文件,并在当前图形文件中添加块定义“#sBLK”。
若要指定目标图形文件“#sBLK.dwg”被作为块插入时的插入基点,请使用如下方式:

设置图形文件被作为块插入时的基点
若不指定基点,则默认以原点作为基点。可以使用"_.base34;命令查询所设定的基点值。
2)“#sBLK”可以为路径,则会从指定路径把目标图形文件作为块插入当前图形文件。
若目标图形文件在AutoCAD“支持文件搜索路径”内,可以采用如下语句获得路径:
代码块
ts
自动换行
复制代码
1
(findfile "./Folder/#sBLK.dwg")
复制成功
3)可以在块名前加 “*”,此时,会插入块分解后的图形,如果图形文件中之前没有该块的定义,则会插入搜索到的图形文件,但不作为块插入,也不会添加该块的定义。
[(list 0 0 0)]为插入点坐标。
[#rXSCALE #rYSCALE]为实型数,表示所插入图块x拉伸比例和y拉伸比例。
[#degR]为旋转角度<角度制>。
示例:
代码块
ts
自动换行
复制代码
1234567891011121314
(defun finsertblk (#sBLKNAME #layer #pt #ar #rSX #rSY #rsZ / #listE)
(setq #listE (list '(0 . "INSERT") ;块图元类型声明
(cons 2 #sBLKNAME) ;块名
(cons 8 #layer) ;图层
(cons 10 #pt) ;插入点
(cons 41 #rSX) ;X比例
(cons 42 #rSY) ;Y比例
(cons 43 #rSZ) ;Z比例
(cons 50 #ar) ;旋转角度<弧度制>
(cons 70 0) ;块类型:0-最基本的块
) ;l
) ;s
(entmakex #listE)
) ;d
复制成功
该方法的好处:可以控制插入块的图层,可以获得块的图元名
该方法的缺点:图形文件必须已经有块定义,若没有,需要先通过insert方法生成定义:
代码块
ts
自动换行
复制代码
12
(command "_.-insert" #sBLK '(0 0 0) "" "" 0)
(entdel (entlast))
复制成功
先在原点插入一次块,生成了块定义,然后删除该块。
vla-InsertBlock命令,示例:
代码块
ts
自动换行
复制代码
123456
(defun finsertblk2 (#sBLKNAME #pt #ar #rSX #rSY #rsZ / )
(setq #acadObj (vlax-get-acad-object))
(setq #Doc (vla-get-ActiveDocument #acadObj))
(setq #ModelSpace (vla-get-modelspace #Doc))
(vla-insertblock #ModelSpace (vlax-3d-point #pt) #sBLKNAME #rSX #rSY #rsZ #ar)
) ;d
复制成功
其中:#ModelSpace为要插入的空间;#pt为插入点坐标;#sBLKNAME为块名;#rSX #rSY #rsZ为XYZ拉伸比例;#ar为旋转角度<弧度制>。
该方法的好处:代码行数少
该方法的缺点:图形文件必须已经有块定义,若没有,需要先通过insert方法生成定义;无法直接指定图层;要指定空间,涉及到vla命令。
注:若要指定图层,用setq保存vla-insertblock的结果(BlockReference),用vla-put-layer赋予图层。
该方法更详细内容请见官方文档“vla-insertblock”:
https://help.autodesk.com/view/OARX/2023/CHS/?guid=GUID-17F86FDD-B7FC-4F43-9F16-B4958F73A66D
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删