明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2554|回复: 18

[提问] 关于INSERT插入块的问题

[复制链接]
发表于 2019-11-13 23:57 | 显示全部楼层 |阅读模式
3明经币
我想要的功能是插入指定DWG文件。这个DWG文件里面的图是只读并且随时更新的。我想要随着不断的更新,插入的图形也随着更新。有没有大佬帮帮忙呢?
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

把块名改一下就行了,怎么搞那么复杂的代码。 把12.dwg 放d盘根目录: (defun c:tt5 (/ bn) (setq bn "12") (if (/= (TBLSEARCH "BLOCK" bn) nil) (progn (while (/= (TBLSEARCH "BLOCK" bn) nil) (setq bn (strcat bn "^"))) (command "rename" "b" "12" bn))) (command "INSERT" "D:\\12.dwg" '(0 0 0) 1 1 0) (princ) )
发表于 2019-11-13 23:57 | 显示全部楼层
XTdwynij 发表于 2019-11-14 13:01
大佬可以否出手一下。上传的附件第一次用 sz的时候满足需求,但当12.dwg图改变时,再sz依然还是第一次插 ...

把块名改一下就行了,怎么搞那么复杂的代码。

把12.dwg 放d盘根目录:
(defun c:tt5 (/ bn)
        (setq bn "12")
        (if (/= (TBLSEARCH "BLOCK" bn) nil)
            (progn (while (/= (TBLSEARCH "BLOCK" bn) nil)
                                         (setq bn (strcat bn "^")))
                             (command "rename" "b" "12" bn)))
        (command "INSERT" "D:\\12.dwg" '(0 0 0) 1 1 0)
        (princ)
)

点评

这个确实好,但是块能不能跟随鼠标放在指定的位置。  发表于 2020-5-9 11:14

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
刚开始 + 1 + 5 这个确实好,但是块能不能跟随鼠标放在指定.

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-11-14 00:14 | 显示全部楼层
插入块时,块名称还是之前的,所以不能够随着图形更新面更新?解决方法是插入块时解决名称的问题?或者直接就插入图形完事?
回复

使用道具 举报

发表于 2019-11-14 10:53 | 显示全部楼层
为什么不用参照呢,不了解具体需求,但感觉参照应该能满足需要。
回复

使用道具 举报

 楼主| 发表于 2019-11-14 11:14 | 显示全部楼层
satan421 发表于 2019-11-14 10:53
为什么不用参照呢,不了解具体需求,但感觉参照应该能满足需要。

嗯,只要能把dwg的图拿出来就可以。不管赚块还是外部参照。我上传的附件就是插入块。但不能满足需求。
回复

使用道具 举报

 楼主| 发表于 2019-11-14 11:31 | 显示全部楼层
satan421 发表于 2019-11-14 10:53
为什么不用参照呢,不了解具体需求,但感觉参照应该能满足需要。

不行,我想要的需求就是把A图中的图形拿到B图中使用。大小尺寸不变。外部参照好像只能参照使用。
回复

使用道具 举报

发表于 2019-11-14 12:16 | 显示全部楼层
改块名=>删旧块=>全部基点重新插入新快
回复

使用道具 举报

 楼主| 发表于 2019-11-14 12:18 | 显示全部楼层
我用cad操作就是,打开a图纸(这a图纸名字不变,内容会随时变),复制里面所有的图形。放到当前打开的图纸中。附件中的lisp文件只能调用一次,调用第二次因为块名称的原因,即使a图纸改变了,调用的图形不会改变。功能很简单呀。就是调用a图纸的图形,大小不变,到当前打开的图纸。
回复

使用道具 举报

 楼主| 发表于 2019-11-14 13:01 | 显示全部楼层
start4444 发表于 2019-11-14 12:16
改块名=>删旧块=>全部基点重新插入新快

大佬可以否出手一下。上传的附件第一次用 sz的时候满足需求,但当12.dwg图改变时,再sz依然还是第一次插入的图。不能更新。我想要每次调用sz时,调用的都是12.dwg的图形。不管插入的是块还是别的。
回复

使用道具 举报

发表于 2019-11-14 13:24 | 显示全部楼层
(defun c:sz()
(vl-load-com)
(setq old (getvar "cmdecho")
       path (strcat (Vlax-Get (Vlax-Get-Acad-Object) 'Path) "\\Support")
       files (vl-directory-files path "*.dwg" 1)
  )
(setvar "cmdecho" 0)
(command "_undo" "be")
(setq wjh "12")
(setq wjm (strcat path "\\" wjh ".dwg"))
(if (member (strcat wjh ".dwg") files)
(progn
   (command "_insert" "*12" '(0 0 0) "" "" "")
   (command "_zoom" "e")
)
(alert (strcat wjm ", 不存在!"))
)
(command "_undo" "e")
(setvar "cmdecho" old)
(princ)
)

插入块自动炸开 就不会因为名称一样就一样的块。

评分

参与人数 1明经币 +1 收起 理由
XTdwynij + 1 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-10 22:07 , Processed in 0.157649 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表