2017年12月26日火曜日

AutocadからFaboolに変換、送信 [VER UP!]


AutocadからFaboolに変換、送信

Autocadユーザーの方の限定となりますが、自作APPをUPしました。
興味のある方は使って頂き、感想をいただけると今後の励みになります。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FABOOL Laser Miniを 持っていること。 

※FABOOL Laser本体のドライバーインストールしていること。
https://www.smartdiys.com/manual/user-registration-driver-installation/

※Autocad2007以降をインストールしていること。

※AutoCAD の Express Tools をインストールしていること。

※AutoCAD が既にインストールされている場合に
Express Tools をインストールするには、
1.Windows のコントロール パネルから[プログラムと機能]を開きます。
2.プログラムの修正/変更を行うために、[AutoCAD]をダブルクリックします。
3.セットアップ ウィンドウが表示されたら、[機能を追加または削除]をクリックします。
4. [プログラムの機能]の一覧で、Express Tools にチェックを付けます。
AutoCAD のバージョンによっては、機能の一覧を見つけるために、
[次へ]を 1、2 回クリックする必要があります。
[更新]または[次へ]をクリックし、操作を完了します。

※マウスの右クリックを [Enter] にします。

コマンド名 "options"
[基本設定] → [右クリックをカスタマイズ] →
[コマンドモード] → [Enterキー] → [適応して閉じる]
にすると使いやすいです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※AutocadからFaboolに変換 DL先
http://wwwc.pikara.ne.jp/masanori/fabool-offline.VLX

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.上記ファイルを保存(※1)
2.Autocad起動
3.図面を開く。
4.ツール→アプリケーションのロード→
先ほど保存した/fabool-offline.VLX(※1)を指定


コマンドラインで使える命令が 3つ増えます
・SVG
・FAB
・FABV
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1.コマンド SVG]
●目的
Inkscapeを介さずに直接Fabool Sotwareへ渡したい。
DXFで渡すと色が黒一色になってしまい
印刷速度が一種類しか指定出来ない。

Autocad側から SVG化したい要素を指定する。

見た目通りに分解し、最大要素範囲を計算し
ファイル名の最後に自動でサイズを付けて指定先に保存。

ログインしてFabool Sotwareを起動
インポートにて保存したSVGを指定
Inkscapeを介せずにデータを渡せることが可能となります。

画像サイズをファイル名に付けていますので、
今回の場合「fabool公開[150x100].svg」となってます。
読み込んだ後、指定の大きさを手動で入れることでも等倍になります。

ちなみにInkscapeで保存したファイルを読むと、このような感じ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[2.コマンド FAB]

●目的
Inkscapeも必要ない。
Fabool Sotwareも介さずにオフラインにて印刷したい。
ネット環境が無いところでもやりたい。

Autocad側から 出力したい要素を指定する。
選択(囲んだ)要素を最大エリアと見なします。
出力は 色1番~色19番のみです。
色20以上は出力しません。
ちなみに↓枠は153色(20番以上)で書いています。

マウス右ボタンで
各色のスピードとパワーを指定出来ます。
脱調対策のために出力時の移動スピードを変更出来ます。
見た目通りに分解し、最大要素範囲を計算し
レーザーヘッドの移動を少なくする処理(ネスティング)
をするかどうか聞いてきます。
ネスティングに時間が掛かりますが
出力時は確かに早いです。
文字も、寸法やハッチング、円も楕円、スプライン、ポリラインも
全て直線化しますので、処理時間が掛かります。
線分の重複処理をおこないますので、ダブった線は一本化されます。
出力の時間も表示します。

処理が出来たら、CADの要素は、何事も無かったように元通りに戻します。

デスクトップに faboo送信 ホルダーを自動で作り
作成した日時、時刻、ファイル名の中に必要なファイルが3ケ作られます。
この3つのファイルがあればオフラインで動きます

出来たファイル名の htm を開くと

プッシュボタン5ケと
1.原点に移動
2.範囲確認 サイズ表示付
3.中心確認しヘッドを移動させます。
素材を配置する時に原点にあると邪魔なので、
4.加工開始 およその時間表示
5.ストップ 一次停止は今の所無し。

要素情報、作図速度、パワー、脱調対策の移動スピードを表示
その下に、Autocadの画面をイメージで表示してます。

いつも通りfaboolに素材をセットし、レーザーの焦点を合わせたら
加工開始ボタンで印刷となります。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 [3.コマンド FABV]
●目的
このソフトでできたJSファイルを
Autocad側で、印刷順に読み込ませてみよう。

 読み込む点を指定したら
実際のレーザーヘッドの動きでシミュレーション出来ます。
 

 
Faboolの機器と同じ 左上が原点です。  
ヘッドの移動通りの軌跡が表示(作図)されます。

