ObjectArrangeAlongLine For AutoCAD VBA

<home>  <What's New>  <Civil Engineering>  <Civil Engineering DataLibrary>  <AutoCAD>  <SoftWare>  <Grallery>  <Link>  <Link2> 

 
 
 
 
 
 
 AutoCAD 2012以降には、
 パス オブジェクトに沿って配列複写させる「パス配列複写」が
 新しいコマンドとして追加されました。
 
 新たに追加されたコマンドおよび、変更されたコマンドについて
 http://tech.autodesk.jp/faq/faq/adsk_result_dd.asp?QA_ID=5763
 
 
 
 
 

 

 
   AutoCAD VBA
 線に沿ってオブジェクト(ブロック・文字・点など)を配置 
 プログラム
 

[NEW]
 2008/03/03 

 
 ObjectArrangeAlongLine 
For AutoCAD VBA
 Ver.2.62 Alpha Edition
  
 (開発中版)
  

 
 
 ダウンロード はこちらから
 
 

 
 詳細は下を参照してください
  
 操作マニュアルは、下記を参照してください
 

 
このサイトの内部書式更新 2015/12/08 
更新 Ver.2.62 Alpha Edition 2008/03/03 
更新 Ver.2.61 Alpha Edition 2008/02/27 
新規 暫定公開 Ver.2.60 Alpha Edition 2008/02/23 
一部訂正  2007/12/17 
公開告知  2007/12/13 

 
AutoCAD VBA 線に沿ってオブジェクト(ブロック・文字・点など)を配置 プログラム

ObjectArrangeAlongLine For AutoCAD VBA Ver.2.62  Alpha Edition
 

 
動画ファイル(wmv)は保存してご覧下さい
ブロック配置 [操作説明のページ OAAL_01A.wmv OAAL_01B.wmv]

 
文字配置 [操作説明のページ OAAL_02A.wmv OAAL_02B.wmv]

 
点配置と座標取得 [操作説明のページ]
 
  下記例は3回(青点・ピンク100m点・ピンク詳細点)の配置が必要

 

 
高度な利用例(球の表面に文字を浮かして配置)
  ただし2D基準線は別途必要です

 

 
 
 

必ずデータのバックアップを取った上で、ご利用下さい

 
 
 
 概要
   選択したオブジェクトの2点(挿入点と制御点)が線に沿うように繰り返して配置します
 
 配置したオブジェクトの編集指示(移動・回転・プロパティ修正等)も可能です
 ログ(座標値)の取得も可能です
 制御点が次のオブジェクトの配置(挿入)点となります
 
 
 動作条件
   AutoCAD 2000i (VBA のバージョン 6) 以降
注意
 2000i 以降のバージョン (2002,2004,2005,2006) は、動作確認していません
  2000i 以前のバージョン (2000,R14.01) ではご利用できません
   (AutoCAD 2000 は、VBA のバージョンが 5.0 の為ご利用できません)
   AutoCAD VBA のバージョン
   http://tech.autodesk.jp/faq/user/result_dd.asp?QA_ID=2524
   R14.01 以前のバージョンおよびLT版は、VBAが搭載されていないのでご利用できません
 
  
 動作方法(起動方法)
    [ツール]-[マクロ]-[プロジェクトをロード] で、解凍したファイル
 "ObjArrangeAlongLine_XXX.dvb" (XXXはバージョン番号)を読込み 後、
 [ツール]-[マクロ]-[マクロ]で、"Module_Main.OAAL" を実行して下さい
    ※ マクロを有効にして読込んで下さい
 
 
 作動確認(開発環境)
   Windows 2000 SP4 + IE6 + AutoCAD 2000i
 
 
 使用条件等  今後、使用条件は変更になる可能性があります
    このプログラムの著作権を放棄しませんが、商利用の場合等を除き、ご自由にお使い下さい
  ※ ObjectArrangeAlongLine For AutoCAD VBA そのもの、もしくは、
    ObjectArrangeAlongLine For AutoCAD VBA を添付したソフトや出版物を
    販売・配布(有償・無償を問わず、自己使用以外のご利用)する場合には、
    事前にご連絡下さい。可能な限り対応させさて頂きます
  ※ 会社内等、自己の業務で使用するケースついては、ご自由にお使い頂いてかまいません
   当方の許可無くこのプログラム  ObjectArrangeAlongLine For AutoCAD VBA を
 配布・転載することを禁止します
   
   
 免責事項
   このプログラムを使用して不都合、損害等が生じても一切責任を負いません
   
   
 サポート
    上記の免責事項は”サポートをしない”ということではありませんが、
 これにて一時開発中断するかもしれませんので、ご了承下さい。
 不具合のご連絡を頂ければ、可能な範囲で対応いたします 
    ※ ただし、サポートのお約束をするものではありません 
    ※ ご連絡は、こちら  までお願いいたします
   
   
 仕様  今後、仕様は変更になる可能性があります
  

