图形合并位置出错
附件是写的一个合并图形的文件的小程序,单个文件并入时,是没有问题的,可以附在我指定的位置;
但是选择多个文件时,就会出现问题,无法定位,请朋友们帮忙看一下,能否对程序进行优化;
感谢 !
nyistjz 发表于 2024-6-22 13:25
大佬,竖向排列是否可以?
我按您这个逻辑试了一个竖向排列,但没有成功。
(defun c:tt2 ()
"竖向合并dwg"
(setvar "cmdecho" 0)
(if (null DTU-MultiSelectDialog)
(command "netload"(findfile "DTU-MultiSelectDialog2013.dll"))
)
(setq ao(vlax-get-acad-object)
ad(vla-get-activedocument ao)
ms(vla-get-modelspace ad)
lst (DTU-MultiSelectDialog "请选择DWG文件" "*.DWG")
pt0 (getpoint "\n起始点<退出>: ")
)
(setq i 0)
(foreach l lst
(setq i(1+ i)
pt (vlax-3D-point pt0)
e1 (vla-InsertBlock ms pt l 1 1 1 0)
)
(vla-getboundingbox e1 'll 'ur)
(setq p1 (vlax-safearray->list ll)
p9 (vlax-safearray->list ur)
dy (- (cadr p9) (cadr p1))
)
(vla-move e1 (vlax-3D-point p1) (vlax-3D-point pt0))
(setq pt0 (polar pt0 (* pi 0.5) dy))
(princ (strcat "\n>>>第" (itoa i) "张:" l "\n"))
)
(princ (strcat "\n>>>操作结束,共合并" (itoa i) "张图。"))
(setvar "cmdecho" 1)
(princ)
) (defun c:tt ()
(setvar "cmdecho" 0)
(if (null DTU-MultiSelectDialog) (command "netload" (findfile "DTU-MultiSelectDialog2013.dll")))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-activedocument ao))
(setq ms (vla-get-modelspace ad))
(setqlst (DTU-MultiSelectDialog "请选择DWG文件" "DWG文件(*.dwg)|*.DWG" ))
(setq pt0 (getpoint "\n起始点<退出>: "))
(setq i 0)
(foreach l lst
(setq i(1+ i)
pt (vlax-3D-point pt0)
e1 (vla-InsertBlock ms pt l 1 1 1 0)
)
(vla-getboundingbox e1 'll 'ur)
(setq p1 (vlax-safearray->list ll)
p9 (vlax-safearray->list ur)
dx (- (car p9) (car p1))
)
(vla-move e1 (vlax-3D-point p1) (vlax-3D-point pt0))
(setq pt0 (polar pt0 0 dx))
(princ (strcat "\n>>>第" (itoa i) "张:" l "\n"))
)
(princ (strcat "\n>>>操作结束,共合并" (itoa i) "张图。"))
(setvar "cmdecho" 1)
(princ)
) xyp1964 发表于 2024-6-22 11:35
大佬,竖向排列是否可以?
我按您这个逻辑试了一个竖向排列,但没有成功。 捕捉关了,试下 cds15980954301 发表于 2024-6-22 07:00
捕捉关了,试下
试过了,不是这个原因 不能用吧,缺函数 muai2010 发表于 2024-6-22 09:44
不能用吧,缺函数
把附件中的NET文件加载一下就行了 xyp1964 发表于 2024-6-22 11:35
大神,请受我一拜! 感谢分享。
页:
[1]
2