BTRIMVX232c.lsp 2025/07/09

制御盤電気設計用の LISP ですが、一般にも使えそうなコマンドも収納されています。


■ 概要

 電気回路図作成に特化した LISP ですが、いつまで経っても完成しない作成途中の LISP です。
 埋もれてしまうのも勿体無いので公開してみました。制御盤の回路図作成に使えます。

■ 特徴

 専用のブロックではないごく普通のブロックでもある程度使えます。
 1コマンドで複数の処理が行えます。
 例えば BMV(ブロック移動)では、
  1つのブロック: ブロックの基点を基準にしてブロック移動。移動前の配線を結合。移動後の配線をカット。
  1つの TEXT: TEXTの起点を基準にして TEXT を移動。
  LWPOLYLINE の1辺: 1辺を並行移動。周辺にある TEXT も追従して移動。
  1つの配線: つながるブロック、配線を並行移動(スクート)(配線は画層を制限しています)
  複数図形の選択でブロックが含まれている場合は、最左上のブロックの起点を基準にして移動。それぞれのブロックで配線処理。
 ・・・のように一手間省ける処理が行えます。

■ 著作権、制限事項等

 改変可能でコピー、再配布は自由です。無料で使えますが無保証です。

■ 作成環境

 BricsCAD V20.2


 電気回路設計用の設定が不要の場合は、
 11 行目あたりの (setq *BTRIM232_ELEC* T) をコメントアウトするか削除して下さい。
 または、(setq *BTRIM232_ELEC* nil) に変更してください。

最新版:2025/07/09
 ・PLDIET : 始点-終点側のエレメントが同一直線上の時、結合するを追加
 ・ZPLOT : DSPLOT.exe と同様に図枠ポリラインの範囲を印刷するに変更
 ・ZNEXT, ZPREV, ZPLOT, ZCPY, ZERS ... : 図枠ブロックに依存しない汎用版に変更、一部を削除
 ・ReadIni, WriteIni : 同名の関数があったのを修正、不足分を追加
 http://www.izawa-web.com/zip/btrimvx232c_20250709.zip

旧版:2025/07/05
 ・XSPC : UCS に対応、不具合を修正
 ・XBLN, XPLN : 継ぎ足し配線で始点側にすでに線分があるとき属性(画層、色、線種)を合わせ、結合を試みるを追加
  終点側の線分も変更、結合を試みる
 http://www.izawa-web.com/zip/btrimvx232c_20250705.zip

旧版:2025/07/04
 ・XBMV : AutoCAD / LT、IJCAD で PLINE の1辺の移動で円弧が反転するとき、不要な円弧が追加されるのを修正
 ・XLEM, XBMV : AutoCAD / LT、IJCAD に対応
 ・PLEJ の中身を XJSS に変更し UCS に対応(機能的には、XJSS と同じ)
 http://www.izawa-web.com/zip/btrimvx232c_20250704.zip

旧版:2025/07/03
 ・XBMV : AutoCAD / LT で LINE-ARC の配線の1辺(LINE)の移動にほぼ対応
 ※ XBMV : AutoCAD / LT、IJCAD で PLINE の1辺の移動で円弧が反転するとき、不要な円弧が追加されるのは未対応
 http://www.izawa-web.com/zip/btrimvx232c_20250703.zip

旧版:2025/07/02
 ・BMV, XBMV でブロックの移動時、線分がブロックの挿入基点まで延長されなくなっていたのを修正
 ・XBMV で交差線分のカット処理を間違えることがあるのを修正
 http://www.izawa-web.com/zip/btrimvx232c_20250702.zip

旧版:2025/07/01a
 ・ブロックの内部図形との交点計算が間違っているのを修正(2025/07/01a)
 ・『ほぼ』ブロックの回転、尺度に対応(2025/07/01)
 http://www.izawa-web.com/zip/btrimvx232c_20250701a.zip

旧版:2025/06/30
 ・AutoCAD / LT で不要な command エラー処理を削除
 ・BMV-N : 回転、尺度倍されたブロックに交差ずる線分が結合されないのを修正
 ・SQFT : From-To > 矢印を作成のオプションに配線の両端に作成を追加
 http://www.izawa-web.com/zip/btrimvx232c_20250630.zip

