鍋CADスクリプト投稿専用
このフォームからは投稿できません。
name
e-mail
url
subject
comment

[トップに戻る] [新規投稿] [ワード検索] [管理用]



[23] 配置済みシンボルの集計 投稿者:管理人 投稿日:2021/07/19(Mon) 10:52 [返信]  

// シンボル集計 2021/07/19 NabeTech

Program QuickInfo;
var
i, id, max, et, lt, lc, lw, page, layer, apage, alayer, count : Integer;
d1, d2, d3, d4, d5 : double;
s, sname : string;
begin
Message('解析する要素を選択してください。');
While True do
begin
id := Hit(et, d1, d2, d3, d4, d5);
count := 0;
if id > -1 then
begin
if et = 4 then // シンボル
begin
// Writeln('X=' + FloatToStr(d1));
// Writeln('Y=' + FloatToStr(d2));
s := GetText(id); // シンボル名をIDより獲得する

max := GetMax(); // 総要素数の獲得
apage := GetActivePage();
alayer := GetActiveLayer();
for i:=0 to max-1 do // 検索ループ
begin
GetPageLayer(i, page, layer);
if page <> apage then // 現ページなのか?
continue;
if layer <> alayer then // 現レイヤなのか?
continue;
if GetEntitie(i, et, lt, lc, lw, d1, d2, d3, d4, d5) then
begin
if et=4 then // シンボル
begin
sname := GetText(i); // 文字をIDより獲得する
if s = sname then
inc(count); // カウントする
end;
end;
end;
OkMsgBox(s+'='+inttostr(count));
end
else
Beep(); // 警告音
end;
end;
end.



[21] ラジオボタンサンプル 投稿者:管理人 投稿日:2021/07/12(Mon) 18:57 [返信]  

// ラジオボタンサンプル 2021/06/29 NabeTech

Program TestDialog;
Begin
InitDlg(); // ダイアログ初期化

RadioItemsAdd('abc'); // アイテムの追加
RadioItemsAdd('bbc');
RadioItemsAdd('ccc');
RadioItemsAdd('zzz');
RadioItemsAdd('fff');

// ラジオボタンの追加(タイトル,横位,縦位置,幅,高さ,列数
AddRadio('TITLE', 20, 15, 300, 150, 2);

If ShowDlg(350, 250,'ラジオボタン') <> True Then
Exit;

OkMsgBox(IntToStr(GetRadioIndex()));
End.

※Ver9.13以降でないと動きません。



[18] 多重ダイアログサンプル 投稿者:管理人 投稿日:2021/05/05(Wed) 13:39 [返信]  

// ダイアログサンプル 2021/05/05 NabeTech

Program TestDialog;
var // グローバル変数宣言
pa, pb, pc : double;

Begin
AddLabel(40, 20, 80, 13, 'パラメータA');
AddLabel(40, 50, 80, 13, 'パラメータB');
AddLabel(40, 80, 80, 13, 'パラメータC');

AddEdit(1, 130, 20, 50, 21, '1');
AddEdit(2, 130, 50, 50, 21, '2');
AddEdit(3, 130, 80, 50, 21, '3');

If ShowDlg(220, 150,'ダイアログ1') <> True Then
Exit;

pa := StrToFloat(GetDlgText(1)); // 文字を実数に変換
pb := StrToFloat(GetDlgText(2));
pc := StrToFloat(GetDlgText(3));

InitDlg(); // ダイアログ初期化
AddLabel(20, 20, 80, 13, 'a+b+c='+FloatToStr(pa+pb+pc));
If ShowDlg(300, 100,'ダイアログ2') <> True Then
Exit;
End.



[14] 文字拡縮 投稿者:シェカラ氏 投稿日:2017/09/01(Fri) 14:33 [返信]  

Download:14.zip 14.zip 選択HITした文字列をクリック毎に拡大、SHIFTまたはALTキー押し下げ状態ではクリック縮小されます。
文字列以外をHITしたり Escキーで終了します。



[13] GetKeyStat() サンプル 投稿者:管理人 投稿日:2017/08/29(Tue) 06:56 [返信]  

特殊キーの押下状態を取得します。
当然ですが、Ver9以降のみで動作します。

program GetKeyStatDEMO; // 2017/08/27
const
VK_SHIFT = $10; // Shiftキー
VK_CONTROL = $11; // Ctrlキー
VK_MENU = $12; // Altキー
var
stat : string;
begin
OkMsgBox('何かキーを押して下さい');
if GetKeyStat(VK_SHIFT) then
stat := ' Shift ';
if GetKeyStat(VK_CONTROL) then
stat := stat + ' Ctrl ';
if GetKeyStat(VK_MENU) then
stat := stat + ' Alt ';

OkMsgBox(stat);
end.



