The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   OmniGraffle General (http://forums.omnigroup.com/forumdisplay.php?f=10)
-   -   Possible to Create Spatial Offset from Line to Shape/Object? (http://forums.omnigroup.com/showthread.php?t=27636)

acowan 2013-01-02 08:52 PM

Possible to Create Spatial Offset from Line to Shape/Object?
 
1 Attachment(s)
I have a particular style from Illustrator that I'm trying to replicate. I'm pretty close (and I can live with what I've got).

The one thing I'm 'graffling' with a little is seeing if it's possible to create a spatial separation between lines and objects while still using magnets. So, for example, I've got a line connected to an object using objects. Good. But they're in direct contact with each other and I'd like to create a small visual space between them that Omnigraffle manages. (I just prefer the way it looks).

In the attached example, you can see the spacing from the line that starts from the circle with 'BEGINNING...' in it and then terminates on the rectangle with 'Process (1)' in it. (This example I did w/ Illustrator). Some shapes in the example don't have the spacing (like the line relative to the circle). That's fine- if I could figure out a way to do it I'd be fine just doing it across the board.

RobTrew 2013-01-02 11:33 PM

2 Attachment(s)
I would do this with [B]File > New Resource > New Stencil[/B] making myself a new stencil containing a set of the basic shapes I needed, in which each shape was grouped ([B]Arrange > Group[/B] ⌘⇧G) with a similar but slightly larger shape, which:
[LIST=1][*]is behind it,[*]shares its centre,[*]has neither fill nor stroke,[*]and has the magnet pattern that you want[/LIST]
to simply provide the invisible fringe.

Once you have prepared your stencil, you can drag from it as many copies as you need of each specially prepared shape, and there will automatically be gaps at the start and end of any connecting arrows between such shapes.

(And, of course, if you submit your new stencil to [URL="http://www.graffletopia.com"]Graffletopia[/URL], you will find it available through the stencil window on any machine on which you subsequently use OmniGraffle).

[IMG]http://forums.omnigroup.com/attachment.php?attachmentid=2676&stc=1&d=1357201732[/IMG]
[IMG]http://forums.omnigroup.com/attachment.php?attachmentid=2677&stc=1&d=1357206004[/IMG]

RobTrew 2013-01-03 03:55 AM

To automate the process of building a stencil of shapes with invisible margins, you could:
[LIST=1][*]Select some shapes with the required dimensions and magnets,[*]run the script below.[/LIST]
(Adjust the value of [I]pMargin[/I] to fine-tune the gap between arrows and shapes)

(Perhaps you could use this to derive a margin-framed version of an existing process stencil)

[CODE]-- GROUP THE SELECTED SHAPE(s) WITH A LARGER (INVISIBLE) FRAMING SHAPE WHICH HAS THE SAME PATTERN OF MAGNETS
-- TO ALLOW FOR A MARGIN OF SPACE BETWEEN THE SHAPE AND THE START/END POINTS OF CONNECTING LINES

property pTitle : "Make invisible frame for selected shape(s)"
property pVer : "0.05"

property pMargin : 15

property pDoubleMargin : pMargin * 2

on run
tell application id "OGfl"
tell front window
set lstSeln to selection
if length of lstSeln < 1 then return

set lstNewSeln to {}
repeat with shpBase in lstSeln
set shpBase to contents of shpBase
if class of shpBase is shape then
set {lstOrigin, lstSize, lstMagnets} to {origin, size, magnets} of shpBase

-- Calculate the position and dimension for the framing shape
repeat with i from 1 to 2
set item i of lstOrigin to (item i of lstOrigin) - pMargin
set item i of lstSize to (item i of lstSize) + pDoubleMargin
end repeat

-- Make a frame (copying the magnets from the base shape) and group the two
tell its canvas
set shpFrame to make new shape at end of graphics with properties {fill:no fill, draws stroke:false, draws shadow:false, magnets:lstMagnets, origin:lstOrigin, size:lstSize}
set end of lstNewSeln to (assemble {shpFrame, shpBase})
end tell
end if
end repeat

set selection to lstNewSeln
end tell
end tell
end run
[/CODE]

acowan 2013-01-03 09:00 PM

Rob, I can't imagine a more perfect answer. Thanks.


All times are GMT -8. The time now is 07:50 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.