乐筑天下

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

[编程交流] 删除所有布局选项卡

[复制链接]

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 11:00:16 | 显示全部楼层 |阅读模式
我在这里得到了这个lisp(Lee Mac),我试图从中删除“删除所有布局选项卡”部分,并将其放入一个新的lisp例程。但由于我刚刚开始学习lisps,我很难找到我到底需要做什么。请帮忙。
 
  1. (defun c:Brian (/ *error* uFlag)
  2. (vl-load-com)
  3. (defun *error* (msg)
  4.    (and uFlag (vla-EndUndoMark *doc))
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ))
  8. (setq *doc (cond (*doc) ((vla-get-ActiveDocument
  9.                             (vlax-get-acad-object)))))
  10. (setq uFlag (not (vla-StartUndoMark *doc)))
  11. (vlax-for blk (vla-get-Blocks *doc)
  12.    (if (eq :vlax-true (vla-get-isXref blk))
  13.      (if (vl-catch-all-error-p
  14.            (vl-catch-all-apply
  15.              (function vla-Detach) (list blk)))
  16.        (princ (strcat "\n** Error Detaching Xref: "
  17.                       (vla-get-name blk) " **")))))
  18. (vlax-for lay (vla-get-Layers *doc)   
  19.    (vla-put-Lineweight lay acLnWt025)
  20.    (vla-put-LayerOn lay :vlax-true))
  21. (vlax-for lay (vla-get-layouts *doc)
  22.    (if (not (eq "MODEL" (strcase (vla-get-Name lay))))
  23.      (vla-delete lay)))
  24. (vlax-for v (vla-get-views *doc)
  25.    (vla-delete v))
  26. (command "_.-scalelistedit" "_R" "_Y" "_E")
  27. (vl-Catch-All-Apply
  28.    (function
  29.      (lambda nil
  30.        (vla-Remove
  31.          (vla-GetExtensionDictionary (vla-Get-Layers *doc)) "ACAD_LAYERFILTERS"))))
  32. (if (setq states (layerstate-getnames t t))
  33.    (mapcar (function layerstate-delete) states))
  34. (repeat 3 (vla-PurgeAll *doc))
  35. (mapcar (function setvar)
  36.          '("CLAYER" "INSBASE"    "CANNOSCALE"    "LTSCALE" "MSLTSCALE" "PSLTSCALE")
  37.          '(  "0"     (0 0 0)    "1/4" = 1'-0""     1           1           1    ))
  38. (setq uFlag (vla-EndUndoMark *doc))
  39. (princ))
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 11:05:51 | 显示全部楼层
仅使用您从Lee的代码中提供的内容,以下几位是相关的
 
  1. (setq *doc (cond (*doc)
  2.          ((vla-get-ActiveDocument
  3.             (vlax-get-acad-object)))))
  4. (vlax-for lay  (vla-get-layouts *doc)
  5. (if (not (eq "MODEL" (strcase (vla-get-Name lay))))
  6.    (vla-delete lay)))

 
当做
 
杰米
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:11:48 | 显示全部楼层
此外,这可能会有所帮助
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 11:17:20 | 显示全部楼层
谢谢你们!
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 11:17:52 | 显示全部楼层
我还尝试将删除层状态命令合并到这个lisp例程中,但它并没有得到所有这些命令。知道为什么吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:23:06 | 显示全部楼层
  1.   (if (setq states (layerstate-getnames t t))
  2.    (mapcar (function layerstate-delete) states))
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 11:26:50 | 显示全部楼层
李·麦克
 
这就是我所拥有的,但当我运行lisp时,它并没有得到我在图形中创建的所有图层状态。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:32:40 | 显示全部楼层
不确定。我从来没用过分层状态
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 11:35:15 | 显示全部楼层
我也是,但我四处打听过,这似乎是人们告诉我要消除的事情之一,以使绘图文件大小更小。这是我进入层状态时看到的消息的快照。
120025qyhecu4ut4ctcytc.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:41:29 | 显示全部楼层
在命令行中尝试以下各项,并发布返回:
 
  1. (layerstate-getnames t t)

 
  1. (mapcar (function layerstate-delete) (layerstate-getnames t t))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:25 , Processed in 0.390009 second(s), 74 queries .

© 2020-2025 乐筑天下

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