基準線にできるオブジェクト

名称 オブジェクト名 EntityName TypeName 備考
直線 AcadLine AcDbLine IAcadLine  
円弧 AcadArc AcDbArc IAcadArc  
正円 AcadCircle AcDbCircle IAcadCircle  
楕円(弧) AcadEllipse AcDbEllipse IAcadEllipse  
ポリライン AcadLWPolyline AcDbPolyline IAcadLWPolyline ライトウェイト ポリライン
スプライン AcadSpline AcDbSpline IAcadSpline  
  
 ※ 3Dには対応していません
     直線で始終点のZ値が異なるものや、法線単位ベクトルが(X,Y,Z)=(0,0,1)以外の線には
     対応していません
    

配置できるオブジェクト (複数選択可)

名称 オブジェクト名 EntityName TypeName 備考
 Space(Line)
 空白/直線
(AcadLine) (AcDbLine) (IAcadLine) ※1 ※2
 Block
 ブロック
AcadBlockReference AcDbBlockReference  IAcadBlockReference ※3
 Text
 1行文字
AcadText AcDbText IAcadText ※4
 MText
 マルチテキスト
AcadMtext AcDbMText IAcadMText ※5
 Point
 点
AcadPoint AcDbPoint IAcadPoint  

配置オブジェクトにできる編集項目 (連続選択可)

編集項目 編集内容 細目 備考
Move 基準点移動   ※5
基準点を中心に移動   ※5
平行移動 相対距離(@)のみ  座標系を以下の2つから指定
 ・基準点を通るワールド座標系と
  平行な軸の座標系
 ・基準点を原点とするオブジェクト座標系
回転 X軸, Y軸, Z軸
縮尺   異縮尺はできません
Copy 複写    
Property 削除   ※5
画層   非表示フリーズ・ロック画層は選択不可
線種    
  True Color には対応していません
Log 座標値ログ表示・保存   3D(X,Y,Z), 2D(X,Y)
 3D(Y,X,Z), 2D(Y,X)
 黒字:AutoCAD(数学)座標系順
 赤字:測量座標系(読替)順

その他 (連続選択可)

編集項目 編集内容 細目 備考
Command コマンド文字列  SendCommand
 メソッドと同様
コマンドラインへ文字列(コマンド)を送信
   コマンドを終了させるために、
 文字列の最後に、スペースまたは
 改行を使ってください
Wait 中断   MsgBox表示または
 Timer, Sleep, 
 SetWaitableTimer 関数で
 中断
 
  
※1 空白(スペース)か線を配置するか選択制
※2 空白に負値も設定できますが、直線の配置は出来ません
※3 宿尺、制御点を設定できます
※4  1文字毎に(分割して)線に沿って配置も可能で、
 文字高さ・文字間隔・挿入基準点の指定も出来ます
 現在の文字スタイルで配置されます
 (文字幅は、幅計数を考慮して配置されます)
