请教如何分解dwg中特定名字的CAD块
<p>请教如何分解已有的CAD块<br/><br/>我想用程序代码实现:将一个DWG文件中有特定名字的CAD块进行分解即可。<br/>遇到的问题是:<br/><br/>1)使用分解.explode方法,其对象必须是块参照,而我只能通过遍历块名字得到块定义,请问通过块定义得到块参照,希望能有举例代码最好。</p><p>2)是否还有其他实现方法?<br/><br/>感谢。</p> <p>……<br/>(setq blkname (getstring "/n块名 :"))<br/>(if (setq ss (ssget "X" (list '(0 . "INSERT") (cons 2 blkname)))) (progn<br/> (setvar "QAFLAGS" 1)<br/> (command ".exploder" ss "")<br/> (setvar "QAFLAGS" 0)<br/>))<br/>……</p> <p>LS正解,最简练的方法</p><p>QAFLAGS这个系统变量经典,专门针对选择集炸开问题.</p> <p>版主您好:</p><p>1)我是在 excel 的 vba 中调用 ObjectDBX 写的程序,下面有一个语句无法通过,导致不能分解块,请帮忙,谢谢。<br/>2)如果下面的办法行不通,是否还有别的办法能在excel的vba 中调用ObjectDBX 实现已有块的分解?</p><p>Dim SrcObjDBX As Object<br/>Set SrcObjDBX = GetInterfaceObject("ObjectDBX.AxDbDocument.16")</p><p>DstObjDBX.Open DstCadFile</p><p>'................ 省略....</p><p>Dim block As AcadBlock<br/>Dim blockRef As AcadBlockReference<br/>For Each block In DstObjDBX.Blocks</p><p> If block.Name = "tk3z" Then<br/> <br/> Set blockRef = block ' 不知道下面的语句是否正确, <br/> blockRef.Explode ' 不知道下面的语句是否正确,:)<br/> blockRef.Delete ' 不知道下面的语句是否正确,请版主指教,:)<br/> blockRef.Update ' 不知道下面的语句是否正确,请版主指教,:)<br/> exit for<br/> end if</p><p><br/>next block </p> 非常抱歉,贴错了。重贴一次:<br/><br/><p>版主您好:</p><p>1)我是在 excel 的 vba 中调用 ObjectDBX 写的程序,下面有一个语句无法通过,导致不能分解块,请帮忙,谢谢。<br/>2)如果下面的办法行不通,是否还有别的办法能在excel的vba 中调用ObjectDBX 实现已有块的分解?</p><p>Dim DstObjDBXAs Object<br/>Set DstObjDBX= GetInterfaceObject("ObjectDBX.AxDbDocument.16")</p><p>DstObjDBX.Open DstCadFile</p><p>'................ 省略....</p><p>Dim block As AcadBlock<br/>Dim blockRef As AcadBlockReference<br/>For Each block In DstObjDBX.Blocks</p><p> If block.Name = "tk3z" Then<br/> <br/> Set blockRef = block ' 不知道下面的语句是否正确, <br/> blockRef.Explode ' 不知道下面的语句是否正确,:)<br/> blockRef.Delete ' 不知道下面的语句是否正确,请版主指教,:)<br/> blockRef.Update ' 不知道下面的语句是否正确,请版主指教,:)<br/> exit for<br/> end if</p><p><br/>next block</p>
页:
[1]