旧版:2025/06/29
 ・SQFT: FromTo 矢印(LWPOLYLINE で >)の作成を追加
 ・ブロックカットの線分に 6, 62 が無いとき、現在の線種、色に変わってしまうのを対策
 ・ブロックカットのコードを整理
 ・BCP が UNDO で戻らないのを修正
 ・XELN で途中に交差する WIRE 画層の LINE は無視するを追加
 ・SQFT, TXRECT : AutoCAD / LT でポリラインが作成されないのを修正
 ・AutoCAD / LT でエラーが出るのを対策
 http://www.izawa-web.com/zip/btrimvx232c_20250629.zip

旧版:2025/06/24
 ・BCPF を 10進、16進、8進カウントアップに対応
 ・AutoCAD 用に (*push-error-using-command*) を追加(最新版 2025/06/29 にて修正)
 http://www.izawa-web.com/zip/btrimvx232c_20250624.zip

旧版:2025/06/23
 ・全 I/O コメントのエクセルへの書き出し、取り込み CMTXLSOUTALL, CMTXLSINALL が IJCAD でエラーになるのを修正
 http://www.izawa-web.com/zip/btrimvx232c_20250623.zip

旧版:2025/06/21
 ・XCP, XCPF : 選択図形内のブロックが複数の場合は基点を指示するに変更
 ・XBLN : 現在層を WIRE 画層にして XLN を実行、交点処理を行う を追加
 ・XLN, XBLN で (ssget "CP" ...) の点列が2点だったのを修正 (2025/05/26)
 http://www.izawa-web.com/zip/btrimvx232c_20250621.zip

旧版:2025/06/18
 ・BCPFH, BCPFO が 16進、8進表記にならないことがあるのを修正。
 http://www.izawa-web.com/zip/btrimvx232c_20250618.zip

旧版:2025/06/17
 ・BCPF に機器名、線番の初期値の変更を追加。
 http://www.izawa-web.com/zip/btrimvx232c_20250617.zip

旧版:2025/06/16a
 ・XCPF : ブロック、一般図形をフェンス選択線分上にコピーを追加。
 ・XCP : ブロックとの交点取得を修正。
 ・一部不要コードを削除(20250616a)
 http://www.izawa-web.com/zip/btrimvx232c_20250616a.zip

旧版:2025/06/14
 ・関数の引数名と重複する変数名が残っていたのを削除しました。他の変更はありません。
 http://www.izawa-web.com/zip/btrimvx232c_20250614.zip

旧版:2025/06/09
 ・EXSAVE コマンドを ESAVE に変更。他の変更はありません。
 http://www.izawa-web.com/zip/btrimvx232c_20250609.zip

旧版:2025/05/27
 ・btrimvx232c.lsp : 一部の環境でエラーになるため、ブロックの矩形範囲の取得方法を変更 (2025/05/26)
 2025/05/27: 配線の平行移動で、線番ブロック(図形がない)に掛かるとき、エラーになるのを修正
 http://www.izawa-web.com/zip/btrimvx232c_20250527.zip

旧版:2025/05/07a
 ・TXAJUST : 対象のTEXTの幅係数が下限以下のときは何もしないに変更 (2025/05/07a)
 ・ATTCLR : 属性値をクリア を追加
 http://www.izawa-web.com/zip/btrimvx232c_20250507a.zip

旧版:2025/05/06b
 ・ATTMA : 選択した複数のブロックの属性を、指示した属性の文字高、文字幅、位置を合わせるを追加 (2025/05/06a)
 ・TXAJUST : 幅係数の下限(幅係数が 0.6 以下になるときは 0.6 にする)を追加 (2025/05/06a)
 ・ATTMA : 属性の位置合わせが動かないのを手直し (2025/05/06b)
 http://www.izawa-web.com/zip/btrimvx232_20250506b.zip

