makelovew123 发表于 2009-1-15 20:33:00

VB 中如何炸开图纸里所有块

VB 中如何炸开图纸里所有块

dbczhaoy 发表于 2009-1-15 21:22:00

<p>弄个块选择集,执行炸开命令</p>

makelovew123 发表于 2009-1-16 18:39:00

有代码么?希望大侠们提供一下

dbczhaoy 发表于 2009-1-17 09:40:00

<p>Public Sub ExplodeINSERT()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ssetObj As AcadSelectionSet<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ThisDrawing.SelectionSets.Count = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ssetObj = ThisDrawing.SelectionSets.Add("ssetObj")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ssetObj = ThisDrawing.SelectionSets(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssetObj.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim gpcode(0) As Integer<br/>&nbsp;&nbsp;&nbsp; Dim datavalue(0) As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gpcode(0) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datavalue(0) = "INSERT"<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim groupcode As Variant, datacode As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupcode = gpcode<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datacode = datavalue<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssetObj.Select acSelectionSetAll, , , groupcode, datacode<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim i As Integer<br/>&nbsp;&nbsp;&nbsp; Dim ENT As AcadEntity<br/>&nbsp;&nbsp;&nbsp; Dim Qty As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Qty = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To ssetObj.Count - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ENT = ssetObj(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENT.Explode<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Qty = Qty + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "炸开" &amp; Str(Qty) &amp; "个块!"<br/>End Sub</p><p><br/>试试看!</p>

makelovew123 发表于 2009-1-21 20:40:00

VB中如何使用?

dbczhaoy 发表于 2009-1-23 13:16:00

<p>请抽出点时间阅读CAD帮助文件,你的问题都可以解决。</p>

makelovew123 发表于 2009-2-11 21:05:00

大侠们帮帮忙

fjfhgdwfn 发表于 2009-2-12 11:07:00

<p>VBA代码转VB在网上找找吧!有很简单的方式的</p>

liuzpzp007 发表于 2012-7-12 16:01:59

本帖最后由 liuzpzp007 于 2012-7-12 16:08 编辑

为什么块复制在别的地方炸开啊

sscylh 发表于 2012-9-11 19:06:23

(defun c:lsp()
    (setq ss (ssget "x" '((0 . "insert"))))
    (setq i 0)
    (repeat (sslength ss)
         (setq en (ssname ss i))
         (command "explode" en)
         (setq i (+ i 1))
    )
)   
页: [1] 2
查看完整版本: VB 中如何炸开图纸里所有块