このページについて
 
このページは、mura's homeAutoCAD掲示板 で、当方の発言(書込み)がある以下の掲示板の内容です。
http://www.mura.sh/bbs/wwwbbs.cgi?print+200803/08030143.txt
 
タイトルおよび質問内容は上記より引用しています。
 
引用した質問内容は、バックカラーが

   

となっています。
 
当方の発言は、バックカラーが

   

となっています。
 
その他の著作権者の掲載許可を得ていない発言内容は削除(リンクを除く)しています
 
また、当方では、削除部分の正当な著作権保持者を判断出来ませんので、
ご連絡を頂いても、復活させることは出来ません。ご了承下さい。
 
 
掲示板の著作権について
 
掲示板への匿名の書き込みであっても、著作権(著作権法)で保護されています。
また、判例(確定した判決)もあります。
 
裁判所 判例検索システム

ホテルジャンキーズ事件

知的財産裁判例
知的財産裁判例
平成13(ワ)22066  著作権 民事訴訟
平成14年04月15日 東京地方裁判所
全文 控訴
付帯控訴
知的財産裁判例
知的財産裁判例
平成14(ネ)2887  著作権 民事訴訟
平成14年10月29日 東京高等裁判所
全文 確定

ただし、あらかじめ取り決めがある場合は、その取り決めが優先します
 ※たとえば、OKWave の掲示板 (利用規約/第10条(投稿内容の利用権))

 
 
 

スクリプトでブロックのみ分解したい。

おーよー 2008/03/28(金) 18:16:59

いつも参考にさせて頂いています!

スクリプトメーカーを使って、外部参照した図枠をバインド、分解、パージの作業をしています。
バインドまではちゃんと動くのですが、分解で要素選択をする時に止まってしまいます。

ちなみにこのような・・・

BINDTYPE
1
_xref
B
*
_explode
P

_PURGE
_ALL
*
N

_Qsave
close

普通に図面を開いて手入力だとうまくいきます。
_explodeの要素選択で「P」がダメなのでしょうか・・・。

どなたかご存知の方、アドバイスをお願いします。
図面が500以上あるので何とか解決したいと思っています。
よろしくお願いします。

おーよー 2008/03/28(金) 18:29:28

著作権者の許可を得ていないため削除
 
 
 
 
 
 

皐月 2008/03/28(金) 22:33:23

著作権者の許可を得ていないため削除
 
 
 
 
 
 

おーよー 2008/03/31(月) 09:15:46

著作権者の許可を得ていないため削除
 
 
 
 
 
 
 
 

kamegai [HOMEPAGE] 2008/03/31(月) 15:14:08

>今日中に終わらせなければならないので、
今回は間に合わないかもしれませんが、、、

R版をご使用のようなので、
バインドと分解を、VBAで処理させる方法はいかが?

VBA部分のエラー処理をしていませんので、
必ずデータのバックアップを取った上でご利用下さい。

スクリプトメーカーの本文
;
_Open
"[FULLNAME]"
_Zoom _Extents
;-------------------
;外部参照した図枠のバインドと分解
-vbarun XRefBind_and_Explode
;-------------------
-PURGE
_ALL
*
_No
_Qsave
close


VBA
Option Explicit
' 開発・動作確認 2000i
'XRefBind_and_Explode
Public Sub XRefBind_and_Explode()
Dim obj             As AcadObject
Dim tempBlock       As AcadBlock
Dim I               As Long
Dim XRefBindobjs()  As Variant
Dim explodedObjects As Variant
    On Error GoTo Err:
    ReDim Preserve XRefBindobjs(0 To 0)
    For Each tempBlock In ThisDrawing.Blocks
        If Not (tempBlock.IsLayout) And tempBlock.IsXRef Then
        '外部参照ブロック
            '外部参照定義のバインド
            '  FALSE:シンボル名の先頭には何も付きません
            '  TRUE :<blockname>$x$ がシンボル名の先頭に付きます
            '-------------------------------------------------
            ThisDrawing.Blocks.Item(tempBlock.Name).Bind False
            ReDim Preserve XRefBindobjs(0 To UBound(XRefBindobjs) + 1)
            'シンボル名(ブロック名)を格納
            XRefBindobjs(UBound(XRefBindobjs)) = tempBlock.Name
        End If
    Next
    If UBound(XRefBindobjs) > 0 Then
        'モデル空間全体を検索
        For Each obj In ThisDrawing.ModelSpace
            If TypeName(obj) = "IAcadBlockReference" Then
            'ブロック参照
                For I = 1 To UBound(XRefBindobjs)
                    If obj.Name = XRefBindobjs(I) Then
                    'バインドしたシンボル名と一致
                        '構成要素オブジェクトに分解
                        explodedObjects = obj.Explode
                        'ブロックを削除
                        obj.Delete
                        Set explodedObjects = Nothing
                        Exit For
                    End If
                Next
            End If
        Next obj
    End If
Exit Sub
Err:
    Resume Next
End Sub
 

カセットテープ 2008/03/31(月) 20:43:31

著作権者の許可を得ていないため削除
 
 
 

kamegai [HOMEPAGE] 2008/03/31(月) 21:33:53

>バインド後Entlastでの選択は出来るのでしょうか?
希望する図形名は取得出来ません。

Entlastで取得出来るのは1つの図形名のみですが、
外部参照の定義(パス)は1つでも、
普通のブロック同様に複数配置が可能だからです。

外部参照はブロックの特殊なもので、
普通のブロック同様に定義とブロック参照(インスタンス)があります。

バインドは、外部参照の定義(パス)を普通のブロック定義に変更する
(定義をファイル内部に取込む)のみで、
普通のブロックのブロック参照(インスタンス)に当たるデータは
すでに配置済みなので、
バインド前後で、Entlastで得られる図形名に変わりはありません。

nin 2008/03/31(月) 22:13:17

著作権者の許可を得ていないため削除
 

おーよー 2008/04/01(火) 13:21:25

著作権者の許可を得ていないため削除
 
 
 
 
 
 
 

おーよー 2008/04/01(火) 16:34:08

≪ 解決 ≫

著作権者の許可を得ていないため削除