» AUTO CADのブログ記事

ちょこっと話題になっていたので・・・

寸法値の行間隔って変更したいですよね~!

オブジェクトプロパティ管理の中にに入ってて良いと思うんですけど、ないんですよね凸(–メ)

かなり前に作ったlispをアップ♪

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;      マルチテキスト行間隔の尺度指定コマンド       ;;;;;;;;;;
;;;;;;  vol.1  2007.11.06                                ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;注記
;;;マルチテキストのみ対応
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun C:my_dimHPS(/ ss1 n i G1 T1 T2)

;;エラー処理
  (defun *error* ($)
    (setvar "CMDECHO" 1)                                   ; CMDECHO は通常1にするべきなのでわざわざ保存しない
    (and $ (princ $))                                      ; エラー時は$にエラー内容が入っている
    (princ)
  )

;;変数変更
  (setvar "cmdecho" 0)                                     ;cmdechoを0(非表示)にする

;;行間隔を指定
  (setq G1 (getreal "\n行間隔を入力:"))                    ;行間隔をG1に代入

;;くり返し図形を選択し行間隔変更;
  (while                                                   ;whileの始まり
    (not (setq ss1 (ssget '((0 . "MTEXT,DIMENSION")))))    ;繰り返し条件設定(オブジェクトを選択)(notでTじゃない場合がくり返しにする)
    (princ "\nマルチテキストが選択されていません.")        ;コマンドバーに表示
  )                                                        ;end:while

  (setq n (sslength ss1))                                  ;選択されたオブジェクトの数をnに代入
  (setq i 0)                                               ;iに0を代入

  (while                                                   ;whileの始まり
    (< i n)                                                ;繰り返し条件設定(0個よりオブジェクトの数がある場合)
      (setq T1 (ssname ss1 i))                             ;図形名をT1に代入(条件と=な場合)
      (setq T2 (entget T1))                                ;図形情報リストをT2に代入

      (if (/= "MTEXT" (cdr (assoc 0 T2)))                  ;選んだオブジェクトがマルチテキストかどうか?の判定式
        (progn                                             ;/=MTEXTの場合(=DIMENSIONの場合)
          (setq T2 (subst (cons 41 G1) (assoc 41 T2) T2))  ;T2の行間隔をG1に変更しT2に代入
          (entmod T2)                                      ;T2のリストの更新
        )                                                  ;end:/=MTEXTの場合
        (progn                                             ;=MTEXTの場合
          (setq T2 (subst (cons 44 G1) (assoc 44 T2) T2))  ;T2の行間隔をG1に変更しT2に代入
          (entmod T2)                                      ;T2のリストの更新
        )                                                  ;end:=MTEXTの場合
      )                                                    ;end:if
    (setq i (1+ i))                                        ;iに1を足してiに代入
  )                                                        ;end:while

;;変数を変更前に戻す
  (setvar "cmdecho" 1)                                     ;cmdecho(コマンドバーの文字表示・非表示)を元にもどす

;;エラー処理
  (*error* nil)

;;終わり
  (princ)                                                  ;静かに終わる
)                                                          ;end

はみでた・・・(T^T)

測量座標系マスターへの道(2)の続きです(^^ゞ

 

測量座標系マスターへの道(3)では、

パンダちゃんが名前のついたUCSの登録にトライしてくれました!

 

ぶたちゃ~ん!!測量座標系マスターへの道(2)で作図したデータって、

原点(0,0)から遠いから精度が悪くなるし、作図の度にUCSを変更しないとダメなので、

とっても扱いずらいんですけど~ヽ(`_´#)ノ

 

あっ!気が付いた?(笑)

 

気が付くよっ!ヽ(`_´#)ノ

 

さすがパンダちゃんだね!

原点から遠いと精度が悪くなるって知っている人あまりいないよ!

 

だって、あるオブジェクトを@500の位置にコピーしたら、

500.1….とかになっるんだもん。

誰だって気が付くよっ!ヽ(`_´#)ノ

 

では・・・名前のついたUCSの登録をしましょう。

①バカでも・・・パンダちゃんでもわかる必殺オブジェクトを作成する。

②UCSを変更する。

③名前のついたUCSを登録する。

#①は、UCSがちょこっと苦手で・・・っと言う方にオススメです。

 

①~③の作成方法。

①必殺オブジェクトの作成

①-①.下記オブジェクトを作成しワールド座標の0,0の位置に配置します。

 ⇒

#これさえあれば、怖いもの無し!

 

②UCSの変更方法

下記のような範囲(白い線)を測量座標系マスターへの道(2)の手順で

エクセルからカキコさせた範囲としたとします。

今後は紫色の線を基準にカキコしていきたいと思っています。

(あくまでも例なので、原点からちょ~近いですが・・・気にしないで)

 

②-①.すべてのオブジェクトを選び回転する。

コマンド:_rotate

オブジェクトを選択~:ALL 

基点を指定:基点になる点をクリック(下図参照)

 

回転角度を指定 または ~:R

参照する~:左下図の基点をクリック、2 点目を~:右下図の点をクリック

 

#ある線を基準に回転したい時は、Rオプションは必須!

 

新しい角度を~:まっすぐになる位置をクリック(直行モードをONにすると楽ちんです)

#必殺オブジェクトも一緒に回転するので、この図形の原点の位置はここよ~って教えてくれる♪

 

②-②.すべてのオブジェクトを原点近辺に移動する。

コマンド:_move

オブジェクトを選択~:ALL 

基点を指定~:基点になる点をクリック(左下図参照)

目的点を指定~: 0,0

 ⇒

 #これで書きたいオブジェクト(紫)がワールド座標&原点の近くになるヽ(~~)ノ

 

②-③.UCSを変更する。

コマンド:_ucs

UCS 原点を指定 または~:OB

UCS を位置合わせする~:必殺オブジェクトのX側をクリック(左下図参照)

 

#必殺オブジェクトがあるので、この図形の原点は~?っと探さなくて済む!

 

②-④.UCSの向きに画面の表示を変更する。

コマンド:_plan

オプションを入力~:C

※この時のUCSアイコンをよ~く見て!今はワールドじゃないよ~っと主張しています(笑)

 

③名前の付いたUCSを登録する。

③-①.メニューバーの【ツール】→【UCS管理】をクリック

③-②.UCS定義管理が開くので『Unnamed』を『測量座標』に名前の変更をする。

 

#これでいつでも呼び出すことができるヽ(~~)ノ

 

どんな感じになった?

 

なんか頭がパニックになりそうだったけど、どうにかできたみたい!

 

これでワールドと名前のついたUCSを行ったり来たりできるね♪

 

不都合なく、カキコできる~ヽ(~~)ノ

 

これでパンダちゃんも測量座標マスターですね!

 

お~っほっほっほ( ̄^ ̄)v

 

他の人が見てもわかるように、図面中に『測量座標はUCSで管理しています』とか

記載してあれば、完璧です!

 

完璧のパンダちゃんです( ̄^ ̄)v

 

私がこのぱんだちゃんのデータ貰ったら、すっごい嬉しいな(ぼそっ)

 

 

>>測量座標系マスターへの道(2)へ戻る

>>測量座標系マスターへの道(1)へ戻る

測量座標系マスターへの道(1)の続きです(^^ゞ

 

測量座標系マスターへの道(2)では、

パンダちゃんがエクセルとCADの連携にトライしてくれました!

 

ぶたちゃ~ん!!測量座標系マスターへの道(1)で作図したデータって、

文字がひっくり返ったりして、とっても扱いずらいんですけど~ヽ(`_´#)ノ

 

あっ!気が付いた?(笑)

 

気が付くよっ!ヽ(`_´#)ノ

 

じゃあ、一番楽な方法で・・・

測量座標系マスターへの道(1)『xとyが逆になってるやつよ~。』

って私が言ったの覚えてる?

 

なんとなく・・・(^^ゞ

 

測量座標系マスターへの道(1)でやったこの図をよ~~~く見て!

何か、気が付かない?

AutoCad座標系(ワールド)

測量座標系

 

え~?何かって・・・xとyが逆で~、zの向きも逆~。

 

そう!そうなのよ!って事は・・・

xとyの座標値を逆に、z座標に-1を掛けちゃえば良いのよ♪

 

なるほど~ρ(^^)メモメモ

でも、どうやって?

 

座標データはエクセルになっていたわよね?

 

うん、エクセルで貰ってる!

 

では・・・エクセルの値を変更しましょう。

①エクセルでxとyの値を入れ替え、zに-1を掛ける。

②エクセルで①で作成した座標のセルを作成する。

③CADに②で作成したセルをコピペする。

 

①の方法は、列や行の移動(エクセル)を参照してください。

②の方法は、複数のセル(文字)を1つにまとめる(エクセル)を参照してください。

③の作図方法を説明しますね!(UCSはワールドのままで行ってください)

③-①.②で作成したエクセル(ピンクの着色部)をコピーする。(Ctrl+C

#一番下のセルにcが増えているのは、閉じるのcを入れたいので・・・。

 

③-②.autocadを立ち上げポリラインコマンドを実行

コマンド:_pline

始点を指定:ここで先程コピーしたのを貼り付ける(Ctrl+V

すると・・・あ~ら不思議!

ダラダラダラーっとCADが動き出し、座標点をポリラインで結んでくれますヽ(~~)ノ

 

どんな感じになった?

 

測量屋さんから貰った紙データと同じ図形になったヽ(~~)ノ

とっても簡単♪

これならワールド座標なので文字もひっくり返ったりならないヽ(~~)ノ

 

でも・・・私がこのぱんだちゃんのデータ貰ったら、少しイヤだな(ぼそっ)

 

 

>>測量座標系マスターへの道(3)へ進む

>>測量座標系マスターへの道(1)へ戻る

プロキシが邪魔して保存できない時ってイライラしますよね~ヽ(`_´#)ノ

そんな時の力技ですが・・・(^^ゞ

 

ファイルを開いた時にプロキシのメッセージが表示され↓

OKをクリックし、作業を始めて、いざ保存しようとすると、

保存するのいや~っヽ(`_´#)ノと言われる↓

 

まずは、下記3つのシステム変数をチェックしましょう♪

★プロキシオブジェクトを図面に保存するかどうか?のシステム変数

システム変数:PROXYGRAPHICS
保存先:図面
初期値:1

    ⇒PROXYGRAPHICSが1になっているか

 

★プロキシが作成されるときに警告を表示するかどうか?のシステム変数

システム変数:PROXYNOTICE
保存先:レジストリ
初期値:1

    ⇒PROXYNOTICEが1になっているか

 

★プロキシオブジェクトを表示するかどうか?のシステム変数

システム変数:PROXYSHOW
保存先:レジストリ
初期値:1

    ⇒PROXYSHOWが1になっているか

 

さあ、全部1に変更したわよ~ヽ(~~)ノ

さあ、保存・・・・・

で、保存できた時は良いのですが、これでも保存できない場合がある凸(–メ)

そんな時は、私の大好きな力技です( ̄^ ̄)v

AUTOCADに書き出しちゃいます(笑)

コマンド: _AecExportToAutoCAD2010

これで、完全勝利になり、プロキシとも(^.^)/~~~

#CIVILで作成したオブジェクトは自分がCIVILだった事を忘れてくれるのです( ̄ー ̄)ニヤリッ

あんまり無いと思いますが・・・(^^ゞ

ダブルクリックしても、うんともすんとも言わなくなった場合。

下記2つのシステム変数をチェックしましょう♪

 

★ダブルクリック編集の動作をコントロールするシステム変数

システム変数:DBLCLKEDIT
保存先:レジストリ
初期値:1(on)

    ⇒DBLCLKEDITが1になっているか

 

★コマンドを開始する前にオブジェクトを選択できるかどうか?のシステム変数

システム変数:PICKFIRST
保存先:レジストリ
初期値:1(on)

    ⇒PICKFIRSTが1になっているか

 

初期値通りなので、変更されると、あれ?なんだっけ?になるので、ρ(^^)メモメモ

ソリッドが、分解されてる~ヽ(`_´#)ノ

 ⇒

なんて事、ありますよね・・・・ないかもしれないけど(笑)

そんな時は、ソリッドに変換で元のソリッドに復元しましょうヽ(~~)ノ

#サーフェスや3D面やポリラインにも応用できるので、カキコ♪

 

~ソリッドに変換方法~

①サーフェスに変換する。

コマンド:convtosurface

⇒サーフェスにしたいオブジェクトを選び、サーフェスへ変換する。

 

②ソリッドに変換する。

コマンド:SURFSCULPT

⇒閉じている状態のサーフェスorリージョンを選び、ソリッドへ変換する。

 

変換したいオブジェクトが

ポリラインや3D面に分解されていると、①番からの手順になりますが、

サーフェスやリージョンなら、①をスルーして②からの手順になります♪

 

注意!欲張ってはいけません(笑)

TIMサーフェス(A)とTIMサーフェス(B)の交差位置で2つのTIMサーフェスにしたい場合、

どうします?(もっと簡単な方法があったら、教えて~♪)

例えば、紫のTIMサーフェス(A)を黒の実線の位置で、分離したい時。

①2つのTIMサーフェスの交差の位置を求める

②その①を境界にし、2つに分ける

って手順でやれば行けそう!

って思いますが、①の交差の位置。↓この黒の線、どうやれば?って事で・・・・

リボンだと一発でカキコしてくれるコマンドがあるのかな~?(ぼそっ)

 

~2つのTIMサーフェスの交差箇所の求め方~

①TIMサーフェスA(紫)とB(水色)でTIM土量サーフェスを作成する。

【サーフェス】→【サーフェスを作成】

タイプ:TIM土量サーフェス

基準サーフェス:A

比較サーフェス:Bを入力(AとBが逆でもOK)

 

2つのTIMサーフェスの下に新しい土量サーフェスC(灰色)が出来る。

 

余談ですが・・・・

TIM土量サーフェスって横から見ると・・・こんな感じ♪

これって、よ~~~~く見ると・・・・

丁度、比較サーフェスにした方が高さ0の位置になるように作成してあるんですね♪

これに気が付いた時、CIVILの神降臨!って思ったσ(^^)

 

②土量 サーフェスCの表示を等高線にし、基準標高の0のみだけの位置を表示させます。

  

 

 【サーフェススタイルを編集】→【等高線】タブ

基準標高:0m

主曲線間隔:1000m(ありえない高さ(笑))

 

③②を2回分解し、0の高さのみにする。

 

④③のポリラインを計画線に変更し、標高を割り当てる。

【グレーディング】→【オブジェクトから計画線を作成】

③のポリラインを選択

 計画線を作成のダイアログにて、【標高を割り当てる】にチェックを付け、OKボタンをクリック

 

標高を割り当てるダイアログボックスにて、

サーフェスからを選び、TIMサーフェスAを選択しOKボタンをクリック

 

TIMサーフェスAに標高が割り当てられましたヽ(~~)ノ

少し画像がわかりにくいかも・・・(^^ゞ

2つのTIMサーフェスの交差位置の出来上がり~ヽ(~~)ノ

 

 

~交差位置から境界の作成~

①TIMサーフェスAの等高線の一番下のラインを高さ0にコピー(右図:黄色)する。

  

 

②境界位置と一番下のラインでそれぞれの境界(赤、青)を作成する

   

 

③新しいTIMサーフェスC-1を作成する。

【サーフェス】→【サーフェスを作成】

名前:C-1

ツールスペース<プロスペクター>より、

【サーフェス】→【C-1】→【定義】

【編集】を右クリックし、サーフェスを貼り付け→Aを選択

【境界】→【追加】→赤の境界(ポリライン)をクリック

C-1のTIMサーフェスが出来上がり~ヽ(~~)ノ

 

④③と同様に残りの部分C-2のTIMサーフェスを作成

これで、2つのTIMサーフェスが出来上がり~ヽ(~~)ノ

 

次にやる時に絶対に忘れるのでρ(^^)メモメモ

dxfに書き出す時って、精度が0~16まで選べたと思うんだけど・・・

どこへ行った?って思ったのは、私だけでしょうか?(笑)

【名前を付けて保存】⇒右上の【ツール】をクリック⇒【オプション】をクリック

 

【名前を付けて保存オプション】が開かれるので、

【DXFオプション】タブをクリックすると・・・

精度の設定がありましたヽ(~~)ノ

 

これを知るまで・・・

FILEDIA⇒0にしてやっていたσ(^^)

なんて、おバカなんでしょう(笑)

拘束って使うとちょ~便利だけど・・・

あれ?寸法拘束の中に円弧寸法がない・・・ヽ(`_´#)ノ

って事で・・・・

 

~円弧長の拘束方法~

左側の円弧(緑)と同じ長さの直線(紫)にしたい場合、

いちいち、長さを確認して~なんて、めんどっちぃ~です( ̄^ ̄)b

 

①円周を求めるのに必要な要素となる半径(rad1)と角度(ang1)の寸法拘束をします

 

②パラメーター管理を開き、ユーザー定義として追加します。

名前:円弧長

式:2*rad1*PI*(ang1/360)

 

 

 

 

 

 

 

 

③右側の直線に円弧長の拘束をかけます。

ユーザー定義パラメーターを使わず(②をすっ飛ばして)、

直接パラメーターでカキコした計算式をここで入力してもOKです♪

 

 

 

 

 

 

すると・・・円弧長の長さにしてくれましたヽ(~~)ノ

 

 

余談ですが・・・・

当然、角度や半径等を変えた場合でも、拘束は生きているので、直線の長さに反映されます♪

カレンダー

2017年6月
« 5月    
 1234
567891011
12131415161718
19202122232425
2627282930  

リアルタイム市況

Twitter

Follow @megubuta (76 followers)

アーカイブ

blogランキング