xj6019
发表于 2022-4-27 10:59:45
wutao8282 发表于 2022-4-27 10:38
CAD2005完整版!; 输入NM之后鼠标变成十字,点一下图纸任意卫视提示 :错误: Automation 错误 ...
换个高点的版本cad试试
vitalgg
发表于 2022-4-27 11:02:22
本帖最后由 vitalgg 于 2022-4-27 11:09 编辑
插件 到 http://atlisp.cn安装 @lisp,然后在应用管理中选中 @lisp块操作
会把 所有块都插到 图中 。如尺寸界线的块。
(defun @block:insert-all (/ pt0 pt1 ang dist blk)
(@:help (strcat "块操作 -> 插所有块\n"
" 将当前 dwg 中的所有块插入到从指定点和指定距离排列。"))
(if (and (setq pt0 (getpoint "请输入插入点:"))
(setq pt1 (getpoint pt0 "请输入相对插入点的距离和方向点:"))
(setq ang (angle pt0 pt1)
dist (distance pt0 pt1)))
(progn
(setq blk (tblnext "block" t))
(while blk
(block:insert (cdr (assoc 2 blk)) "" pt0 0 1)
(setq pt0 (polar pt0 ang dist))
(setq blk (tblnext "block"))))))
函数 block:insert 定义代码在http://atlisp.cn/function/block:insert
wutao8282
发表于 2022-4-27 11:10:22
本帖最后由 wutao8282 于 2022-4-27 11:14 编辑
vitalgg 发表于 2022-4-27 11:02
插件 到 http://atlisp.cn安装 @lisp,然后在应用管理中选中 @lisp块操作
这还是得一块一块插入啊?
wutao8282
发表于 2022-4-27 11:35:53
xj6019 发表于 2022-4-27 09:01
前提你要保证你的每个块的基点都在块上就正常,如果排出来顺序乱七八糟,就说明你自己的块有问题,和本代码 ...
CAD2009 完整版还是不行?老师您那边测试正常吗?
xj6019
发表于 2022-4-27 11:42:06
wutao8282 发表于 2022-4-27 11:35
CAD2009 完整版还是不行?老师您那边测试正常吗?
你上传个文件看看
xj6019
发表于 2022-4-27 11:47:05
我这边是正常的呀没发现问题呢
xj6019
发表于 2022-4-27 11:58:42
你再试试基本没变动,应该是没问题的呀
(defun c:NM (/ *acad* *acdocument* *blks* *doc* *docs* *ms* outlst p)
(vl-load-com)
(if(and
(setq
*ACAD*(vlax-get-acad-object)
*DOC* (vla-get-ActiveDocument *ACAD*)
*MS* (vla-get-modelspace *DOC*)
*BLKS*(vla-get-Blocks *DOC*)
)
(setq p (getpoint "\n请指定插入点:" ))
)
(mapcar '(lambda(a)
(if a
(progn
(vla-InsertBlock *MS*(vlax-3D-pointP) a 1. 1. 1. 0.)
(setq p(polar p 0 500))
(princ "\n\n")
)
)
)
(vlax-for obj*BLKS*(setq outlst (cons (vlax-get-property obj 'Name) outlst)))
)
)
(princ)
)
wutao8282
发表于 2022-4-27 12:31:23
本帖最后由 wutao8282 于 2022-4-27 12:35 编辑
xj6019 发表于 2022-4-27 11:58
你再试试基本没变动,应该是没问题的呀
(defun c:NM (/ *acad* *acdocument* *blks* *doc* *docs* *ms*...
可以了,谢谢大神,块间距不够,部分较大的块重叠一起了,能不能每行最多插入10个,超过10个的插入到下一行,行间距和列间距都是1200,万分感谢:victory:
vitalgg
发表于 2022-4-27 12:41:47
wutao8282 发表于 2022-4-27 11:10
这还是得一块一块插入啊?
一次性 插入dwg中的所有块。第一次输入点为起点,第二次输入点为距离 和方向
xj6019
发表于 2022-4-27 12:53:04
wutao8282 发表于 2022-4-27 12:31
可以了,谢谢大神,块间距不够,部分较大的块重叠一起了,能不能每行最多插入10个,超过10个的插入到下一 ...
自己捣鼓吧!!