Cadで拡大すると、
全て直線になってるでしょ?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※今回使ったサンプルを
http://wwwc.pikara.ne.jp/masanori/fabool-sample.dwg
に置いています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 2017/12/26 Ver UP !!

コマンド FABV
1.描画モード時にCTRLキーを押すと 高速表示としました。
大容量時の時、最後まで描画が待てない為(笑)

2. 作図完了時にコマンドラインに経過時間を表示させてましたが、
画面にもファイル名、経過時間、他を記入させました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



2017年12月20日水曜日

オブジェクト選択

Autocad操作中に
オブジェクト選択:直前(P)を 私は良く使うのですが、

例:蝶の絵柄を右にコピーするとする 
コピーするとこんな感じ

-------------------------------------------------
ここからが、ちょっと違うこと。
Autocad の COPY で コピーすると、
オブジェクト選択:直前(P) をすると、
最初に選択した要素が選ばれます。

-------------------------------------------------
これが、いろんなCADを使った私からすると、、
使いにくいのです。
ns-menuコマンドで C または (NS_C) で  コピーすると、
オブジェクト選択:直前(P) をすると、
最後にコピーされた要素が選ばれます。

 最後にコピーされたものが選ばれることで、
この要素群に対し上に30mmとか 簡単にできる。
次への 連続した動作が引き継がれます。
-------------------------------------------------
ns-menu で行った操作で、コマンド終了すると、
最後に行った要素群が 直前(P)になるように
処理を掛けています。 
-------------------------------------------------

2017年12月19日火曜日

図面編集時間

Autocadで作図した図面は、
知らぬ間に「図面編集時間」や「最終登録者」「更新日時」等の情報が、登録されます。
特に 「図面編集時間」はリセット出来ない。
図面が出来て、客先等に送信する場合には、
この情報も行っちゃうんです。(@@;)
------------------------------------------------------------------
●例:
 -----------------------------------------------------------------------------
●送信は汎用性のある中間ファイル「DXF」にて送る場合が多いのですが、
DXF変換しても「図面編集時間」等が引き継がれます。(^0^;)

今回は、出来たDXF内の「図面編集時間」、「最終登録者」等を
リセットするプログラムを作りました。
 変換後、できあがったDXFを読んでみると、
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
↑無くなってるでしょ?\(^O^)/
 -----------------------------------------------------------------------------

以下を メモ帳で開き デスクトップに dxf.lsp で保存
 変換したい図面を読み
[ツール] → [AutoLisp] → [アプリケーションロード]で
デスクトップの dxf.lsp を読み込み
 コマンド DXF で動作します。

読み込んだ図面からコマンド実行で,
デスクトップに 編集時間を削除したDXFファイルができあがります。
↓------ここから

 (defun c:dxf ( / DATA DNAME1 DNAME2 FULLNAME1 HNAME1 MNAME1 OPENFILE1 OPENFILE2 TMP1 TMP8 TXT TXT1 UNAME)
 ;DXFをデスクトップに作成後 編集時間を消して再登録します。
 ;
 (setq data "2000-DXF");下の5種から選べる
 ;
 (VL-LOAD-COM)
 (setvar "CMDECHO" 0)
 (command ".clayer" "0")
 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)));purge_all
 (command ".zoom" "e")
 (while (= 1 (getvar "cmdactive"))(command pause));コマンド終了まで待つ
 (setq hname1 (getvar "dwgprefix"));図面ホルダー名
 (setq hname1 (strcat "C:\\Users\\"(getenv "USERNAME") "\\Desktop\\"));デスクトップへ
 (setq mname1 (getvar "dwgname"));元ファイル名(変換用ファイル名.dwg)
 (setq fullname1 (strcat hname1 mname1));元のホルダー+ファイル名
 (setq uname (getenv "USERNAME"));ユーザー名
 ;
 (setq dname1 (strcat hname1 (substr mname1 1 (- (strlen mname1) 4) )          ))
 (setq dname2 (strcat hname1 (substr mname1 1 (- (strlen mname1) 4) ) "[0TIME]"))
 ;
 (setq tmp1 (getvar "FILEDIA"))
 (setq tmp8 (getvar "EXPERT"))
 (setvar "FILEDIA" 0)
 (setvar "EXPERT" 2)
 (princ         "\n━━━━━━━━━━━━━━━━━━━━━━━")
 (princ (strcat "\n" dname2 "\n["data"] 形式で保存中"))
 (cond
  ((= data "2000-DXF") (command "_SAVEAS" "DXF" "V" "2000" "" dname2))
  ((= data "2004-DXF") (command "_SAVEAS" "DXF" "V" "2004" "" dname2))
  ((= data "2007-DXF") (command "_SAVEAS" "DXF" "V" "2007" "" dname2))
  ((= data "2010-DXF") (command "_SAVEAS" "DXF" "V" "2010" "" dname2))
  ((= data "2013-DXF") (command "_SAVEAS" "DXF" "V" "2013" "" dname2))
  )
 (while (= 1 (getvar "cmdactive"))(command pause));保存終了まで待つ
 (princ (strcat "\n" dname2 "\n["data"] 形式で保存完了"))
 (princ (strcat "\n" dname2 "\n["data"] 編集時間調査中"))
 (setvar "FILEDIA" tmp1)
 (setvar "EXPERT"  tmp8)
 (command "_SAVEAS" "2000" (strcat "C:\\Users\\"(getenv "USERNAME") "\\Desktop\\変換ファイル削除可.dwg"))
 (setq openfile2 (open (strcat dname1 ".dxf") "w"))
 (setq openfile1 (open (strcat dname2 ".dxf") "r"))
 (setq txt (read-line openfile1))
 (while txt
  (cond
   ((or (= txt "$TDCREATE")(= txt "$TDUCREATE")(= txt "$TDUUPDATE")(= txt "$TDINDWG")(= txt "$TDUSRTIMER"))
    (read-line openfile1)
    (read-line openfile1)
    (read-line openfile1)
    )
   ((= txt uname)
    (write-line "-----" openfile2)
    )
   (T
    (write-line txt openfile2)
    )
   )
  (setq txt (read-line openfile1))
  )
 (close openfile1)
 (close openfile2)
 (princ (strcat "\n" dname1 "\n["data"] 編集時間編集済み"))
 (vl-file-delete (strcat dname2 ".dxf"))
 (command ".delay" 2000);待ち時間
 (if (>= (atof (substr (getvar "ACADVER") 1 4)) 19.1);2014
  (progn
   (command "_.wipeout" "_f" "_off")
   (command-s "_.close" "Y")
   )
  (progn
   (command ".close" "Y")
   )
  )
 (princ)
 )