※5  設定が反映されない(現バージョンでは実装されていない)か、
 まったく動作確認出来ていません
 
※ 基準線上以外(延長線上)には配置できません
   
 
配置リストをファイルに保存、ファイルから読込が出来ます
 INIファイルを利用しています
  このプログラムのファイル"ObjArrangeAlongLine_XXX.dvb"  があるフォルダと同じ場所に
  同名で拡張子がINIの  "ObjArrangeAlongLine_XXX.ini"  があれば読み込みます
  プログラムの初期状態や動作内容を設定できます(XXXはバージョン番号)
   当方の指示無くしてむやみに値を変更しないでください
   
  
 制限など  今後、制限は変更になる可能性があります
   開発中バージョンなので、暴走防止対策(配置繰返数に上限)が設けてあります
現バージョンでは MText の配置は正確ではありません
”配置オブジェクトにできる編集項目”の一部は、ほとんど動作未確認です
 
 
  
 注意事項/現時点で確認できている不具合など
    動作確認が十分にできていない「開発中バージョン」です
 必ずデータのバックアップを取った上で、ご利用下さい
 幅を持たないオブジェクトのみを配置に選択しないでください
  (例) 点のみを配置に選択
SendCommand メソッド を多用しているため配置処理は遅く、PCの使用率もほぼ100%となりますので、他のソフトは起動していない状態でご利用下さい
 ご利用時のAutoCADの状態によっては、SendCommand メソッドや、VBA内部で使用している IntersectWith メソッド(交点取得)に失敗して正常に配置できない場合も有ります
  (その場合は、再度行うか、基準線を移動・回転すると回避できる場合もあります)
今後、仕様・制限等が変更になる可能性があります
 
 
  
 更新履歴
   2008/03/03 更新 Ver.2.62 Alpha Edition
   2008/02/27 更新 Ver.2.61 Alpha Edition
   2008/02/23 新規 暫定公開 Alpha Edition
   2007/12/13 公開告知
 
 
  
 
 
 
 
 
 

 
操作マニュアル
 
 
表示されるダイアログ(フォーム)解説

※ 画像は開発中のもので公開バージョンと異なるものもあります

メイン メニュー

 起動時初期メニュー
 
線を選択 配置の基準となる線を選択
 値を仮に格納する
 システム変数
 このプログラムで使用する
 ユーザーシステム変数を選択
起点  基準線のどちら側から
 配置するかを指示
挿入点に点  オブジェクトを配置した位置に
 点を作成
往復  起点に指示した反対側からも
 続けて配置
オフセット  オブジェクトの配置をスキップする
 基準線の始終点の区間
  ボタンクリックで画面上で指示可能
配置オブジェクト  リスト選択状態でダブルクリックすると
 そのリストを修正できます
保存・読込 配置リストの保存・読込
  ファイルは普通のテキスト形式で
  拡張子は"txt"
追加  配置リストへオブジェクトを追加
  追加ダイアログが表示されます
修正  配置リストを修正
  修正ダイアログが表示されます
上へ・下へ 配置リストを移動
チェック 将来バージョン対応予定
削除 選択されたリストを削除
▼(▲) 基準線の詳細を表示(非表示)
OK オブジェクト配置処理実行
  基準線を選択すると
  使用できるようになります
キャンセル 終了
 配置オブジェクトに入力した状態
 
配置オブジェクト入力例
 MenuSub
 
 配置処理中に表示されるサブメニュー
  
 プログラムを中断・中止の場合にクリック
 FileMenu
 
 配置リストの保存・読込をクリックで表示
  保存、読込、キャンセルを選択してください
 保存時の区切記号(文字)エラー
 
 区切文字入力
 
区切り文字を入力
区切文字入力キャンセル
 

