<div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box. <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
<div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
<div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
<div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
</div>
<div class="spacer"></div>
<div class="tbf_row">
<div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
<div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
<div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
<div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
<li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
<li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
<li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
<li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
<li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
<div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
<!-- begin centercolumn -->
<div id="centercolumn">
<!-- begin rightcolumn_container -->
<div id="rightcolumn_container">
<!-- begin rightcolumn -->
<!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
</div><!-- end tearoffbox_wide_container for watchlist items -->
<!-- begin tearoff box wide -->
<div class="tearoffbox_wide_container">
<div class="tearoffbox_wide_tips">
<div class="tip_display">
<div class="tips_sponsor_logo">
</div>
<h6>Quick Download of Multiple Attachments in Apple Mail</h6>
<p><p>To download a bunch of attachments quickly, look in the header of the email message that they came in. Make sure the triangle adjacent to the paperclip icon is pointing to the right (click the triangle if needed), and then drag the paperclip icon to your Desktop or to another folder. Release the mouse button and all attachments copy to that location.</p></p>
<p>Visit <a href="http://www.takecontrolbooks.com/snow-leopard-mail">Take Control of Apple Mail in Snow Leopard</a></p>
</div>
<div class="tearoffbox_wide_bottom_tips">
<div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/214">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
<div class="tbf_wide_80" id="hc_rc_4821">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_4821"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4821', 'hc', '4821'); return true;">Close</a></div>
<div class="featured_meta"><div class="meta_article">30 Oct 2000 | <a href="/article/6179?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
<div id="article_box_4821"><P>Sooner or later, you're going to want to draw a diagram. Of course, you may already know the importance of diagrams - perhaps because you have to chart team organization or workflow at the office. But if you're like me, diagramming just sneaks up on you; you give it no thought until suddenly you need to show someone some sort of conceptual structure. And it isn't just the final presentation that's significant; it's the whole process of thought, creation, and alteration. What you want is the computer equivalent of a pencil or a blackboard, but neater, cleaner, quicker; it should be easy to sketch your initial idea and easy to change it without messing it up.</P><P>How do you do that on the Mac? Many programs I've discussed in past issues of TidBITS <EM>can</EM> be used for diagrams, including Inspiration, Canvas, and even Excel. But ConceptDraw, from Computer Systems Odessa Corp., is dedicated to diagramming, and brings great ease, originality, and power to the task.</P><P><<A HREF="http://www.conceptdraw.com/">http://www.conceptdraw.com/</A>><BR><<A HREF="http://db.tidbits.com/article/06025">http://db.tidbits.com/article/06025</A>><BR><<A HREF="http://db.tidbits.com/article/05801">http://db.tidbits.com/article/05801</A>><BR><<A HREF="http://db.tidbits.com/article/04852">http://db.tidbits.com/article/04852</A>></P><P>To understand ConceptDraw, let's explore it in three conceptual layers that reveal themselves as you dig successively deeper into its workings: drawing, connections, and "smart" objects.</P><P><STRONG>Drawing</STRONG> -- When you start using ConceptDraw, you'll probably wonder what the fuss is about. It looks like a drawing program. Indeed, all the standard basic drawing features are present; ConceptDraw may feel a bit clunky in comparison to the slick, powerful interfaces of Canvas or CorelDRAW, but no important basic functionality is missing.</P><P>You can draw a path of lines, Bezier curves, and sectors of circles and ellipses. A path can have line color, thickness, dot-and-dash style, and arrow style. A closed path can have fill color, pattern, and shadow. Every distinct path is an object, or multiple paths can be joined to form an object; multiple objects can be grouped. Objects can be resized, flipped, and free-rotated. Every object has a movable text box, whose text can be styled. There are helpful tools for aligning and distributing objects, and for copying style features between objects. The cursor can snap to a grid or to an object's bounding box or outline, and objects can be "glued" to a guideline. Documents can even have multiple layers and multiple pages.</P><P>Still, although ConceptDraw wouldn't be useful if you couldn't draw with it, drawing alone is not enough to make a diagram. For that, you need connections.</P><P><STRONG>Connections</STRONG> -- It turns out that every object in ConceptDraw is either a normal object or a connector object. A connector object has two inherent connection points, one at each end. A normal object has four inherent connection points, at the midpoints of the sides of its bounding box. Furthermore, you can give any object as many additional connection points as you like, which you can move or delete if you change your mind.</P><P>Now, when you drag one of a connector object's two inherent connection points, its other inherent connection point stays put; the object stretches and rotates to compensate. And when you drag one of a connector object's inherent connection points onto a connection point of another object, and let go, the two connection points become attached; this means that if you move the second object by dragging, resizing, or rotating it, the connector object's inherent connection point moves too - while its other inherent connection point stays put. Thus, if you have some normal objects linked by connector objects, you can move any of the normal objects and still maintain the linkages.</P><P>ConceptDraw supplies two default connector objects - a straight line, and a sequence of lines that magically stay straight and perpendicular to each other. However - and this is the Really Interesting Part - you can turn <EM>any</EM> object into a connector object; so connections can appear exactly as you want them. And any object (including a connector object) can have text; so connections can be labeled. Plus, you're in charge of where an object's connection points are; so connections stay neat and precise.</P><P>Thus, ConceptDraw supplies you with much more power to create and maintain your diagram the way you want it than does a drawing program not dedicated to diagramming. However, the best is yet to come: ConceptDraw's objects can be "smart."</P><P><STRONG>"Smart" Objects</STRONG> -- Any draw program maintains, for each object, certain internal data describing it and dictating the object's drawn representation - the object's height, its width, its degree of rotation, the endpoints and other determining parameters of all the segments of all its paths, its line thickness, its fill color, its text and all its text style information, and so forth. ConceptDraw, unlike any drawing program I know, gives you direct access to all this data. Select any object and choose Show Table from its contextual menu, and a new window opens, rather like a spreadsheet; that's the object's data.</P><P>You can modify the data in this table, and see your changes instantly reflected in the drawn representation; you thus have precise numeric control over the object. But the true power emerges when, instead of a raw value, you enter a formula describing a value as the result of a calculation, using standard arithmetic operations and a repertoire of other math and string functions. Such a calculation can involve other values from this object's table - or from another object's table. Thus, you can give an object special customized behavior.</P><P>For example, normally when you rotate an object, its text rotates with it; for an object whose text should never rotate, set its TextAngle to -Angle (the negative of the object's own rotation). To make an object's width always be the same as that of another object named ObjID1, set its Width to ObjID1.Width. To make an object's text always state the object's height, set its TheText to ValToText(Height). You can even give an object its own custom contextual menu, whose items can operate on the object's values.</P><P>As you contemplate the power of such formula-based access to an object's specifications, you may experience a feeling of awe, like that well-known woodcut where the scholar pokes his head out through the night sky to see the wheels and gears of the universe beyond. You may also have a feeling of regret that you didn't pay more attention to your high school trigonometry. For example, I was able to create a rectangular object which, when rotated, remains always a parallelogram with vertical sides; but it took four cups of coffee, and afterwards I had to lie down.</P><P>[Kerry Magruder, one of the creators of the HyperCard-based notetaking program HyperNote, has researched the fascinatingly convoluted history of the image Matt mentions above. It's worth reading. -Geoff]</P><P><<A HREF="http://www.earthvisions.net/flat_earth.htm">http://www.earthvisions.net/flat_earth.htm</A>></P><P><STRONG>Pet Project</STRONG> -- ConceptDraw comes loaded with libraries of normal and connector objects, many of them smart, ready for you to assemble into diagrams. There are libraries for describing object-oriented structures and information models, such as Booch, UML, and Express-G (don't worry, I don't know what any of that means either); for flowcharting and dataflow; for database modeling; for drawing networks; for showing relationships among Web pages; for constructing room layouts; for circuit diagrams; for technical drawings; for organizational charts and project planning; and lots more, including extra clip art, symbols, and map pieces.</P><P>You can also create your own libraries; so naturally I had to give this a try, using a pet project of mine, sentence diagrams. (Readers who are old enough may remember sentence diagrams from high school; as an ex-language teacher, I still use them.) The results were spectacular. After a few days of design and experimentation, I ended up with a small library that makes sentence diagrams dead simple to construct. Individual words are "smart" objects whose line length automatically adjusts to the length of the text, and with connection points that stay evenly spaced. Horizontal words are linked by connector objects expressing subject-predicate, object-complement, and so forth. Slanting modifier words are "glued" to horizontal words at connection points through something called a "control point," which is too complicated to explain here. My most brilliant achievement was the right-angle that connects one modifier to another (as in "very humane"); it's a smart connector object that keeps its right-angle and its rotation when its connection points are moved.</P><P>To see what I'm talking about, check out the Web page below, which shows two of my sentence diagrams. But you won't learn much from this, because what's important is not the diagram but the process by which it was created. You'll just have to trust me when I say that once I had the library developed, the diagrams were really quick and easy to make.</P><P><<A HREF="http://www.tidbits.com/resources/553/sentences.html">http://www.tidbits.com/resources/553/ sentences.html</A>></P><P><STRONG>Wish List</STRONG> -- ConceptDraw is a young program with frequent updates, and it feels immature, even a bit raw in some ways. It treats screen real estate like a Windows port, with status bar at the bottom and innumerable palettes at the top. The interface design is odd: many common actions are available only through palette buttons (they have no menu equivalents), while others are buried deep in dialogs. If you make a mistake entering a formula you get the most unhelpful error message I've ever seen. The program employs some non-Mac-like conventions, and there are lots of "secret" keyboard equivalents that you can discover only from the manual.</P><P>The manual is decent HTML, with excellent use of animated GIFs to illustrate procedures, but it's tedious and compendious, not instructive or explanatory, and contains some confusing errors. What's really needed is a tutorial, as well as a guide to the libraries, which are not explained at all. Also, someone whose native language is English should be hired to correct the spelling and grammatical errors that pervade the manuals and the program itself.</P><P>I occasionally saw ConceptDraw crash, particularly when I tried to paste something it didn't like; so save your work often. Several times I had to force-quit when it refused to quit normally. Some operations, such as opening certain libraries, are very slow. It initially didn't print properly (rotated text was not rotated on paper as on the screen), but the developers eventually sent me a beta that fixed this. Also, I was astonished when I opened a saved ConceptDraw document and found that the text had been corrupted wherever I had used high-ASCII characters (for example, Option-p had become a question mark); the developers told me of a setting that prevents this, and explained it as a cross-platform issue, but to me there can be no excuse for text changing between closing a document and opening it again on the same machine.</P><P>Finally, now that I've developed a taste for ConceptDraw's smart objects, I wish they were even smarter. If its formula language were more like a programming language, and if it could express valuable notions such as "all objects to which this object is connected," some even more powerful effects could be achieved. Perhaps this will be forthcoming in a future version.</P><P><STRONG>Endpoint</STRONG> -- It's hard to believe, but there's quite a bit about ConceptDraw that I haven't mentioned. You can customize object behavior in other ways, such as what properties (e.g. rotation) are locked, and what an object does when double-clicked, or when its group is resized. Objects can contain links, and can be made to open other documents, other pages of the same document, or Web URLs. Also, ConceptDraw is cross-platform; the Windows version does OLE embedding and linking, and there's a converter for importing files from Visio (its main competitor, now owned by Microsoft).</P><P><<A HREF="http://www.microsoft.com/office/visio/">http://www.microsoft.com/office/visio/</A>></P><P>ConceptDraw does two things I really like. First, it helps you draw diagrams, a functionality hitherto essentially missing on my Mac. Second, it opens its power to the user, exposing its objects through data tables and making them customizable through formulas - and I'm a complete sucker for programs that do that. It has its faults, but it's also still under development, so look for future improvements. Meanwhile, if you draw any sort of diagram or even think you might have reason to do so, now is a fine time to look into this fascinating program.</P><P>ConceptDraw 1.55 requires a PowerPC-based machine with Mac OS 8 or later. It takes up about 30 MB of hard disk space and prefers 30 MB of RAM. ConceptDraw costs $160 (boxed) or $125 (downloadable, with a discount to $98 currently available), and a demo is available for download.</P><P><<A HREF="http://www.conceptdraw.com/purchase/">http://www.conceptdraw.com/purchase/</A>><BR><<A HREF="http://www.conceptdraw.com/resources/suppdownl.html">http://www.conceptdraw.com/resources/ suppdownl.html</A>></P><!-- Make the Connection with ConceptDraw Matt Neuburg --></div>
<!-- end article text -->
<!-- PayBITS -->
<p> </p><div class="sponsorbox">
<div class="sponsortext"><A HREF="http://macte.ch/conf_tidbits"><IMG SRC="http://db.tidbits.com/images/badges/mactech-twitter-icon-48x48.jpg" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>MacTech Conference, for IT Pros and Apple developers, is Nov 3-5,<br />in Los Angeles. The 3-day event is packed with sessions & evening<br />activities. Learn from the best. Meet and spend time with peers.<br />TidBITS readers save $50 at <<a href="http://macte.ch/conf_tidbits">http://macte.ch/conf_tidbits</a>>!</div>