KLKSMILE 发表于 2022-7-6 10:46:59

将图纸拆分为单独的

你好我对Lisp程序这件事有点陌生,我想知道是否有人可以帮我完成一项我正试图完成的任务。
 
我有几个图表“图纸”(100+),它们都有相同大小的标题栏,都位于一个图形文件中(都在模型空间中)。每个“纸”在几行和几列中均匀隔开。当我设计我必须设计的东西时,把所有的图纸都放在一张图纸上更容易,这样我就可以快速地将MOD制作成多张图纸。当我必须提交最终设计时,我必须拆分图纸,并在图纸标题栏中为每个图纸命名
 
我是否可以使用LISP pgm实现这一点?
 
如果有,有什么建议吗?

Lee Mac 发表于 2022-7-6 10:52:49

如果所有内容都保留在边界内,则可以制作一个LISP,依次获取每个边界(按其块名获取),并创建一个选择集,包括边界和其中的所有内容(使用边界的边界框坐标),然后可以wblock每个选择集。
 
只是我的想法。
 

KLKSMILE 发表于 2022-7-6 10:55:51

那么,每张纸或边框是否需要有一个单独的块名?
你或任何人有任何类似的LISP,我可以使用作为一个例子?
 
如果所有内容都保留在边界内,则可以制作一个LISP,依次获取每个边界(按其块名获取),并创建一个选择集,包括边界和其中的所有内容(使用边界的边界框坐标),然后可以wblock每个选择集。

Lee Mac 发表于 2022-7-6 10:58:45

边界可以有所有相同的名称或单独的名称,这没有什么区别。
 
我目前没有一个LISP可以做到这一点,但如果你给我边界块的名称,我可以为你敲一个

KLKSMILE 发表于 2022-7-6 11:01:29

好吧,我想就叫它“border”-目前没有名字/边框只是由单行组成-但我可以创建一个名为border的块。

Lee Mac 发表于 2022-7-6 11:04:29

没问题-我将指示块的名称在LISP中的位置,因此您可以根据需要对其进行更改。

Lee Mac 发表于 2022-7-6 11:07:12

试一试:
 

;; Drawing Cutter, by Lee McDonnell 24.04.2009

(defun c:DwgCut (/ file path ss miPt maPt iSs fname)
(vl-load-com)
(setq doc (vla-get-ActiveDocument
             (vlax-get-acad-object))
       file (getfiled "Select Location for New Files" (if $def $def "") "dwg" 1))
(if (not (setq $def file)) (exit))
(setq path (vl-filename-directory file))
(if (setq ss (ssget "X" '((0 . "INSERT") (2 . "BORDER"))))
   (foreach Obj (mapcar 'vlax-ename->vla-object
                        (mapcar 'cadr (ssnamex ss)))
   (vla-getBoundingBox Obj 'miPt 'maPt)
   (setq winLst (mapcar (function
               (lambda (x) (vlax-safearray->list x))) (list miPt maPt))
         iSs (ssget "_C" (car winLst) (cadr winLst))
         fname (vl-filename-mktemp "Dwg~" path ".dwg"))
   (vla-wBlock doc fname (vla-get-ActiveSelectionSet doc)))
   (princ "\n<!> No Borders Found <!>"))
(princ))

 
以上内容适用于所有称为“边界”的区块。
 
写入的文件前缀为Dwg~

KLKSMILE 发表于 2022-7-6 11:10:40

哇-非常感谢!!!!
 
那个程序完全可以将所有文件分割开来。
 
所以现在我需要做的另一件事是正确命名每个文件。每张图纸的标题位于每张图纸底角的标题栏中。如果我将标题设为一个单独的层,还是?块,LISP是否可以根据每个边框中的标题w来命名每个工作表?如果没有,那么我想你可以在分割后单独打开每张纸,然后在标题栏中抓取名称,然后替换临时文件名?如果你能帮忙的话,我会再次非常感激!
 
 
再次感谢!

Lee Mac 发表于 2022-7-6 11:13:34

最好的方法是将图形标题作为标题栏上的属性。

KLKSMILE 发表于 2022-7-6 11:16:25

所以我必须制作一个单独的块,并为每个表命名它的属性?有没有其他方法可以帮我取这个名字?即使它已经分开了?问题是,添加新图纸等时,文件名经常更改。
页: [1] 2
查看完整版本: 将图纸拆分为单独的