Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

Keynote上で選択中のオブジェクトのRectangleを合成

Posted on 4月 17, 2019 by Takaaki Naganoya

Keynoteでオープン中の書類の現在表示中の(選択中の)スライド(ページ)上のshapeオブジェクトの矩形領域をすべて合成したRectangleのshapeオブジェクトを作成するAppleScriptです。

本来はほかの動作を行うプログラムの試作品なのですが、いまのところNSRectの合成を行うのが目的になっています。

PlaneなAppleScriptとCocoaの機能の両方を組み合わせないと実現できない機能でもあり、もうひと押しですごい処理ができそうな気がしないでもありません。

Keynote v9.xであらたにAppleScript用語辞書に記載された「selection」はまだfront documentやcurrent slideのレベルでしか動作しておらず、slide上で選択中のiWork itemや各Object中のobject textの選択部分を取得できたりはしないので注意が必要です。


▲実行前


▲実行後

AppleScript名:Keynote上で選択中のオブジェクトのRectangleを合成
—
–  Created by: Takaaki Naganoya
–  Created on: 2019/04/17
—
–  Copyright © 2019 Piyomaru Software, All Rights Reserved
—
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

property totalRect : missing value

tell application "Keynote"
  tell front document
    tell current slide
      –SelectionがまだKeynoteでうまく働いていないので、そのかわり
      
set aaList to every iWork item
      
set aList to {}
      
repeat with i in aaList
        if (class of i) is in {shape} then
          set the end of aList to contents of i
        end if
      end repeat
      
      
–最初のアイテムを取り出す
      
set aFirst to contents of first item of aList
      
set {x1Pos, y1Pos} to position of aFirst
      
set aHeight to height of aFirst
      
set aWidth to width of aFirst
      
set my totalRect to {origin:{x:x1Pos, y:y1Pos}, |size|:{|width|:aWidth, |height|:aHeight}}
      
      
–残りのアイテムをNSRectに変換しつつ加算      
      
set aList to rest of aList
      
      
repeat with i in aList
        set aProp to properties of i
        
set aHeight to height of aProp
        
set aWidth to width of aProp
        
set anArea to aHeight * aWidth
        
set {x2Pos, y2Pos} to position of i
        
        
set tmpRect to {origin:{x:x2Pos, y:y2Pos}, |size|:{|width|:aWidth, |height|:aHeight}}
        
calcUnionRect(tmpRect) of me –Rectangleの加算を行う        
      end repeat
      
      
–Rectangleを合成した大きさと位置でshapeを新規作成
      
set tRect to (totalRect as record)
      
set newProp to {position:{(x of origin of tRect), (y of origin of tRect)}, width:(|width| of |size| of tRect), height:(|height| of |size| of tRect)}
      
set newShape to make new shape with properties newProp
      
set opacity of newShape to 30
    end tell
    
  end tell
end tell

on calcUnionRect(addRect)
  set totalRect to current application’s NSUnionRect(totalRect, addRect)
end calcUnionRect

★Click Here to Open This Script 

(Visited 62 times, 1 visits today)

More from my site

  • Keynoteの各slideのtitleから目次のテキストを作成してNumbersの表を作成Keynoteの各slideのtitleから目次のテキストを作成してNumbersの表を作成
  • Keynoteのexport optionsにバグKeynoteのexport optionsにバグ
  • 矩形座標同士の衝突判定(共通部分の検出) v3b矩形座標同士の衝突判定(共通部分の検出) v3b
  • Keynoteで選択中の表を取得するKeynoteで選択中の表を取得する
  • RectangleBinPackを用いて2D Bin Packを解くRectangleBinPackを用いて2D Bin Packを解く
  • Keynoteの最前面のドキュメントの現在のスライドに指定月の日曜日はじまりカレンダーを表で作成Keynoteの最前面のドキュメントの現在のスライドに指定月の日曜日はじまりカレンダーを表で作成
Posted in list Record | Tagged 10.11savvy 10.12savvy 10.13savvy 10.14savvy Keynote NSRect | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • AppleScriptによるWebブラウザ自動操縦ガイド
  • ドラッグ&ドロップ機能の未来?
  • macOS 13, Ventura(継続更新)
  • Intel MacとApple Silicon Macの速度差〜画像処理
  • macOS 12.x上のAppleScriptのトラブルまとめ
  • マウスの右クリックメニューをカスタマイズするService Station
  • macOS 12.3 beta 5、ASの障害が解消される(?)
  • CotEditorで選択範囲の行頭にある数字をリナンバーする v1
  • PFiddlesoft UI Browserが製品終了に
  • SF Symbolsを名称で指定してPNG画像化
  • 不可視プロセスで表示したNSAlertを最前面に表示
  • 与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
  • macOS 12.3 beta4、まだ直らないASまわりの障害
  • 新刊発売:AppleScriptによるWebブラウザ自動操縦ガイド
  • Safariで表示中のYouTubeムービーのサムネイル画像を取得
  • macOS 12のスクリプトエディタで、Context Menu機能にバグ
  • macOS 12.3上でFinder上で選択中のファイルをそのままオープンできない件
  • Pixelmator Pro v2.4.1で新機能追加+AppleScriptコマンド追加
  • SafariでブックマークされたURL一覧を取得
  • SkimのAppleScriptサポート機能にバグ

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1391) 10.14savvy (586) 10.15savvy (434) 11.0savvy (274) 12.0savvy (165) 13.0savvy (20) CotEditor (60) Finder (47) iTunes (19) Keynote (97) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (21) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (42) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (118) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWorkspace (20) Numbers (55) Pages (35) Safari (40) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKWebView (22) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC