对于在GQI软件中导入CAD时,在预览框无法预览到图可能有以下几种情况:
1.此CAD文件设计时采用块设计导致的。
解决办法:因为CAD文件设计时采用块设计导致无法导入到软件中的。用CAD软件打开该文件,“ctrl+A”选中所有构件图元,然后点击 菜单栏“修改”-“分解”功能,把图块炸开。然后保存文件,再次导入软件就可以了。
2.利用CAD软件打开该文件,点选图上一个图元,但显示该文件图元全部选中,这时打开菜单栏“修改”-“特性”选中图元,,此时显示该CAD图元是“多得插入块”导致的无法导入。(exm.lsp工具代码见下方)
解决方法:第一步:选中该“多重插入块”,在其属性里将行、列均改为“1";
第二步:在状态栏命令行里输入appload命令,点击回车,弹出对话框,如下图所示,加载“exm.lsp”,然后点击“关闭”;
第三步:在状态栏命令行里输入“exm”根据提示选中多重插入块;
第四步:运行“explode”分解命令就可以将 多重插入块分解了,然后保存文件再导入GQI软件就可以了。
3.CAD图文件太大,多达几十兆
CAD图文件一般不会有几十兆的文件,形成这种文件的原因有可能是由于CAD图有填充图或一些波形线条,当利用“分解”功能,将文件分解后,文件图元会暴涨,所以我们只要在CAD文件中分块选中图元,如果选择过程很慢,则表示选中图元中有很多图元,这时我们进行排查,找到这部分图元后,在图层管理中,将图元图层“关掉”,此时再将其它图元选中后复制到一个新建的工程中就可以了。
lsp源代码:
;;-------------------------------------------------------------
;;转换“多重插入块”为“普通块”。
(DEFUN C:exm ()
(setvar "cmdecho" 0)
(SETQ STM (car (ENTSEL "\n点取多重块")))
(while stm
(setq e (entget stm))
(setq stlx (cdr (assoc 0 e)))
(if (= stlx "INSERT")
(PROGN
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq r_dist_zm44 (assoc 44 e))
(setq c_dist_zm45 (assoc 45 e))
(setq e (subst (cons 44 0) r_dist_zm44 e))
(setq e (subst (cons 45 0) c_dist_zm45 e))
(setq e (subst (cons 70 0) r_zm70 e))
(setq e (subst (cons 71 0) c_zm71 e))
(setq e (subst (list 100"AcDbBlockReference") (list 100"AcDbMInsertBlock") e))
(entmake e)
(entdel stm)
))
(SETQ STM (car (ENTSEL "\n点取下一多重块")))
)
(setvar "cmdecho" 1)
)
;;--------------------------------------------------------------------
;;转换“普通块”为“多重插入块”
(DEFUN C:lockb ()
(setvar "cmdecho" 0)
(SETQ STM (car (ENTSEL "\n点取块")))
(while stm
(setq e (entget stm))
(setq stlx (cdr (assoc 0 e)))
(if (= stlx "INSERT")
(PROGN
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq e (subst (cons 70 1) r_zm70 e))
(setq e (subst (cons 71 1) c_zm71 e))
(setq e (subst (list 100"AcDbMInsertBlock") (list 100"AcDbBlockReference") e))
(entmake e)
(entdel stm)
))
(SETQ STM (car (ENTSEL "\n点取下一块")))
)
(setvar "cmdecho" 1)
)
;;--------------------------------------------------------------------


评论