[12] ここはスクリプトの投稿専用です。 投稿者:管理人 投稿日:2017/05/15(Mon) 17:11 [返信]  

↓質問は「鍋CAD サポート掲示板」にお願いします。


[11] CAD編集 投稿者: 投稿日:2017/04/04(Tue) 13:50 [返信]  

お世話になります。
客先から入手したCADデータを鍋キャド8で編集(線等の削除)する方法教えてください。



[10] 点を円 投稿者:管理人 投稿日:2016/01/14(Thu) 16:20 [返信]  

Download:10.zip 10.zip 現ページのアクティブなレイヤ内にある全ての点を円に変換します。
直径も指定できますが、適当に改造してお使い下さい。



[8] THD変数化 投稿者:管理人 投稿日:2015/12/01(Tue) 11:30 [返信]  

Download:8.zip 8.zip エディターに読み込んだNCコードのTHDを変数化します。
T->T#
H->H#
D->D#



[7] FANUC2OSP Ver1.2 投稿者:管理人 投稿日:2015/03/21(Sat) 19:10 [返信]  

Download:7.zip 7.zip FANUC系NCデータをOSP用に変換するスクリプトです。
事前に内蔵エディタにNCデータを準備しておいて下さい。

自動編集ヶ所
1.G54..G59をG15H1..H6に変更する
2.G80を消す
3.M98をCALL Oに変更する
4.M99をRTSに変更する



[6] ページリスト DELUX 投稿者:管理人 投稿日:2014/12/05(Fri) 08:59 [返信]  

Download:6.zip 6.zip ページとレイヤのリストをエディタに書き出します。
[作図要素数]も書き出すデラックス版です。
※Ver8.21以降のみ対応



[5] ページジャンプ 投稿者:管理人 投稿日:2014/11/30(Sun) 09:35 [返信]  

Download:5.zip 5.zip 裏ページの要素をヒットすると、そのページ・レイヤにジャンプします。

// gotoPage 2014/11/28 Nabetech
var
id, ty, page, layer: integer;
d1, d2, d3, d4, d5 : double;
begin
Message('ジャンプ先要素をヒットして下さい');
id := Hit(ty, d1, d2, d3, d4, d5);
if id > -1 then
if GetPageLayer(id, page, layer) then
Begin
ActivePage(page);
Activelayer(layer);
End;
end.



[4] ページリスト 投稿者:管理人 投稿日:2014/11/27(Thu) 17:03 [返信]  

Download:4.zip 4.zip ページとレイヤのリストをエディタに書き出します。
未公開関数のGetPageName()とGetLayerName()のサンプルとして下さい。



[3] StringListの使用例 投稿者:管理人 投稿日:2014/10/29(Wed) 14:05 [返信]  

Download:3.zip 3.zip StringListを使うと大量の文字列を簡単に扱う事が出来ます。
以下、使用例です。

// NCコードに行の挿入例 2014/10/29 NabeTech
// エディタにNCデータを準備しておいて下さい。

Program WorkPositionEdit;
var
i, leng : integer;
s : string;
sl : stringlist;

begin
sl := stringlist.Create; // StringListの利用例
sl.Clear;

leng := EditorLength(); // エディタの行数を取得する
for i:=1 to leng do // StringListに全行を格納する
sl.Add(EditorRead(i));

EditorCrear(); // エディタの消去

for i:=1 to leng do
Begin
s := sl.GetItem(i-1); // 注:インデックスと違う
Writeln(s);
if Length(s) < 1 then continue;
if Pos('%', s) > 0 then continue;
Writeln('M01');
End;

sl.Free; // 解放を忘れずに
End.



[2] シーケンスNo 投稿者:管理人 投稿日:2014/08/23(Sat) 12:51 [返信]  

// シーケンスナンバー追加ログラム
// Ver8.12以降をお使い下さい。 2013/11/29 NabeTech

Program SeqnNo;
var
i, n, leng : integer;
s : string;

begin // エディタにNCデータを準備しておいて下さい。
n := 1;
leng := EditorLength(); // エディタの行数を取得する
for i:=1 to leng do
Begin
s := EditorRead(i);
if Length(s) < 1 then continue;
if Pos('%', s) > 0 then continue;
if Pos('(', s) > 0 then continue;
if Pos('N', s) > 0 then continue;

EditorWrite(i, IntToStrf('N%.4d',n)+s);
inc(n);
End;
End.



[1] CGI更新 投稿者:管理人 投稿日:2014/08/23(Sat) 12:49 [返信]  

スバム投稿が激しいため、投稿掲示板のCGIを更新しました。

旧投稿記事は↓にありますので、参照は出来ます。(投稿不能)
http://www.nabetech.com/ntcad/scriptpost/nabeclip.cgi



記事No 削除キー

- ClipBoard Antispam Version -