↑----------------ここまで

2017年12月18日月曜日

キーボードコマンド 割付表

Autocad に 至るまでには
何種類かの汎用Cadを使ってきました。
Autocad を使ってみると使いにくい事ばかり、、
経験のある汎用CADの操作性の良いところ?の
アイデアをこの"ns-menu"に詰め込んでます。

ns-menu キーボードコマンド 割付表です。

 JWWっぽい?キーボード割当にしています。

2017年12月15日金曜日

[機能紹介] 画層一覧

画層一覧のコマンドです
コマンド GA または (NS_GA)

例:画層毎に書かれた図面がある。
実行すると。
[画層処理] [現状の画層情報を保存しました]
[画層一覧] G:画面に配置 / B:画層毎にブロック化 / L:画層一覧
 / H:範囲一覧 / マウス左右=移動 / ESC=決定 / RET=戻

●G:画面に配置 の場合
 画層毎に等間隔で図面上に配置出来ます。
本数:画層名:画層色なども自動で配置されます。

●L:画層一覧 の場合
 画層情報 画層名:画層色:本数他を希望の位置に配置出来ます。

 ● マウス左右 で 現在層を移動させ、濃淡表示でわかりやすく、
高速で切り替える事も出来ます。

画層のダイアログ出して、ロックや非ロック、表示したり、
現在層に移動、、煩わしい作業をしなくても、
マウス左右で一発。これは便利ですよ。

[機能更新] 3Dを2D化

3Dから2D変換には
●「FLATSHOT」 の コマンドがありますが、3D要素のみ
●「FLATTEN」の コマンドは 2D要素のみ

両方を合成したコマンド
コマンド  FLAT または  (ns_FLAT)

[NS-FLAT] FLATSHOTしたい画面に回転しておくこと。
          2D要素=FLATTEN 3D要素=FLATSHOTをして
          コピー登録 C0 に登録します。
フィルターセットにて要素種別を判別。
プログラムを見直して、高速化を行いました。
例:この3D画面から

コマンド  FLAT を行うと
こんな感じになります。
よーく見るとUCSアイコンも平面表示でしょ。


2017年12月13日水曜日

[機能紹介] 高速図面閉じ

Autocadで作業を行っていると、
作図中に参考となる図面を開いたりしていると
いつの間にか、図面を何枚か開いていることがあります。

この例だと、8枚も開いちゃってる。(^0^;)
一枚一枚図面を閉じる(ウィンドうの右上の×)事になるが、
一枚一枚保存しないを押さないと閉じない。

煩雑ですよね?(^0^;)

コマンド nsc または (ns_nsc)
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃[裏窓高速図面閉じ] 現在開いている図面以外を全て閉じます ┃
┃[■ ◆ 注意 ◆ ■] 保存せずに閉じます。よろしいですか?  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
[高速図面閉じ] [7] 枚 裏窓図面があります
[高速図面閉じ] 全図面閉じは A  裏窓図面閉じは [Y]  キャンセルは [N] 

