乐筑天下

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

[编程交流] 使用LISP/VB帮助拉取bloc

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 14:38:00 | 显示全部楼层 |阅读模式
我的处境很糟糕,我现在工作的办公室里的前cad人员决定,当他以不好的条件离开时,他会拿走所有的章节/细节,基本上是任何在下一个cad人员离开公司时对他有帮助的东西。
 
我正在寻找任何方法,从备份和服务器上留下的少数图形中提取任何/所有块,这样我就可以尝试恢复以前在这里的部分内容,而不必逐个文件,提取并重新保存每个部分和细节,以帮助重建曾经在这里的部分内容。
 
提前感谢您提供的所有帮助!!!
 
杜威槌
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 14:45:08 | 显示全部楼层
这是可以做到的。您是否查看了一些旧的DWG,发现存在块,或者它们被插入并分解了
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 14:47:46 | 显示全部楼层
有些爆炸了。但也有一些图纸没有爆炸,也没有完好无损。
 
提前谢谢。
 
DM公司
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 14:51:01 | 显示全部楼层
让我看看我能做些什么
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:56:15 | 显示全部楼层
我在想形式:
 
但是我不知道如何对“wblock”行进行编码如果这有任何帮助。。。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 14:59:29 | 显示全部楼层
你是怎么运作的?
我对VBA或LISP一点都不熟悉。
 
谢谢
DM公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:01:31 | 显示全部楼层
要运行LISP文件,请执行以下操作:
[列表=1]
  • 将发布的代码复制到新的记事本文档中。
  • 保存文档-确保将“.txt”更改为“.lsp”,并将下拉框更改为“所有文件”,而不是“文本文档”
  • 打开ACAD
  • 在命令行中键入“\u appload”,或单击工具,加载应用程序
  • 选择保存的文件
  • 单击“加载”
  • 在命令提示符中键入LISP代码中指定的语法在我的Lisp程序中:“bs”或“blocksave”。
  • LISP将运行
  • 作为旁注,您可以单击“加载应用程序”对话框中的“启动套件”,并将LISP添加到套件中,使其在每次加载ACAD时加载。
    很明显,我的LISP不会加载或运行,因为它缺少一行代码——正如代码上标记的那样。
     
    但是,如果有其他人的意见,我相信我们能找到解决方案。
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 15:06:29 | 显示全部楼层
    在internet上找到此LISP(未测试):
     
    1. ;;;==WBLKALL.LSP=====================================================
    2. ;;;  (C) 1993, Chris Bryant (CIS 72570,1012)
    3. ;;;
    4. ;;;  This program WBLOCKs all block definitions in a drawing.
    5. ;;;  Features include:
    6. ;;;
    7. ;;;  1.  Writes the block to the current directory.
    8. ;;;
    9. ;;;  2.  Prompts user for new name if the block name is
    10. ;;;      more than 8 characters long.
    11. ;;;
    12. ;;;  3.  If a .DWG file with the same name already exists,
    13. ;;;      WBLKALL will ask permission first before overwriting.
    14. ;;;
    15. ;;;==================================================================
    16. (prompt "\nWBLKALL.LSP - (C) 1993, Chris Bryant\nLoading ...")
    17. ;---------------------------------------------------------------------
    18. (defun C:WBLKALL (/ EXPR CNT BLK_NAME BLK_LIST WBLOK WBLK L YN)
    19. (setq EXPR (getvar "expert"))
    20. (setvar "EXPERT" 4)
    21. (setq CNT 0)
    22. (setq BLK_NAME (cdr (assoc 2 (tblnext "BLOCK" T)))
    23.        BLK_LIST (list BLK_NAME))
    24. (prompt "\nBuilding block list ...")
    25. (while (/= BLK_NAME nil)
    26.    (setq BLK_NAME (cdr (assoc 2 (tblnext "BLOCK"))))
    27.    (if (/= BLK_NAME nil)
    28.      (setq BLK_LIST (cons BLK_NAME BLK_LIST))
    29.    )
    30. )
    31. (prompt "\nWriting blocks .")
    32. (while (/= BLK_LIST nil)
    33.    (setq WBLOK (car BLK_LIST)
    34.          BLK_LIST (cdr BLK_LIST)
    35.    )
    36.    (if (/= (substr WBLOK 1 1) "*")
    37.      (progn
    38.        (setq CNT (1+ CNT))
    39.        (princ ".")
    40.        (if (> (strlen WBLOK)
    41.          (progn
    42.            (setq WBLK WBLOK)
    43.            (prompt (strcat "\nBlock name " WBLOK " is too long!"))
    44.            (setq L T)
    45.            (while (= L T)
    46.              (setq WBLK (getstring
    47.                         "\nEnter new block name, 8 characters or less: "
    48.                         ))
    49.              (if (or (> (strlen WBLK)  (= WBLK ""))
    50.                    (prompt "\nInvalid response.")
    51.                    (setq L nil)
    52.              )
    53.            )
    54.            (if (/= BLK_LIST nil) (prompt "\nWriting blocks ."))
    55.          )
    56.          (setq WBLK WBLOK)
    57.        )
    58.        (if (equal (open (strcat WBLK ".DWG") "r") nil)
    59.            (command "wblock" WBLK WBLOK)
    60.            (progn
    61.              (initget 1 "Yes No")
    62.              (setq YN (getkword
    63.                          (strcat
    64.                            "\nFile " WBLK ".DWG exists. Replace? <Y/N> "
    65.                          )))
    66.              (if (equal YN "Y") (command "wblock" WBLK WBLOK))
    67.              (prompt "\nWriting blocks .")
    68.            )
    69.        )
    70.      )
    71.    )
    72. )
    73. (setvar "EXPERT" EXPR)
    74. (prompt "\n ")
    75. (prompt "\nWBlocking complete.")
    76. (princ)
    77. )
    78. ;----------------
    79. (prompt " done.")
    80. (princ)

     
    可能会有帮助。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 15:10:33 | 显示全部楼层
    哈哈,我的尝试是:
     
    批评非常受欢迎——代码中有很多假设——对此并不满意——但它确实起到了作用
     
    1. 2

     
    让我开始
     
    可能的问题:
     
    [列表]
  • 如果计算机上有名为blk01或blk13的文件,这些文件可能会被覆盖。
  • 不确定文件将保存在哪里。
  • 基点始终是原点。
    可能还有很多问题需要提出。。。
  • 回复

    使用道具 举报

    1

    主题

    6

    帖子

    5

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 15:14:39 | 显示全部楼层
    非常感谢你!
     
    它正在工作。不幸的是,他似乎爆发得更多
    比我原先想象的要多。
     
    它不会从文件中提取很多块。
     
    在50多个文件中,我已经设法拉出了大约7个街区。
    其中大多数是标题和其他信息
    不会有帮助的。
     
    如果任何人有任何章节/详细信息,他们可以发送
    以我的方式,我将不胜感激!!
     
     
    谢谢你!
     
    DM公司
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-5 00:04 , Processed in 0.333634 second(s), 72 queries .

    © 2020-2025 乐筑天下

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