日以继夜 发表于 2019-4-24 13:32:16

【批量拼图】拼图工具按解块插入会旋转1度,是代码问题吗?

本帖最后由 日以继夜 于 2019-4-24 14:25 编辑

目前有大量CAD地形分块图(500+,总文件大小超过2G),原始数据较为混乱。

各图的坐标系都是统一的,但各图纸(units命令中的)插入时的缩放单位设置不同,无单位、米、毫米、英寸都有。

目前需要批量拼图工具拼合地形图,但由于缩放单位不一致,批量插入图块后比例不同,图块乱飞,要修正很麻烦。
补充:主图和cad设置中都设为无单位可以解决这问题~


最终目标:请问如何便捷实现该任务?

拟提出的中间需求:
1、如何批量对大量cad图纸设置统一的插入缩放单位,并保存。
插入时如果能强制无视缩放单位也是个办法,但我希望能对原始数据作统一修正,便于其他各种场景下的利用。


2、如何批量对大量cad图纸进行清理,并保存。
原始分图中均含有大量未清理对象。考虑数据规模较大,也希望对所有分图做一次清理,以便于后续操作减小卡死的概率。


3、后附的拼图工具,不知道为什么,设置项选择 1-按块插入 时正常工作,选择 2-解块插入 时,被插入对象会旋转一个角度,烦请检查下代码本身是否存在问题,又或者是窝自己这边的其他原因。


这里后附用到的拼图工具:
;; 原点批量插图块
(defun c:tt (/ pf path lst)
(defun sub (path lst mode / a name)
    (foreach a lst
      (setq name (strcat path a)
            name (if (= mode 0)
                   name
                   (strcat "*" name)
               )
      )
      (command "insert" name "0,0" "1" "1" "")
    )
)
(setq      dwg(getfiled "指定原文件路径中的一个图形文件:>" "*" "dwg" 8)
      path (strcat (vl-filename-directory dwg) "\\")
      lst(vl-directory-files path "*.dwg" 1)
      ukw(UKWORD 1 "1 2" "1-按块插入/2-解块插入" ukw)
)
(prompt "\n程序正在插入图幅,请等待...")
(cond      ((= ukw "1") (sub path lst 0))
      ((= ukw "2") (sub path lst t))
)
(princ)
)
(defun ukword (bit kwd msg def / inp)
(if (and def (/= def ""))
    (setq msg (strcat "\n" msg "<" def ">: ")
          bit (* 2 (fix (/ bit 2)))
    )
    (setq msg (strcat "\n" msg ": "))
)
(initget bit kwd)
(setq inp (getkword msg))
(if inp
    inp
    def
)
)


日以继夜 发表于 2019-4-24 16:25:10

mikewolf2k 发表于 2019-4-24 15:26
直接参考,然后合并到主文件是否可以。
另外考虑过合并后,主文件过大,打不开/跑不动么?

缩放单位问题,通过主文件和系统设置均设为无单位可解决。

我电脑上,主文件大小超过400M后高概率出现无法打开的问题,所以是分成多个200-300M“小”文件来处理的。

cad是2016版,打开文件时,内存占用超过5G后,基本就没法开了……

不知道有没有效率更高的版本,或者其他能支持大文件的CAD软件?

mikewolf2k 发表于 2019-4-25 09:56:15

ACAD平台问题,超过50M我就很担心打不开/跑不动了,你能开两三百兆,看来机器很强悍。
MS平台就优秀得多得多,几百兆轻轻松松,加上参考文件几个G的也开过。所以很多基建的单位都采用MS平台。更不用说MS的文件内容精简得多,同样内容模型占用的空间比dwg要少,再加上很多功能也比ACAD强大,除了“占有率不高”这一点外,完胜ACAD。

mikewolf2k 发表于 2019-4-25 09:48:07

ACAD平台问题,超过50M我就很担心打不开/跑不动了,你能开两三百兆,看来机器很强悍。
MS平台就优秀得多得多,几百兆轻轻松松,加上参考文件几个G的也开过。所以很多基建的单位都采用MS平台。更不用说MS的文件内容精简得多,同样内容模型占用的空间比dwg要少,再加上很多功能也比ACAD强大,除了“占有率不高”这一点外,完胜ACAD。

Andyhon 发表于 2019-4-24 15:23:42

未见调试用文件 (*.Dwg)
猜有可能是锁点模式干扰

mikewolf2k 发表于 2019-4-24 15:26:38

本帖最后由 mikewolf2k 于 2019-4-24 15:28 编辑

直接参考,然后合并到主文件是否可以。
另外考虑过合并后,主文件过大,打不开/跑不动么?

日以继夜 发表于 2019-5-10 16:14:17

mikewolf2k 发表于 2019-4-25 09:56
ACAD平台问题,超过50M我就很担心打不开/跑不动了,你能开两三百兆,看来机器很强悍。
MS平台就优秀得多得 ...

谢谢回复
您说的是指MicroSurvey CAD吗?

mikewolf2k 发表于 2019-5-10 16:20:39

日以继夜 发表于 2019-5-10 16:14
谢谢回复
您说的是指MicroSurvey CAD吗?

MicroStation, dgn 格式

日以继夜 发表于 2019-5-10 16:39:24

mikewolf2k 发表于 2019-5-10 16:20
MicroStation, dgn 格式

谢谢介绍,窝试用一下~!

言戲無軍 发表于 2019-9-8 22:54:18

(vl-cmdf "insert" name "0,0" "1" "" "")
页: [1] 2
查看完整版本: 【批量拼图】拼图工具按解块插入会旋转1度,是代码问题吗?