izawaLISP
Bricscad V17, V19 にて動作を確認しています。
・2020/12/10 ZenKana.lsp Bricscad V20, 21 で動かないのを修正
・2020/12/10 ZenNum.lsp Bricscad V20, 21 で動かないのを修正
・2019/11/07 SWIRE.lsp 関数 S字配線が直線のときエラーになるのを対策。U字配線で反転を追加
・2019/05/07 RIN.lsp 関数 BulgeToArc が不足していたのを追加
・2019/05/06 RINX.lsp を追加
・2019/05/05 RIN.lsp を追加
・2019/04/30 SWIRE の仕様を変更
・2019/04/29a SWIRE.lsp、WIRESIZE.lsp を追加
・2019/01/04 TXGALP.lsp (subst のパラメータの間違いを修正
・2018/12/30 TXCLIP.lsp に ClipBoard の Text クリアを追加
・2018/12/29 TXCLIP.lsp を追加
・2018/12/27 TXGALP.lsp を追加
・2018/12/23 TXALP.lsp を追加
・2018/12/17 GRECT.lsp を追加
・2018/12/08 TXCAT、ZENNUM.lsp を追加
・2018/12/06 PBAL.lsp を追加
■RINX.lsp 2019.05.06
RINX : 境界作成コマンド (-BOUNDARY) を使って図形の輪郭を作成します。
Bricscad V19 以外では試していません。他の CAD で使う場合はご注意を。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■RIN.lsp 2002.10.18
2019/05/07 BulgeToArc が不足していたのを追加
2019/05/06 kage.lsp より関係部分を抜き出し
RIN : 図形(ARC, CIRCLE, LINE, LWPOLYLINE)の輪郭を作成します.
かなり古いLISPです。
今となっては、何がどうなのか良く分かりませんが、すべての図形をぶつ切り線分にして、
左回りに注目点を基準にして1つ前の点、次の検索点の3点の内角が一番小さい線分の端点を追っていく。
・・・のようなことをしているようです。
円、円弧は微小線分に変換しています。
たぶん円、円弧も含めてそれぞれの交点でぶつ切り円弧にすれば、上の追い方で輪郭が取れるのだと思いますが、
試してはいません。
-BOUNDARY を使ったほうがスマートですね。←作成してみました。(2019/05/06)
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■SWIRE.lsp 2019.04.30~2019.11.07
・2019/11/07 SWIRE.lsp 関数 S字配線が直線のときエラーになるのを対策。U字配線で反転を追加
SWIRE : 最小曲がり半径で S字、L字、U字 配線を描きます。
・縦書きを想定しています。
・S字は2点間で緩やかなS字を作成します。作成不可の時は始点を基準に最小半径で作成します。
作成不可の2点を指示すると、最小半径のS字が作成されます。
・作成できるのは、S, L, U のパーツごとです。端点の延長は手動で行ってください。
SWINFO : 作成した SWIRE の情報 (XDATA) を表示、記入します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■WireSize.lsp 2019.04.29a
WIRESIZE : 展開接続図の配線(LINE)に電線サイズを記入します。
CDSIZE : RECTANGLE のサイズを記入します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■TXCLIP.lsp 2018.12.30
2021/03/15
Bricscad ですが、(dos_clipboard [string]) という標準関数があることを知りました。
そちらを使った方が簡単ですね。
クリップボードを使った LISP です。下記のコマンドが利用できます。
うまく使うとエクセルとのやり取りが容易に行えます。
※ClipBoard の Text クリアを追加 (2018/12/30)
TxClip : 選択した文字列をクリップボードにコピー
TxPaste : クリップボードの文字列を TEXT で作成、区切り線を作成
TxGClip : 表組の文字列をクリップボードにコピー
TxGPaste : クリップボードの文字列を、選択した表組の格子内に配置
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
※AutoLISP でクリップボードを使う関数は、こちらの記事をそのまま使用しています。
■TXGALP.lsp 2018.12.27~2019/01/04
2019/01/04 (subst '((73 . 2)) ... が間違いだったのを手直し
TXGALP:
線分 (TEXT, LWPOLYLINE) で作成された表の列幅、行高さを変更します。
文字位置は、左中、中中、右中のいずれかに変更、整列されます。
線分の格子が基準なので、エクセルの結合セルのような文字位置にはなりません。
※画面から外れた文字列は、移動の対象にはなりません。
TXALP:
線分 (TEXT, LWPOLYLINE) で囲われた文字列 (TEXT) の位置を一括で変更します。
文字位置は、左中、中中、右中のいずれかに変更、整列されます。
エクセルの結合セルのような枠内でも整列されます。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
下↓のTXALP.lsp の複数文字対応版が含まれています。
■TXALP.lsp 2018.12.23
線分 (TEXT, LWPOLYLINE) で囲われた文字列 (TEXT) の位置を一括で変更します。
文字位置は、左中、中中、右中のいずれかに変更されます。
線分で作成された表内の文字位置の変更に使えます。
※文字列の回転角度は、考慮していません。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■GRECT.lsp 2003.2.2
AutoLISP の GRREAD、GRVECS を使ったのサンプルです。実用性はありません。
※ GRREAD : リアルタイムでマウス座標、クリック、キーボード入力が取得する AutoLISP 関数
※ GRVECS : 画面上に図形を描画する AutoLISP 関数
試してみる
予め適当な斜め線分(角度参照用と配置参照用の2本)を作成しておきます。
GRECT[Enter]
|四角の横幅 /C=円 /T=三角:
100[Enter]を入力します.5
|縦 :
50[Enter]を入力します。
四角形が表示されます。
|挿入位置を指示 /0~9:基点変更 /S:線分の角度を参照 /X:X軸で反転 /Y:Y軸で反転 /L:線分上 :
0 キーを押すと、押すごとに基点が変わります。
1~9 キーは、左下から順に右方向、上方向に基点が変わります。
S キーを押します。
|回転角度を参照する線分を指示 :
参照する線分を指示すると、回転角度が変わります。
L キーを押します。
|線上に配置する線分を指示 :
配置する線分を指示すると、その�線分上に乗ります。
適当な位置で座標を指示すると、表示位置に作成されます。
Xキー、Yキーで反転できます。
基点を 1, 3, 7, 9 にしておくと分かりやすいです。
[ESC]を押すと、途中でキャンセルできます。
ダウンロード zipファイル
ダウンロード lspファイル (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■TXCAT.lsp 2018/12/08
複数の文字列(TEXT)を結合します。一番左にある文字列に結合され、他の文字列は削除されます。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■ZENNUM.lsp 2018/12/08
・2020/12/10 ZenNum.lsp Bricscad V20, 21 で動かないのを修正
複数の半角英数字、記号を全角に変換します。全角->半角変換は、下↓のほうの ZENKANA.lsp を使用してください。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■PBAL.lsp 2018/12/06
制御盤パネル面のスイッチ、表示灯等、複数のブロックを縦横で格子状に整列します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■7seg.lsp 2009
7SEG : デジタル指示調節計の 7 セグメント LED 文字を作成します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■BTRIMVX.lsp Ver.1.24 2008/09/27
ブロックの背景線分をカット、結合するします。
VisualLISP の IntersectWith、getBoundingBox を使って、BRTIM20.lsp とほぼ同等の機能を提供しています.
回路設計用 NSQ.lsp では対象のブロックが専用でしたが、汎用ブロックに対してほぼ同等の機能を提供しています.
NSQ.lsp 同様、選択する図形によって、処理内容が変わります.
BTR
ブロックの背景の線分をカット
BMV
< BLOCK > ブロックの周囲の線分を結合し、移動後交差する線分をカット
< LINE > 線分に繋がるブロック、線分を移動
< TEXT > 文字列を移動
BCP
< BLOCK > ブロックを複写し、交差する線分をカット
< LINE > 線分に繋がるブロック、線分をコピー
< TEXT > 文字列をコピー
BCT
< BLOCK > ブロックに交差する線分を部分削除
< LINE > 線分を部分削除(交点判断あり)
< TEXT > 文字列を削除
BLN
線分を作成し、それに交差するブロックの背景線分をカット(交点処理付き)
BLNN
線分を作成し、それに交差するブロックの背景線分をカット
BJT
< BLOCK > ブロックの周囲の線分を結合
LJT
< LINE > 複数線分を一括で結合
BRY
< LINE > 線分、ブロックの間隔を均一に(機能不十分)
< BLOCK > 線分、ブロックの間隔を均一に(機能不十分)
BKP
指示座標にブロックがあれば削除、無ければ交点シンボルを挿入
BMX
複数ブロックのX座標を指示座標に変更
BMY
複数ブロックのY座標を指示座標に変更
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■PDIST.lsp 2013/01/12
CAD 上に現場の写真(制御盤の正面図とか)を張り付けて、寸法を測るLISPです。
内部で、4点補正を行っています。画像自体はそのままで変わりません。
CAD上に写真を貼り付け、実際には四角形である部分をポリライン(LWPOLYLINE)で
左上を始点に右回りで、4点指示し、"C"オプションで閉鎖します。
PDINIT コマンドを実行し、先に描いたポリラインを選択し、四角形の巾と高さを入力します。
PDIST コマンドを実行し、2点を指示すると、2点間の距離と偏差が表示されます。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■PLEM.lsp 2015/08/31
ポリライン ( LWPOLYLINE ) の直線部分を移動します。
直線部分の座標を変更しているだけなので、直線部分が交差するように移動したとき、
円弧は正しく追従しません。
PLEM : ポリライン ( LWPolyline ) の直線部分を移動します。
PLEJ : 2つのポリライン ( LWPolyline ) の直線部分を結合します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■SCXY.lsp 2009/04/02
SCXY : 選択図形のX尺度、Y尺度を変えます。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■TEXCEL.lsp 2008/12/09
TEXCEL : 表形式の文字列を編集します。
編集する列数を入力。スタートの左上文字列を選択します。
指定した回数だけ横 (X) 方向に文字列を検索し、編集します。
一行の編集が終わると、スタート位置の下 (-Y) 方向の文字列を検索し、編集します。
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■TXUP.lsp 2011/03/14
TXUP : 数字を含んだ文字列をカウントアップしながらコピー
TXRP : 文字列置換 (検索文字列:ex "A*"=先頭一致 "A"=部分一致 "*A"=末尾一致)
TXPLS : 数字を含んだ文字列を加算、減算
TXPLS2 : 数字を含んだ文字列を加算、減算 (+、±、- の符号対応版)
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■ZENKANA.lsp 2010/03/21
・2020/12/10 Bricscad V20,21 で動かないのを修正しました。
ZenKana : 半角カタカナを全角に変換
HanSuji : 全角数字を半角に変換
HanDai : 数字、アルファベットを含む代替文字を半角に変換
ZenToHan : 数字、アルファベットだけを半角に変換
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■USO_TOOL.lsp 2009/04/11
等角図(等測投影図)作成支援LISP
IsoMak : 選択図形を等角図(等測投影図)に変換
IsoDim : 寸法作成
IsoCir : 等角円を作成
IsoArc : 等角円弧を作成
IsoArQ : 1/4 等角円弧を指示したコーナーに作成
IsoBegin : 等角図モード開始.等角図用の文字スタイル、寸法スタイルの作成
IsoEnd : 等角図モード終了.グローバル変数の解放(初期化)
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)
■USOX.lsp 2010/01/23
USOX : 選択した図形を任意の角度の不等角図に変換します.
ダウンロード (右クリックで 「対象をファイルに保存」 してください。拡張子が変わった場合は、.lsp に変えて下さい)