旧版:2025/05/04,05
 ・STPURGE : すべての TEXT、属性の文字スタイルを "STANDARD" に変更、パージを追加
 ・do_attrep : BUHINLIST.exe から呼ばれる属性変更コマンドを追加
 ・TXREGEN : TEXT の描画位置が微妙にズレているのを修正(他のCAD 図面の修正用)を追加
 ・TXAJUST : 線分(*LINE)、円に掛かりそうな TEXT の文字幅係数を変更(他のCAD 図面の修正用)を追加
 TXAJUST の幅係数の計算間違いを修正しています。2025/05/05
  http://www.izawa-web.com/zip/btrimvx232_20250505.zip

関数、コマンドカタログを同梱していますが、詳細な説明はありません。
こちらのツール LspTree にファイルをドラッグ&ドロップすると、1行程度の説明が表示されます。

また、下記ツールと一緒に使えます。(同梱 LISP の最新版です)
DXF Viewer 挿入、LISPコマンド発行ツール DXFRun,LSPRun
DwgRun.exe

または、下記ツールのサンプルメニューで電設配線、電気回路設計用として使いやすくなります。
ARES、AutoCAD、BricsCAD、IJCAD、ZWCAD コマンド発行ツール

ロード時に、電気回路設計用のブロック作成、画層、スナップ等の設定が行われます。
電気回路設計用として使う場合は、11 行目あたりの (setq *BTRIM232_ELEC* T) のコメントを外して下さい。
その下の (setq *BTRIM232_ELEC* nil) をコメントアウトするか、削除して下さい。
行の先頭に ";" があると、コメントアウトになります。
電気回路設計用設定が不要の場合は、
11 行目あたりの (setq *BTRIM232_ELEC* T) をコメントアウトするか削除して下さい。
または、(setq *BTRIM232_ELEC* nil) に変更してください。


YouTube 動画 :

■ 電気設備配線作成3
 https://youtu.be/Yo3oDwYU2q8
■ 電気設備配線作成2
 https://youtu.be/Bg8sFr0Lb5M
■ ポリラインの1辺、線分を移動
 https://youtu.be/KvS0RmQhqUE

BBS 過去ログの動画:
■ XLN, XCP, XMV, XER
 ブロックではない普通の図形に交差する線分を部分削除、結合。
 いずれも、かなりクセがあります。
 http://www.izawa-web.com/image/ncad_XMV.mp4

■ TXFILL
 文字コピーは TXFILL で 16 進カウントアップ。
 四角コピーは ENTFILL を使っています。
 http://www.izawa-web.com/image/TXFILL.mp4

■ LNFILL
 線分コピー
 http://www.izawa-web.com/image/LNFILL.mp4
■ ENTFILL
 図形コピー
 http://www.izawa-web.com/image/ENTFILL.mp4

■ TXPASTE
 クリップボードの文字列を CAD 上に描画
 https://youtu.be/54jED7KFnis
■ TXPASTE
 エクセルの文字列を CAD 上に描画
 https://youtu.be/v73lAoC7p14
■ TXGG
 四方を線分で囲われた TEXT の文字基点を ML, MC, MR のいずれかに変更
 https://youtu.be/6Ik3-IaMdAg

■ TXGCLIP
 CAD 上の罫線で囲われた TEXT をクリップボード経由で Excelにコピー
 https://youtu.be/B1B5arlYeYc
 これの反対は、TXGPASTE

■ OCR + TXPASTE
 PDF でもらった図面で、SHX フォントが分解されてポリラインになっている状態から、
 廉価な OCR を使って文字列に変換。
 http://www.izawa-web.com/image/PDF2DWG2TEXT.mp4

■ btrimvx232.lsp + NTextEdit2.exe
 I/O アドレスの変更 -> 線番作成 -> リレー番号の変更 -> 接点番号の変更 -> I/O コメントの編集
 対象はすべてブロックの属性です。
 I/O コメントの編集に Excel を使っていますが、NTextEdit2 単体でも出来ます。
 http://www.izawa-web.com/image/BTRIMVX232_NTEXTEDIT2C.mp4

■ OLDJIS と NEWJIS の切り替え
 使用しているブロックがそうなっているだけで、LISP の機能ではありません。
 http://www.izawa-web.com/image/ncad_NEWJIS.mp4


2025/07/09
f.izawa