乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 19|回复: 19

[编程交流] 将图纸拆分为单独的

[复制链接]

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:52:49 | 显示全部楼层
如果所有内容都保留在边界内,则可以制作一个LISP,依次获取每个边界(按其块名获取),并创建一个选择集,包括边界和其中的所有内容(使用边界的边界框坐标),然后可以wblock每个选择集。
 
只是我的想法。
 
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:55:51 | 显示全部楼层
那么,每张纸或边框是否需要有一个单独的块名?
你或任何人有任何类似的LISP,我可以使用作为一个例子?
 
如果所有内容都保留在边界内,则可以制作一个LISP,依次获取每个边界(按其块名获取),并创建一个选择集,包括边界和其中的所有内容(使用边界的边界框坐标),然后可以wblock每个选择集。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:58:45 | 显示全部楼层
边界可以有所有相同的名称或单独的名称,这没有什么区别。
 
我目前没有一个LISP可以做到这一点,但如果你给我边界块的名称,我可以为你敲一个
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:01:29 | 显示全部楼层
好吧,我想就叫它“border”-目前没有名字/边框只是由单行组成-但我可以创建一个名为border的块。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:04:29 | 显示全部楼层
没问题-我将指示块的名称在LISP中的位置,因此您可以根据需要对其进行更改。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:07:12 | 显示全部楼层
试一试:
 
  1. [i][color=#990099];; Drawing Cutter, by Lee McDonnell 24.04.2009[/color][/i]
  2. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:DwgCut [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] file path ss miPt maPt iSs fname[b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  5.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.        file [b][color=RED]([/color][/b][b][color=BLUE]getfiled[/color][/b] [b][color=#ff00ff]"Select Location for New Files"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] $def $def [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"dwg"[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] $def file[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]exit[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] path [b][color=RED]([/color][/b][b][color=BLUE]vl-filename-directory[/color][/b] file[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#ff00ff]"BORDER"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.    [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
  11.                         [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.      [b][color=RED]([/color][/b][b][color=BLUE]vla-getBoundingBox[/color][/b] Obj [b][color=DARKRED]'[/color][/b]miPt [b][color=DARKRED]'[/color][/b]maPt[b][color=RED])[/color][/b]
  13.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] winLst [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  14.                [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] miPt maPt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.            iSs [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_C"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] winLst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] winLst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  16.            fname [b][color=RED]([/color][/b][b][color=BLUE]vl-filename-mktemp[/color][/b] [b][color=#ff00ff]"Dwg~"[/color][/b] path [b][color=#ff00ff]".dwg"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.      [b][color=RED]([/color][/b][b][color=BLUE]vla-wBlock[/color][/b] doc fname [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Borders Found <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

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

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:13:34 | 显示全部楼层
最好的方法是将图形标题作为标题栏上的属性。
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:16:25 | 显示全部楼层
所以我必须制作一个单独的块,并为每个表命名它的属性?有没有其他方法可以帮我取这个名字?即使它已经分开了?问题是,添加新图纸等时,文件名经常更改。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 16:55 , Processed in 0.626169 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表