//Inkscape_Object_Copy.uws // 現在選択中のオブジェクトを新規レイヤー(前面)にコピーします。 // レイヤーの不透明度やオブジェクトのスタイルはコピー元と同じになります。 // 複製レイヤー名は"現在のレイヤー名(半角スペース)Objcopy"となります。 // 2回繰り返して実行するとレイヤー名の後ろに#連番("現在のレイヤー名 Objcopy#1") // が付きます(Inkscapeの仕様。連番は1から)。 Inkscape=GETID(" - Inkscape","gdkWindowToplevel",0.1) While Inkscape < 0 MsgBox("Inkscapeが起動してません") Exit Wend LockHard(True) // 選択中のオブジェクトをInkscapeのクリップボードへコピー CtrlWin(Inkscape,ACTIVATE) SCKEY(Inkscape,VK_SHIFT,VK_CTRL,L) KBD(VK_CTRL,2,40) KBD(VK_SHIFT,2,40) Layers=GETID("レイヤー(S) (Shift+Ctrl+L)","gdkWindowToplevel",-1) //Layers=GETID("Layers (Shift+Ctrl+L)","gdkWindowToplevel",-1) CtrlWin(Inkscape,ACTIVATE) KBD(VK_F1,0,40) SCKEY(Inkscape,VK_CTRL,C) KBD(VK_CTRL,2,80) Sleep(0.2) SCKEY(Inkscape,VK_ALT,L) KBD(VK_ALT,2,20) KBD(VK_N,0,20) Sleep(0.2) // 現在のレイヤー名を取得 Ren_Layer=GETID("レイヤー名を変更","gdkWindowToplevel") //Ren_Layer=GETID("Rename Layer","gdkWindowToplevel") CtrlWin(Ren_Layer,ACTIVATE) SCKEY(Ren_Layer,VK_CTRL,C) KBD(VK_CTRL,2,20) Sleep(0.2) KBD(VK_ESC,0,40) wks1=GetStr(0)+" Objcopy" // レイヤーの不透明度を取得 CtrlWin(Layers,ACTIVATE) MOUSEORG(Layers) mzx=G_MOUSE_X mzy=G_MOUSE_Y LPW=STATUS(Layers,ST_WIDTH) LPH=STATUS(Layers,ST_HEIGHT) bxX=val(LPW)-40 bxY=val(LPH)-27 BTN(RIGHT,0,bxX,bxY,300) KBD(VK_A,0,40) KBD(VK_CTRL,1,40) KBD(VK_C,0,40) KBD(VK_CTRL,2,40) Sleep(0.2) wks2=GetStr(0) // 新規レイヤー作成 CtrlWin(Inkscape,ACTIVATE) SCKEY(Inkscape,VK_ALT,L) KBD(VK_ALT,2,40) KBD(VK_RETURN,0,40) Sleep(0.2) SendStr(0,wks1,True) Sleep(0.2) Add_Layer=GETID("レイヤーを追加","gdkWindowToplevel") //Add_Layer=GETID("Add Layer","gdkWindowToplevel") CtrlWin(Add_Layer,ACTIVATE) SCKEY(Add_Layer,VK_CTRL,V) KBD(VK_CTRL,2,20) Sleep(0.2) KBD(VK_RETURN,0,40) Sleep(0.2) CtrlWin(Inkscape,ACTIVATE) SCKEY(Inkscape,VK_CTRL,VK_ALT,V) KBD(VK_CTRL,2,40) KBD(VK_ALT,2,40) Sleep(0.5) CtrlWin(Layers,ACTIVATE) SendStr(0,wks2,True) Sleep(0.2) BTN(RIGHT,0,bxX,bxY,300) KBD(VK_A,0,40) KBD(VK_CTRL,1,40) KBD(VK_V,0,40) KBD(VK_CTRL,2,40) MOUSEORG(0) Sleep(0.2) CtrlWin(Inkscape,ACTIVATE) MMV(mzx,mzy,200) LockHard(False) MsgBox("done.")