■ LISP関数カタログ ****************************** ファイル : ncadElec.lsp 作成日時 : 2024/12/23 15:55:28 *********************************************** ■ -------------------------------------------------- □ BulgeToArc p1 p2 bulge Bulge -> Arc -------------------------------------------------- ■ c:bCpf ブロック1個をフェンス線上にコピー -------------------------------------------------- ■ c:bCpN ブロック1個以上を含む複数の図形をコピー -------------------------------------------------- ■ c:bern ブロック1個以上を含む複数の図形を削除 -------------------------------------------------- ■ c:blMv 配線1本、ポリラインのエレメント、またはブロック1個を移動 -------------------------------------------------- ■ c:bLn 水平または垂直配線を作成、線分、ポリライン要素、ブロック、TEXT を移動 配線の部分削除、ブロックの削除、交点シンボルの反転、 ブロックの機器名を編集 -------------------------------------------------- ■ c:bMvc ストレッチのCオプション -------------------------------------------------- ■ c:bMvn ブロック1個以上を含む複数の図形を移動 -------------------------------------------------- ■ c:BRECT for TEST 回転に対応 2024/08/10 -------------------------------------------------- ■ c:bsc ブロックの尺度を変更 -------------------------------------------------- ■ c:cmtClip PLC I/O コメントをクリップボードにコピー -------------------------------------------------- ■ c:cmtcv BJ-Electrical のI/Oコメントを入れ替える -------------------------------------------------- ■ c:cmtPaste クリップボードの文字列をコメントブロックにペースト -------------------------------------------------- ■ c:cmtWf1 コメント文字列の文字幅係数を変更 -------------------------------------------------- ■ c:cmtWfx すべてのコメントの文字幅係数を変更 -------------------------------------------------- ■ c:cntIn コネクタシンボルを挿入 -------------------------------------------------- ■ c:cntnIn コネクタシンボルを n 個挿入 -------------------------------------------------- ■ c:drawRect サイズ指定で RECT を作成 -------------------------------------------------- ■ c:drawRy リレーを RECT で作成 -------------------------------------------------- ■ c:drawTB 端子外形図を RECT で作成 -------------------------------------------------- ■ c:elecB ブロックに交差する線分をカット(テスト用) for TEST -------------------------------------------------- ■ c:elecJ ブロック周囲の線分を結合(テスト用) for TEST -------------------------------------------------- ■ c:erect for TEST -------------------------------------------------- ■ c:etin アースシンボルを挿入 -------------------------------------------------- ■ c:iodef PLC I/O アドレスを変更 -------------------------------------------------- ■ c:linkline リンクラインを作成 -------------------------------------------------- ■ c:LLLT 矩形2点で選択した線分を T字、L字、F字、+字に整形 矩形内の図形は削除され、矩形に掛かる線分が整形の対象になる 残す(整形する)線分が掛かるようにこまめに選択するのがポイント 横線1本と複数の縦線、または縦線1本と複数の横線に対応 縦複数x横複数の線分には対応していない LWPOLYLINE には対応していない -------------------------------------------------- ■ c:loadVBS VBS をロード -------------------------------------------------- ■ c:nmCp 機器名コピー -------------------------------------------------- ■ c:nmed 機器名編集 属性の TAG 名が NAME、NAME1 の2つある時は、入力時に ^ を入力 例 : MC^21 入力で NAME = MC、NAME1 = 21 小文字入力であっても、機器名は大文字になる -------------------------------------------------- ■ c:nmHide 機器名表示/非表示 -------------------------------------------------- ■ c:nmUp 複数の機器名を一括でアップ -------------------------------------------------- ■ c:rectSize RECTANGLE のサイズを記入 -------------------------------------------------- ■ c:rycnt リレー接点数を集計 リレー接点=4C 基準 c接点化は線番でのみで確認している 同名のコイルがある場合は、重複して表示される -------------------------------------------------- ■ c:sb3w RST, UVW, PN, LN ... 等 3 線、2 線用線番を作成 すでに線番が存在する場合はそれを変更、移動.無い場合は新規に作成。 -------------------------------------------------- ■ c:sbAd 1点指示、またはフェンス選択線分上に線番を追加 SENBAN00 に限定 -------------------------------------------------- ■ c:sbauto 数字線番を自動作成 アースにつながる線分は除外される 既存の線番は書き換えられる -------------------------------------------------- ■ c:sbcnt 線番の配線数を取得 同じ線番の時、端点にポリラインが接続されているときは結合と判断する 端子経由も同じと判断する -------------------------------------------------- ■ c:sbcp 線番カウントアップコピー(BJ-Electrical 用) SENBAN00 のみ角度合わせ対応 既存線番のチェック無し COPYBASE コマンド使用 -------------------------------------------------- ■ c:sbdel 線番削除 -------------------------------------------------- ■ c:sbed 線番編集 -------------------------------------------------- ■ c:sbend sbnon の色を元に戻す -------------------------------------------------- ■ c:sbf 線番をフェンス選択交点上に、移動または追加 -------------------------------------------------- ■ c:sbf_old 線番移動 線番取得範囲限定 GetSbeAll を使っているので遅いが確実 -------------------------------------------------- ■ c:sbin 線番作成(カウントアップも可能)Enter で終了 -------------------------------------------------- ■ c:sbioadr I/O アドレスで線番を作成 配線のないアドレスは作成されない sbiodef のほうが簡単で便利 -------------------------------------------------- ■ c:sbIoD I/O 線番 10 進数 -------------------------------------------------- ■ c:sbiodef 無条件(配線の有無は問わない)で、アドレスをそのまま線番として作成、ss に格納してそれを移動 配線の無いところにも作成できる。 -------------------------------------------------- ■ c:sbIoH I/O 線番 16 進数 -------------------------------------------------- ■ c:sbIoO I/O 線番 8 進数 -------------------------------------------------- ■ c:sbmv 1点指示、またはフェンス選択線分上に一番近い線番を移動(SENBAN00 限定) -------------------------------------------------- ■ c:sbnon 線番の無い配線の色を変える -------------------------------------------------- ■ c:sbovr 線番の重複をチェック -------------------------------------------------- ■ c:sbspc 数字線番の欠番を得る -------------------------------------------------- ■ c:sbUp 線番加算 -------------------------------------------------- ■ c:speccp 仕様をコピー -------------------------------------------------- ■ c:speced 仕様を編集 -------------------------------------------------- ■ c:sptpcp 仕様、型番をコピー -------------------------------------------------- ■ c:sq1y 矢印付き線分を作成する -------------------------------------------------- ■ c:sq2w 2線配線を作成(基準は左/上) -------------------------------------------------- ■ c:sq2y 両矢印付き線分+文字列を作成 -------------------------------------------------- ■ c:sq3w シーケンス用3線、2線を描く -------------------------------------------------- ■ c:sqbr カギ括弧を作成 -------------------------------------------------- ■ c:sqsc シールド線マークを描く -------------------------------------------------- ■ c:sqtw 2線にツイストワイヤを作成(break コマンド使用) -------------------------------------------------- ■ c:sqya 矢印線を作成 -------------------------------------------------- ■ c:tbAry 端子シンボルから端子配列図を作成(線番取得範囲限定) -------------------------------------------------- ■ c:tbCut 端子シンボルの配線を削除しなおす -------------------------------------------------- ■ c:tbfIn 端子シンボルをフェンス選択線分上に挿入 -------------------------------------------------- ■ c:tbIn 端子シンボルを1個挿入 -------------------------------------------------- ■ c:tbnIn 端子シンボルを間隔指定で n 個挿入 -------------------------------------------------- ■ c:tbTop WIPEOUT(ワイプアウト)を使った端子シンボル(ブロック)を最前面にする -------------------------------------------------- ■ C:tbxy 端子配列図の大きさを変更する マス目が1個ずつの LWPOLYLINE で作成されていること 矩形内の TEXT 1個が、中央に再配置される 端子配列図用なので、h > w の時、横方向に整列されるので注意 表っぽい図形のマス目の大きさを変えるには TXGALP が適している -------------------------------------------------- ■ c:tgScale 機器表、端子配列図のサイズを変更 -------------------------------------------------- ■ c:titleclip 複数の図枠ブロックの属性を取得 クリップボードに一覧をコピー TXPASTE コマンドで CAD 上に一覧表を作成 -------------------------------------------------- ■ c:txar TEXT 整列(空白行は無視され、詰まる) -------------------------------------------------- ■ c:txcat TXCAT : 文字列結合 -------------------------------------------------- ■ c:txsb 端子配列図の text から線番を作成 -------------------------------------------------- ■ c:typecp 型番コピー -------------------------------------------------- ■ c:typeed 型番編集 -------------------------------------------------- ■ c:wiresize 電線サイズを記入 -------------------------------------------------- ■ c:xrect for TEST 選択した図形を囲う矩形範囲 -------------------------------------------------- ■ c:zoomL LIMMIN-LIMMAX でズーム -------------------------------------------------- □ checkIdx lst1 lst2 同じ番号を持つグループをまとめる (77 81):(80 81) > res:(77 80 81) 以外は nil -------------------------------------------------- □ checkRyAbc asbs bsbs -------------------------------------------------- □ checkRyCnt rylst -------------------------------------------------- □ chrReplace new old str 1文字置換 -------------------------------------------------- □ cmd_eDeln -------------------------------------------------- □ do_eCopy1 ename floop fedit -------------------------------------------------- □ do_textmove ename0 lwp エレメントの移動 -------------------------------------------------- □ enameInlineList ename linelst -------------------------------------------------- □ func_attHide ename tagName mode mode 0:非表示 /1:表示 /2:反転 -------------------------------------------------- □ func_sbco co -------------------------------------------------- □ func_sbIn mspc blkname senban pos tate 2024.07.08 修正 -------------------------------------------------- □ func_txcat ss -------------------------------------------------- □ get_max_pos plist POINTリストのうち距離が最大な2点を得る 2点のときはそのまま返す -------------------------------------------------- □ getArcRect p0 r st ed lst -------------------------------------------------- □ getBjeRelay ename Bje シンボルの定数 RELAY の値を得る -------------------------------------------------- □ getCirRect p0 r lst -------------------------------------------------- □ getLineRect p1 p2 lst -------------------------------------------------- □ getLwpPointIndexList lwpent LWPの2D座標と位置(0ベース)のリストを得る -------------------------------------------------- □ getLwpRect ent lst -------------------------------------------------- □ getRySenban sbelst ename ブロック ename につながる線番を得る -------------------------------------------------- □ getSbeAll pt1 pt2 tbFlag すべての配線と線番を取得 -------------------------------------------------- □ getSenban ename ブロックの ename から線番を取得 TagName = "SENBAN" 固定 線番が無い時 "" を返す -------------------------------------------------- □ groupIdx lst 同じ番号を持つグループを合体 -------------------------------------------------- □ ifs_draw_tw pt ang w h TW 用 -------------------------------------------------- □ ifs_func_attHide ename tagName mode 属性表示/非表示 mode 0:非表示 /1:表示 /2:反転 -------------------------------------------------- □ ifs_func_pickEle ename pick pick 点に近い LWP エレメントの 2 点を返す(未使用) 頂点数、膨らみは無視される -------------------------------------------------- □ ifs_get_line_all ename 繋がっているすべての線分の EntityName を得る 取りこぼしがある GetSbeAll のほうが確実だが、遅い -------------------------------------------------- □ ifs_get_line_kouten ename 線分上の交点マークを得る -------------------------------------------------- □ ifs_get_line_line ename jogailist 線分につながる線分を追っていく -------------------------------------------------- □ ifs_get_point_line pt jogailist pfuz 座標上の線分を取得 -------------------------------------------------- □ ifs_get_senbanEnames ename ename に繋がる線分の線番 enames を得る 線番ブロック専用 線分の角度を線番ブロック名で判断をしている -------------------------------------------------- □ ifs_insert_sb mspc blkname pos deg sbstr 線番ブロックを挿入 -------------------------------------------------- □ ifs_inWindow pt minPt maxPt 点 pt が矩形 minpt-maxpt 範囲内にあるか -------------------------------------------------- □ ifs_is_douitu p1 p2 p3 p4 同一直線上の判断 -------------------------------------------------- □ ifs_is_suuji str 文字列の1文字目が数字(1234567890)か? -------------------------------------------------- □ ifs_isValidSbBlkName tate bname deg 線番のブロック名が線分の縦横に合っているか -------------------------------------------------- □ ifs_ketugou entnm1 entnm2 同一直線上の判断、結合処理 -------------------------------------------------- □ ifs_lineJoint ss pt minpt maxpt 選択セットの線分同士を結合(未使用) -------------------------------------------------- □ ifs_make_cmark blkname 交点マークのブロックを作る 画層0で色は7で作る -------------------------------------------------- □ ifs_make_cntD blkname -------------------------------------------------- □ ifs_make_cntL blkname コネクタ << -------------------------------------------------- □ ifs_make_cntR blkname コネクタ >> -------------------------------------------------- □ ifs_make_cntU blkname -------------------------------------------------- □ ifs_make_emarkFG blkname 半円付きアースマーク -------------------------------------------------- □ ifs_make_emarkLG blkname 円付きアースマーク -------------------------------------------------- □ ifs_make_plya l kakudo px ang layer PLINEで矢印を作る -------------------------------------------------- □ ifs_make_senban blkname VFlag -------------------------------------------------- □ IFS_MAKE_SQE1 blkname -------------------------------------------------- □ IFS_MAKE_SQE2 blkname -------------------------------------------------- □ ifs_make_sqsc typ -------------------------------------------------- □ ifs_make_sqya l kakudo n txth 矢印付き線分を作成する 両矢印の時は、線分の中心に文字列を描く。 -------------------------------------------------- □ ifs_make_wipeoutTB blkname outTB -------------------------------------------------- □ ifs_midPoint p1 p2 -------------------------------------------------- □ ifs_sort slist 文字列リストをソート 重複文字列は整理される(未使用) 昇順のみ -------------------------------------------------- □ ifs_string_replace newStr oldStr inStr vle-string-replace(未使用) -------------------------------------------------- □ ifs_string_split keys string vle-string-split(未使用) 2バイト文字には対応していない -------------------------------------------------- □ ifs_strSplit str delim 文字列分離 -------------------------------------------------- □ ifs_sub_namecp ename 機器名コピー -------------------------------------------------- □ ifs_ValidSbBlkName tate 有効な線番のブロック名と角度のリストを得る ない場合は、 ("" 0.0) を返す -------------------------------------------------- □ ifs_zenhanlst kigou space -------------------------------------------------- □ ifs_ZenNum str kigou space hanflag (未使用) -------------------------------------------------- □ insert_cnt typ blkname pos sc -------------------------------------------------- □ insert_earth typ pos sc -------------------------------------------------- □ insert_tb mspc blkname pos sc -------------------------------------------------- □ isLWPvertex pt lwpEname pt が lwp の頂点であるか -------------------------------------------------- □ jointLines entnm1 entnm2 同一直線上の判断、結合処理 -------------------------------------------------- □ jointLinesPts pt1 pt2 -------------------------------------------------- □ lineEnameSebanEnames lineEname 線分ename から 線分上にある線番 ename リストを得る -------------------------------------------------- □ lineSenban p1 p2 Line 2点から線番を取得 線番のリストを返す。存在しない= nil を返す -------------------------------------------------- □ lineSenbanEnames p1 p2 Line 2点から線番を取得 線番ブロック ename のリストを返す -------------------------------------------------- □ lstReplace lst index newItem リストの中身を入れ替える Index は、0 ベース -------------------------------------------------- □ makeCRect center w h 中心指定で RECTANGLE 作成 -------------------------------------------------- □ makeLCRect lc w h LeftCenter -------------------------------------------------- □ makeText opt pt txt txtH txtW txtR -------------------------------------------------- □ nearSbe kp sbes 点 kp に一番近い線番 ename を得る -------------------------------------------------- □ ntxtMove txtss x0 y0 x1 y1 txtXof txtYsp hflag 複数の文字列を、wpt1 wpt2 の窓内に配置 -------------------------------------------------- □ onTateLine pt -------------------------------------------------- □ perPoint pos p1 p2 点から線分への垂線の交点を求める -------------------------------------------------- □ pickArea pick -------------------------------------------------- □ ptuRead ptuName -------------------------------------------------- □ relayType relay -------------------------------------------------- □ rotate pt ang rotate z-axis -------------------------------------------------- □ rySearch ryName -------------------------------------------------- □ sbEnameFormSbeList sbeList lineEname getSbeAll のリスト sbelist から 線分 lineEname を含むグループの線番 ename のリストを得る -------------------------------------------------- □ sbKaiten sbename 線番の角度合わせ -------------------------------------------------- □ sortMpiList mpiList tateFlag -------------------------------------------------- □ sqww sqn0 ww 3線配線を作成(基準は左/上) -------------------------------------------------- □ strToNumList str 文字列 "1, 3, 5-7" を (1 3 5 6 7)に -------------------------------------------------- □ sub_nmed ename -------------------------------------------------- □ sub_sbed ename -------------------------------------------------- □ sub_sbio mode I/O 線番 -------------------------------------------------- □ sub_speccp ename -------------------------------------------------- □ sub_speced ename -------------------------------------------------- □ sub_sptpcp ename -------------------------------------------------- □ sub_typcp ename -------------------------------------------------- □ sub_typed ename -------------------------------------------------- □ swapListItem lst index item リストの中身を入れ替え -------------------------------------------------- □ swapListNth lst index1 index2 リストを入れ替え -------------------------------------------------- □ txtcatByEnameLst lst y座標が同じTEXTを結合 結合した場合: 残ったename、出来なかった場合: nil を返す