A か Y を押すだけで、強制閉じ処理。
保存せず、あっという間に閉じてくれます。

2017年12月1日金曜日

[機能紹介] 3D要素

[3D要素] 基準中心選択後、
要素指定で即回転体作成 2点で回転、4点で簡易バルブ作成

例題:このようなバルブの絵があるとする。

コマンド: 3R または (NS_3R)
1.中心線指定
2.フランジ始端
3.フランジ終端
4.スピンドル橋
5.ハンドル端
を入力するだけで、、

この5つの座標だけで計算して、,, 
じゃぁ~~~ん。
簡易バルブの3Dが出来ちゃいます。 
これも見ているだけで、たのしぃっ。

[機能紹介] 3Dスイープ

[3Dスイープ] 選択した要素にチューブ,選択閉図形の3Dを作成
例:あらかじめ3Dにて中心線を書いておく

コマンド 3E または (NS_3E)
[3Dスイープ]【150SGP 150S40 等配管値で 外径/内径】
         【H150*150 L50*6 C150x75 等鋼材に対応】
[3Dスイープ][-2:形鋼],-1:多角形,0:閉図形,外径値:

例:100Aを指定(φ114.3)して
紫の要素を選択すると
あっという間に、UCSを操作せず、自動でパイプになります。
自動で作図されるのを見てるのが楽しぃ。

2017年8月4日金曜日

[新機能] 3Dから2Dへ FLAT化

3Dから2Dへ

3Dから2D変換には
●「FLATSHOT」 の コマンドがありますが、3D要素のみ
●「FLATTEN」の コマンドは 2D要素のみ

う~ん、 使いにくいのは 私だけ?

使いにくい理由
・理由1:ソリッドのみで寸法や文字は対象外
・理由2:図面全体のソリッドに対して処理させるので必要なソリッドだけを選べない。
あらかじめ必要なソリッドだけの図面を作っておかないとダメ
・理由3:できあがった2Dを読み込むとき、基点がどこなのか?ずれている。

それなら 3Dと2D要素変換命令を合体じゃぁ~
・改良点1:ソリッドでなくても 直線、円弧、寸法も選べるようにした。
・改良点2:変換したい要素だけを選べるようにした。
・改良点3:見た目通りで新規保存、読み込みも出来ます。

コマンド FLAT または (NS_FLAT) です。
元画像

範囲(例:上の配管群)を選択し 諸設定入力

出来上がり読み込み

わかりにくいけど、
2Dも3Dも2D化されました。

[機能強化] 配管の熱応力2

 [機能追加] 配管の熱応力2

2015年11月18日に投稿してますが、

[配管の熱応力] 簡易判定式にて配管の熱応力の計算を行う
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
選択した直線群に配管サイズ、材質、温度を入力し
固定点[選択要素の両端]が耐えるか?の簡易判別を行います
あらかじめ3Dにて配管中心線を直線にて作図しておくこと
固定点は選択直線群の両端を自動取得します
参考文献:ASA.B31.1.(Code for pressure Piping)
参考文献:配管ポケットブック 熱膨張を伴う配管の簡易計算法の解説
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

結果を見やすく&使いやすく改良されています。♬

元の配管データを3Dにて作図しておきます。
 
緒データを入力し配管の線を選ぶ。
  
NGの時(赤表示)

OKの時(青表示)

簡易計算が簡単にできます。

[新機能] ガンパクトの伸縮継手計算

ガンパクトの伸縮継手計算を追加しました。
コマンド netu1

参考文献:https://www.ipros.jp/product/detail/2000077617/

配管サイズ,配管材質,設計圧力
配管温度,外気温度,外気最低温度
を入力し
固定間距離をマウスで指定することにより

末端水平力
中間水平力等の計算を画面上で行えるようになりました。

2017年2月15日水曜日

SVGファイル出力

SVGファイル出力が出来るようになりました。

Scalable Vector Graphics
スケーラブル・ベクター・グラフィックス

直線なら
<path d="M 64.843,0 L 9.794,47.25">
円弧なら
<path d="M 52.059,24.288 A 15.513,15.513 0 0,0 21.033,24.288">

シンプルな出力構成

SVG化したい要素を選択すると、
全ての要素を見た目通りに分解し、
保存先指定でSVGが出来ます。

保存後元通りの要素に戻す。

今のところ、線種は全て実線となります。

元画像

変換先画像

2017年1月1日日曜日

2017


2017年 あけましておめでとうございます。


朝起きて驚き。

とても良い天気。

まずは写真を一枚。

良い一年になりますように、