配置リストへオブジェクト追加ダイアログ

 Space (Line)
 
 左端のオブションボタンから Space(Line) を選択 
長さ  空白(オブジェクトの配置をスキップ)に
 したい長さ
  負値も可能、ただしゼロは不可
方法  長さを基準線上の長さ、または
 直線距離で計測するか選択
最近接点  方法に”直線距離”を選択時、
 対象点が複数ある場合に
 現在の挿入点から基準線上で最も
 近接する点を選択
  チェックを外すと最遠点を選択
  基準線が閉じている場合にチェックを
  外すと全く配置されないケースが
  生じるので注意
直線配置 空白ではなく直線を配置
Move 基準点 Move で基準とする位置を選択
 
Block
 左端のオブションボタンから Block を選択 
ブロック リストに追加するブロックを選択
縮尺 挿入する尺度
ベース点 ブロックの挿入基点
制御点  基準線上にブロックが配置された後、
 制御点が基準線上になるように
 傾き(回転角)が決定されます
  
自動設定 ブロックの全幅
 相対座標指定
 ※
 ブロックの挿入基点を
 基準にした相対位置を
 3D座標の文字列で指定
 
  ※ブロック定義の原寸で指示します
    配置時に縮尺が考慮されます
最近接点  現在の挿入点から基準線上で最も
 近接する点を選択
  制御点は”直線距離”で検索されます
  チェックを外すと最遠点を選択
  基準線が閉じている場合にチェックを
  外すと全く配置されないケースが
  生じるので注意
Move 基準点 Move で基準とする位置を選択
 
  
   制御点が次のオブジェクトの配置(挿入)点となります 
 Text
 
 左端のオブションボタンから Text を選択 
文字列 文字列を入力
ベース点 1行文字列の挿入基点
制御点  基準線上に文字列が配置された後、
 制御点が基準線上になるように
 傾き(回転角)が決定されます
最近接点  現在の挿入点から基準線上で最も
 近接する点を選択
  制御点は”直線距離”で検索されます
  チェックを外すと最遠点を選択
  基準線が閉じている場合にチェックを
  外すと全く配置されないケースが
  生じるので注意
文字高さ 文字高さ
 1文字毎に
 傾きを設定
 チェックをつけると文字列が1文字毎に
 分解・傾きが考慮されて配置されます
  このチェックがつけられていても
  この後に編集指示されるMoveや
  Copy は文字列全体に作用します
文字間隔  文字間隔
  1文字毎に傾きを設定時のみ指定可能
Move 基準点 Move で基準とする位置を選択
 
   制御点が次のオブジェクトの配置(挿入)点となります 
 MText
 
 左端のオブションボタンから MText を選択 
文字列 文字列を入力
ベース点  文字列の挿入基点
制御点   基準線上に文字列が配置された後、
 制御点が基準線上になるように
 傾き(回転角)が決定されます(予定)
最近接点  現在の挿入点から基準線上で最も
 近接する点を選択
  制御点は”直線距離”で検索されます
  チェックを外すと最遠点を選択
  基準線が閉じている場合にチェックを
  外すと全く配置されないケースが
  生じるので注意
文字高さ 文字高さ
 文字列の幅
  制御点(オブジェクトの配置幅)に
  使用されます
Move 基準点 Move で基準とする位置を選択
 
※   現バージョンでは設定しても、挿入基点は常に左上
 制御点は右上となります
 文字列の配置には幅の値が使用されます
 
   制御点が次のオブジェクトの配置(挿入)点となります 
Point
 左端のオブションボタンから Point を選択 
選択以外に設定が必要な項目はありません
挿入点 点を配置する位置
Move 基準点 挿入点
 
 Point 以外に配置リストが無いと配置リスト全体で
 配置幅が無いため、配置作業が完了せず
 無限ループとなりますので、十分注意してください
現バージョンはAlpha Edition(開発中版)なので、
上記チェックをしていない替わりに、配置セットの
繰返し上限数(既定値1000)を設定してます
   万が一強制終了する場合には、サブメニュー
