明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 933|回复: 11

[提问] 图形合并位置出错

[复制链接]
发表于 2024-6-22 00:31:13 | 显示全部楼层 |阅读模式
附件是写的一个合并图形的文件的小程序,
单个文件并入时,是没有问题的,可以附在我指定的位置;
但是选择多个文件时,就会出现问题,无法定位,请朋友们帮忙看一下,能否对程序进行优化;
感谢 !

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-6-22 15:22:20 | 显示全部楼层
nyistjz 发表于 2024-6-22 13:25
大佬,竖向排列是否可以?

我按您这个逻辑试了一个竖向排列,但没有成功。

  1. (defun c:tt2 ()
  2.   "竖向合并dwg"
  3.   (setvar "cmdecho" 0)
  4.   (if (null DTU-MultiSelectDialog)
  5.     (command "netload"(findfile "DTU-MultiSelectDialog2013.dll"))
  6.   )
  7.   (setq ao  (vlax-get-acad-object)
  8.         ad  (vla-get-activedocument ao)
  9.         ms  (vla-get-modelspace ad)
  10.         lst (DTU-MultiSelectDialog "请选择DWG文件" "*.DWG")
  11.         pt0 (getpoint "\n起始点<退出>: ")
  12.   )
  13.   (setq i 0)
  14.   (foreach l lst
  15.     (setq i  (1+ i)
  16.           pt (vlax-3D-point pt0)
  17.           e1 (vla-InsertBlock ms pt l 1 1 1 0)
  18.     )
  19.     (vla-getboundingbox e1 'll 'ur)
  20.     (setq p1 (vlax-safearray->list ll)
  21.           p9 (vlax-safearray->list ur)
  22.           dy (- (cadr p9) (cadr p1))
  23.     )
  24.     (vla-move e1 (vlax-3D-point p1) (vlax-3D-point pt0))
  25.     (setq pt0 (polar pt0 (* pi 0.5) dy))
  26.     (princ (strcat "\n>>>第" (itoa i) "张:" l "\n"))
  27.   )
  28.   (princ (strcat "\n>>>操作结束,共合并" (itoa i) "张图。"))
  29.   (setvar "cmdecho" 1)
  30.   (princ)
  31. )
发表于 2024-6-22 11:35:25 | 显示全部楼层
  1. (defun c:tt ()
  2.   (setvar "cmdecho" 0)
  3.   (if (null DTU-MultiSelectDialog) (command "netload" (findfile "DTU-MultiSelectDialog2013.dll")))
  4.   (setq ao (vlax-get-acad-object))
  5.   (setq ad (vla-get-activedocument ao))
  6.   (setq ms (vla-get-modelspace ad))
  7.   (setq  lst (DTU-MultiSelectDialog "请选择DWG文件" "DWG文件(*.dwg)|*.DWG" ))
  8.   (setq pt0 (getpoint "\n起始点<退出>: "))
  9.   (setq i 0)
  10.   (foreach l lst
  11.     (setq i  (1+ i)
  12.           pt (vlax-3D-point pt0)
  13.           e1 (vla-InsertBlock ms pt l 1 1 1 0)
  14.     )
  15.     (vla-getboundingbox e1 'll 'ur)
  16.     (setq p1 (vlax-safearray->list ll)
  17.           p9 (vlax-safearray->list ur)
  18.           dx (- (car p9) (car p1))
  19.     )
  20.     (vla-move e1 (vlax-3D-point p1) (vlax-3D-point pt0))
  21.     (setq pt0 (polar pt0 0 dx))
  22.     (princ (strcat "\n>>>第" (itoa i) "张:" l "\n"))
  23.   )
  24.   (princ (strcat "\n>>>操作结束,共合并" (itoa i) "张图。"))
  25.   (setvar "cmdecho" 1)
  26.   (princ)
  27. )
 楼主| 发表于 2024-6-22 13:25:24 | 显示全部楼层

大佬,竖向排列是否可以?

我按您这个逻辑试了一个竖向排列,但没有成功。
发表于 2024-6-22 07:00:27 | 显示全部楼层
捕捉关了,试下
 楼主| 发表于 2024-6-22 09:20:43 | 显示全部楼层

试过了,不是这个原因
发表于 2024-6-22 09:44:11 | 显示全部楼层
不能用吧,缺函数
 楼主| 发表于 2024-6-22 11:32:30 | 显示全部楼层
muai2010 发表于 2024-6-22 09:44
不能用吧,缺函数

把附件中的NET文件加载一下就行了
 楼主| 发表于 2024-6-22 13:02:13 | 显示全部楼层

大神,请受我一拜!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:33 , Processed in 0.195004 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表