から終了してください
 Move
 
 左端のオブションボタンから Move を選択 
基準点移動  基準点を移動
  相対位置を3D座標の文字列で指定
基準点を中心
に移動
基準点を中心に移動
平行移動  配置オブジェクトを平行移動
  相対位置を 3D座標の文字列で指定
 
 オブジェクト座標系にチェックマークを
 つけるとオブジェクトの基準点を
 原点とするオブジェクト座標系で、
 チェックマークを外すと基準点を通る
 ワールド座標系と平行な軸の座標系と
 なります
 
 配置時のオブジェクト座標系
  X軸:線の接線方向が正
  Y軸:線の進行方向に向かって左が正
  Z軸:ワールド座標系と同方向が正
 回転(X)
 回転(Y)
 回転(Z)
 配置オブジェクトを選択軸で回転
  回転角はラジアンで指示
  オブジェクト座標系にチェックマークは
  上記平行移動に同じ
  πボタンクリックでラジアンの
  簡易計算ダイアログが表示されます
縮尺 配置オブジェクトの尺度を変更
 
  
 Radian
 
 上記のπボタンクリックで表示
 
  電卓起動ボタンクリックでWindows標準の電卓を
  起動できます
 
  このダイアログ内のラジアン計算は、
  10 進型 (Decimal)と同等程度出来ますが、
  オブジェクトの配置計算で使用するのは、
  倍精度浮動小数点数型 (Double)となります
 opy
 
 左端のオブションボタンから Copy を選択 
選択以外に設定が必要な項目はありません
挿入点 オブジェクトを複写する位置
Move 基準点 挿入点

     
Property
 左端のオブションボタンから Property を選択 
削除 配置オブジェクトを削除
 指定画層に
 移動
 配置オブジェクトの画層を変更
  非表示
  フリーズ・ロック画層は選択出来ません
線種を変更 配置オブジェクトの線種を変更
指定色に変更  配置オブジェクトの色を変更
  True Color には対応していません
 
    
 Log
 
 左端のオブションボタンから Log を選択 
 記録データと
 順序
 ログに記録するデータを選択
  
 3D(X,Y,Z)
 2D(X,Y)
AutoCAD(数学)座標系順
 3D(Y,X,Z)
 2D(Y,X)
測量座標系(読替)順
 
区切り文字 区切り文字を選択
接頭項目 各データの先頭に追加するデータ
接尾項目 各データの末尾に追加するデータ
 
    接頭項目、接尾項目は入力がなければ、
 追加データは記録されません
  

記録例1

記録データと順序  3D(X,Y,Z)
  AutoCAD(数学)座標系順
区切り文字 カンマ
接頭項目 CL
接尾項目 センター
記録されるログ CL,xxx.xxx,yyy.yyy,zzz.zzz,センター

記録例2

記録データと順序  2D(Y,X)
  測量座標系(読替)順
区切り文字 カンマ
接頭項目 (空欄)
接尾項目 (空欄)
記録されるログ yyy.yyy,xxx.xxx
 
 Log
 
 記録されたログの例
  
  オブジェクトの配置終了後に表示されます
 Command
    
 左端のオブションボタンから Command を選択 
  コマンドラインへ文字列(コマンド)を送信出来ます 
Command 文字列  SendCommand メソッドと同様の
 文字列(コマンド)
頻度 適用する頻度を選択

 Wait
 
 左端のオブションボタンから Wait を選択 
  プログラムを一時中断出来ます 
MsgBox 関数  ダイアログボックスにメッセージを表示し
 ユーザーの指示を待ちます
 Timer 関数
 Sleep 関数
 SetWaitableTimer 関数
 プログラムを指定秒だけ一時中断
  どの関数でもプログラムが中断するのは
  同じです
頻度 適用する頻度を選択