<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
	
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see AdvancedOptions
<<importTiddlers>>
Creates three-dimensional polygon mesh objects in common geometric shapes that can be hidden, shaded, or rendered
Aligns objects with other objects in 2D and 3D
Creates a three-dimensional array
Starts an interactive 3D view and opens the Adjust Clipping Planes window
Provides 3D graphics system configuration settings
Starts an interactive 3D view and sets the objects into continuous motion
Starts the interactive 3D view and makes objects appear closer or farther away
Creates a 3D DWF file of your three-dimensional model and displays it in the DWF Viewer
Obsolete
Creates a three-sided or four-sided surface anywhere in 3D space
Interactively changes your view of a 3D drawings so that you appear to be flying through the model
Controls the interactive viewing of objects in 3D, using an unconstrained orbit
Creates a free-form polygon mesh
Displays the move grip tool in a 3D view and moves objects a specified distance in a specified direction
Controls the interactive viewing of objects in 3D
Sets the center of rotation in 3D Orbit view
When a drawing is in a Perspective view, starts the interactive 3D view and enables you to drag the view horizontally and vertically
Creates a polyline of line segments in 3D space
Displays the rotate grip tool in a 3D view and revolves objects around a base point
Imports a 3D Studio (3DS) file
Obsolete
Changes the target of the view in the direction that you drag
Interactively changes the view of a 3D drawing so that you appear to be walking through the model
Zooms in and out in a perspective view
Displays information about AutoCAD
Imports an ACIS file and creates a body object, solid, or region in the drawing
Exports a body object, solid, or region to an ACIS file
Closes DesignCenter
Opens Design Center.  Manages and inserts content such as blocks, xrefs, and hatch patterns
Loads a specified DesignCenter drawing file, folder, or network path
Used to move dimension text while leaving dimension lines in place.
Aligns objects with other objects in 2D and 3D
Aligns objects in different viewports
Converts AME solid models to AutoCAD solid objects
Saves an animation along a path in a 3D model
On – To add another annotation scale to existing objects, you just choose another annotation scale by clicking the Annotation Scale button on the status bar.

Off – You need to add annotation scales manually.  Use this method if you don’t want all objects to have every annotation scale that you’ll be using.  Select the object,  right click it, and choose Annotative Object Scale > Add/Delete Scales to open the Annotation Object Scale dialog box.  You can also open the box by clicking the Add/Delete Scales button in the Annotation Scaling control panel of the Dashboard or by displaying the Properties palette, clicking the Annotative Scale item, and clicking the Ellipsis button that appears.
Resets the location of all scale representations for an annotative object to that of the current scale representation
Updates existing annotative objects to match the current properties of their styles
Controls the size of the object snap target box
Loads and unloads applications and defines which applications to load at startup

See [[LSP File Loading]]
Snaps to the visual intersection of two objects that are not in the same plane but may appear to intersect in the current view. Extended Apparent Intersection is not available as a running object snap. Apparent and Extended Apparent Intersection do not work with edges or corners of 3D solids.
NoteYou might get varying results if you have both the Intersection and Apparent Intersection running object snaps turned on at the same time. 

See [[OSNAP]]
Creates an arc
Packages the current sheet set files to be archived
Aligns text along an arc.  Draw arc first > Command > Add Text
Calculates the area and perimeter of objects or of defined areas
Creates multiple copies of objects in a pattern
Loads, unloads, and provides information about ObjectARX applications
Attaches hyperlinks to objects or areas in a drawing
Creates an attribute definition
Globally controls visibility of block attributes in a drawing
Changes attribute information in a block
Extracts attribute data, informational text associated with a block, into a file
Changes the textual content of an attribute within a block.  <Command> select the one item you want to change
Redefines a block and updates associated attributes
Updates all instances of a specified block with the current attributes defined for the block.  Exploded – Edit changes > Command
Evaluates the integrity of a drawing and corrects some errors
Autodesk User Group International
http://augi.com

Free publication for cad users.
Numbering

Displays the bullet and numbering menu.

Displays options for creating lists. (Not available for table cells.) The list is indented to align with the first selected paragraph.

Off: When selected, removes letters, numbers, and bullets from selected text that has list formatting applied. Indentation is not changed.

Lettered: Applies list formatting that uses letters with periods for the items in the list. If the list has more items than the alphabet has letters, the sequence continues by using double letters.

Numbered: Applies list formatting that uses numbers with periods for the items in the list.

Bulleted: Applies list formatting that uses bullets for the items in the list. 

Restart: Starts a new letter or number sequence in list formatting. If the selected items are in the middle of a list, unselected items below them also become part of the new list. 

Continue: Adds the selected paragraphs to the last list above and continues the sequence. If list items rather than paragraphs are selected, unselected items below the selected items continue the sequence.

Allow Auto-list: Applies list formatting as you type. The following characters can be used as punctuation after letters and numbers and cannot be used as bullets: period (.), comma (,), close parenthesis ()), close angle bracket (>), close square bracket (]), and close curly bracket (}).
Use Tab Delimiter Only: Limits the Allow Auto-list and Allow Bullets and Lists options. List formatting is applied to text only when the space after the letter, number, or bullet character was created by TAB, not SPACEBAR. This option is selected by default. 

Allow Bullets and Lists: When this option is selected, list formatting is applied to all plain text in the multiline text object that looks like a list. Text that meets the following criteria is considered to be a list. The line begins with (1) one or more letters or numbers or a symbol, followed by (2) punctuation after a letter or number, (3) a space created by pressing TAB, and (4) some text before the line is ended by ENTER or SHIFT+ENTER. 
When you clear the check mark, any list formatting in the multiline text object is removed and the items are converted to plain text. Allow Auto-list is turned off, and all the Bullets and Lists options are unavailable except Allow Bullets and Lists.
Publishes drawings to DWF files automatically
If your ~TiddlyWiki file is saved correctly to your computer, you can add your own notes, create your own tiddlers, add tags to tiddlers and even save the file with a new name to create your own ~TiddlyWiki file.

|bgcolor(#dddddd):''Edit existing tiddlers''|You can ''edit an existing tiddler'' either by double-clicking on it or by clicking the hidden 'edit' button at the top right of the tiddler. The tiddler will then go into 'edit' mode, and you type whatever you want to type into it. Click the hidden 'done' button in the upper right corner ''to finish your changes'' and go back to 'reading' mode.|
|bgcolor(#dddddd):''Create new tiddlers''|You can ''create a new tiddler'' in various ways.<br>*Click on the 'New tiddler' or 'New journal' options in the right hand menu.<br>*Create a WikiWord within an existing tiddler and click on it when you go back to reading mode.<br>*Write a word or phrase enclosed by double brackets {{{[[this is an example]]}}} and click on it when you go back to reading mode.<br><br>I recommend that you be as specific as possible in naming tiddlers. There cannot be two tiddlers with the same name.|
|bgcolor(#dddddd):''Format text''|To see how to format a special way (for example, how to do boldfaced type), just go into edit mode and view the code for the formatting. A list of most of the [[Special formatting]].<br><br>I added Yann Perrin's [[easyFormat]] plugin to make some formatting easier. Go into edit mode, select some text, and click on "Format" to see a dropdown list of formats that will automatically be applied when you select them.|
|bgcolor(#dddddd):''Add tags''|When a tiddler is in edit mode you can add ''tags'' to the narrow window at the bottom of the tiddler. [[Advanced ideas for tags]]|
Tags are great for grouping tiddlers into categories. For example, you can tag all your recipes with a 'recipe' tag, and then whenever you want to see a list of your recipes, you go to the tabbed list 'Tags' and click on 'recipe' to see a list of your recipes. You can use this idea to sort books by topic, sort music by genre, sort contacts by contact type, etc. ''There are a couple tags with special functions:''
*The excludeSearch tag is a handy one for excluding a tiddler from appearing in searches.
*The excludeLists tag is handy for excluding a tiddler from the tabbed lists to the right.

!Index a tag
You can ''create indexes for specific tags'' and put these indexes in your ~MainMenu. Here's how:
#''Import the ~ForEachTiddler plugin: ''
##Open ImportTiddlers
##Paste the following URL (http://tiddlywiki.abego-software.de/)
##Select the ~ForEachTiddler plugin from the list that appears by checking the checkbox next to it. 
##Go to the bottom and in the dropdown box select "Import these tiddlers."
##Reload your file by clicking your browser's refresh or reload button.
#''Create a new tiddler'' and give it a title that reflects the function of the index you are creating
#Paste the text below into the tiddler and substitute the name of your tag where I have the letters XXXX.
/*{{{*/
<<forEachTiddler 
where 
'tiddler.tags.contains("XXXX")
sortBy
'tiddler.title'>>
/*}}}*/
Click done. You should now have an index of tiddlers containing your tag. This index is automatically updated every tiime you add a new tiddler with this tag.

!Index all your tags
You can get a list of all your tags with the tiddlers associated with each tag. Here's how:
#Import the InlineJavascriptPlugin (this step is not necessary if you are using a TW based on this tutorial). 
##Open ImportTiddlers
##Paste the following URL (http://tiddlywiki.abego-software.de/)
##Select the ~InlineJavascript plugin from the list that appears by checking the checkbox next to it. 
##Go to the bottom and in the dropdown box select "Import these tiddlers."
##Reload your file by clicking your browser's refresh or reload button.
#Create a new tiddler. I suggest the title ~ShowAllByTags.
#Add the text below to your tiddler, add the tag 'script' to your tiddler (without quotes), then click done. You should now have an index of all your tags.
/*{{{*/
<script>
	var tags = store.getTags();
	if(tags.length == 0) return "no tags in document";
	var out="";
	for(var t=0; t<tags.length; t++) {
		out+="*[["+tags[t][0]+"]] ("+tags[t][1]+")"+"\n";
		var tids=store.getTaggedTiddlers(tags[t][0]);
		for (i=0; i<tids.length; i++) out+="##[["+tids[i].title+"]]\n";
	}
	return out;
</script>
/*}}}*/
<<options>>
Specifies whether or not the drawing will behave as an annotative block when inserted into another drawing

|0| Nonannotative|
|1| Annotative|
 

Note:  The ANNOTATIVEDWG system variable becomes read-only if the drawing contains annotative objects.
Dimensions can be associative, nonassociative, or exploded. Associative dimensions adjust to changes in the geometric objects that they measure.
Dimension associativity defines the relationship between geometric objects and the dimensions that give their distance and angles. There are three types of associativity between geometric objects and dimensions.
•	Associative dimensions. Automatically adjust their locations, orientations, and measurement values when the geometric objects associated with them are modified. Dimensions in a layout may be associated to objects in model space. The [[DIMASSOC]] system variable is set to 2. 
•	Nonassociative dimensions. Selected and modified with the geometry they measure. Nonassociative dimensions do not change when the geometric objects they measure are modified. The dimension variable [[DIMASSOC]] is set to 1. 
•	Exploded dimensions. Contain a collection of separate objects rather than a single dimension object. The [[DIMASSOC]] system variable is set to 0.
You can determine whether a dimension is associative or nonassociative by selecting the dimension and doing one of the following:
•	Use the Properties palette to display the properties of the dimension. 
•	Use the LIST command to display the properties of the dimension.
You can also use the Quick Select dialog box to filter the selection of associative or nonassociative dimensions. A dimension is considered associative even if only one end of the dimension is associated with a geometric object. The [[DIMREASSOCIATE]] command displays the associative and nonassociative elements of a dimension.
To change the dimension associativity default
1.	Click Tools menu    Options....At the Command prompt, enter options. 
2.	In the Options dialog box, User Preferences tab, under Associative Dimensioning, select or clear Make New Dimensions Associative. 
3.	Do either or both of the following: 
o	Click Apply to record the current Options settings in the system registry. 
o	Click OK to record the current Options settings in the system registry and close the Options dialog box.
All subsequently created dimensions in the drawing use the new setting. Unlike most other option settings, dimension associativity is saved in the drawing file rather than in the system registry.
   Command entry: [[OPTIONS]]

[[DIMASSOC]]
Type:	Integer
Saved in:	Drawing
Initial value:	2
Controls the associativity of dimension objects and whether dimensions are exploded.
0	Creates exploded dimensions. There is no association between the various elements of the dimension. The lines, arcs, arrowheads, and text of a dimension are drawn as separate objects.
1	Creates non-associative dimension objects. The elements of the dimension are formed into a single object. If one of the definition points of the dimension moves, the dimension is updated.
2	Creates associative dimension objects. The elements of the dimension are formed into a single object, and one or more definition points of the dimension are coupled with association points on geometric objects. If the association point on the geometric object moves, the dimension location, orientation, and value are updated.
[[DIMASSOC]] is not stored in a dimension style. 
Drawings saved in a format previous to AutoCAD 2002 retain the setting of the [[DIMASSOC]] system variable. When the drawing is reopened in AutoCAD 2002 or later, the dimension associativity setting is restored. If a legacy drawing is opened in AutoCAD 2002, the DIMASSOC system variable takes on the value of the legacy drawing's [[DIMASO]] system variable.

Set the Scale for Dimensions
You can specify the size of dimensions in your drawing. How you set dimension size depends on the method you use to lay out and plot drawings.
Dimension scale affects the size of the dimension geometry relative to the objects in the drawing. Dimension scale affects sizes, such as text height and arrowhead size, and offsets, such as the extension line origin offset. You should set these sizes and offsets to values that represent their actual plotted size. Dimension scale does not apply the overall scale factor to tolerances or measured lengths, coordinates, or angles. 
Setting dimension scale depends on how you lay out your drawing. There are three methods used to create dimensions in a drawing layout: 
	Dimension in model space for plotting in model space. This is the traditional method used with single-view drawings. To create dimensions that are scaled correctly for plotting, set the [[DIMSCALE]] system variable to the inverse of the intended plot scale. Example, if the plot scale is 1/4”=1’-0”, use you [[CadCARD]] to find the Scale Factor (4) or the equation 12 divided by scale (12÷1/4=4) and set [[DIMSCALE]] to 4. 
	Dimension in model space for plotting in paper space. This was the preferred method for complex, multiple-view drawings prior to AutoCAD 2002. Use this method when the dimensions in a drawing need to be referenced by other drawings (xrefs) or when creating isometric dimensions in 3D isometric views. To prevent the dimensions in one layout viewport from being displayed in other layout viewports, create a dimensioning layer for each layout viewport that is frozen in all other layout viewports. To create dimensions that are scaled automatically for display in a paper space layout, set the [[DIMSCALE]] system variable to 0. 
	Dimension in layouts. This is the simplest dimensioning method. Dimensions are created in paper space by selecting model space objects or by specifying object snap locations on model space objects. By default, associativity between paper space dimensions and model space objects is maintained. No additional scaling is required for dimensions created in a paper space layout: [[DIMLFAC]] and [[DIMSCALE]] do not need to be changed from their default value of 1.0000.
Note:  When you dimension model space objects in paper space using associative dimensions, dimension values for the display scale of each viewport are automatically adjusted. This adjustment is combined with the current setting for [[DIMLFAC]] and is reported by the LIST command as a dimension style override. For nonassociative dimensions, you must set [[DIMLFAC]] manually.

To set the overall dimension scale 
1.	Click Format menu    Dimension Style....
2.	In the Dimension Style Manager, select the style you want to change. Click Modify. 
3.	In Modify Dimension Style dialog box, Fit tab, under Scale for Dimension Features, enter a value for the overall scale. 
4.	Click OK. 
5.	Click Close to exit the Dimension Style Manager. 
  Toolbar: Dimension or Styles 
  Command entry: [[DIMSTYLE]]

To set dimension scale for creating dimensions in a layout 
1.	Click a layout tab to switch to paper space. 
2.	To create dimensions in paper space with the correct model space dimension values, use object snap modes to snap to points in model space from paper space or select the objects directly. 
The [[DIMLFAC]] system variable can be changed if you need to convert the linear dimension values between the imperial and metric measurement systems.
Example:  If the Plot scale is 3/8”=1’-0”, use your [[CadCARD]] to find the Scale Factor (32) or the equation 12 divided by scale (12÷3/8=32) and set [[DIMSCALE]] to 32.
Goto [[Wikipedia.org|http://en.wikipedia.org/wiki/AutoCAD]] or [[Autodesk.com|http://usa.autodesk.com/adsk/servlet/home?siteID=123112&id=129446]] for info.
Object snaps include a visual aid called AutoSnap™ to help you see and use object snaps more efficiently. AutoSnap displays a marker and a tooltip when you move your cursor over an object snap location.

AutoSnap Tools

AutoSnap consists of the following snap tools:

- Marker. Displays the object snap location when the cursor moves over or near an object. Marker shape is dependent on the snap it is marking. 
- Tooltip. Describes which part of the object you are snapping to in a small flag at the cursor location. 
- Magnet. Attracts and locks the cursor onto the nearest detected snap points. Provides a visual cue, similar to snapping to a grid.
- Aperture box. Surrounds the crosshairs and defines an area within which object snaps are evaluated. You can choose to display or not display the aperture box, and you can change the aperture box size.

The AutoSnap markers, tooltips, and magnet are turned on by default. You can change AutoSnap settings on the Drafting tab in the Options dialog box. 

Use AutoSnap to Confirm or Change an Object Snap

If you have set more than one running object snap, you can press TAB to cycle through all the object snap points available for a particular object.

To change the AutoSnap settings 

#Click Tools menu - -> Options....At the Command prompt, enter options. 
#In the Options dialog box, Drafting tab, change settings as needed: 
- Marker. Turns the marker on or off. 
- Magnet. Turns the magnet on or off. 
- Display AutoSnap Tooltip. Turns tooltips on or off. 
- Display AutoSnap Aperture Box. Turns the target box on or off when you specify an object snap. This setting does not affect object snaps when you are not using AutoSnap. 
- AutoSnap Marker Color. Changes the color of the marker. 
- AutoSnap Marker Size. Adjusts the size of the marker. 
#Click OK.

Type: Integer 
Saved in: Registry 
Initial value: 63 

Controls the display of the AutoSnap marker, tooltip, and magnet. Also turns on polar and object snap tracking, and controls the display of polar tracking, object snap tracking, and Ortho mode tooltips. The setting is stored as a bitcode using the sum of the following values:

||0| Turns off the AutoSnap marker, tooltips, and magnet. Also turns off polar tracking, object snap tracking, and tooltips for polar tracking, object snap tracking, and Ortho mode| 
|1| Turns on the AutoSnap marker|
|2| Turns on the AutoSnap tooltips|
|4| Turns on the AutoSnap magnet|
|8| Turns on polar tracking|
|16| Turns on object snap tracking|
|32| Turns on tooltips for polar tracking, object snap tracking, and Ortho mode||
 
Some Autocad Reference Books can be found at [[www.blue1633g3.zoomshare.com|http://blue1633g3.zoomshare.com/7.html]]
BACKGROUND functionality has been merged into the VIEW command.
Adds an action to a dynamic block definition
Specifies the selection set of objects associated with an action in a dynamic block definition
Adds an action to a dynamic block definition
Sets the insertion base point for the current drawing
Associates an action with a parameter in a dynamic block definition
Edits attribute properties of a block definition
Specifies the order of attributes for a block
Opens the Block Authoring Palettes window in the Block Editor.
Closes the Block Authoring Palettes window in the Block Editor
Closes the Block Editor
Changes the cycling order of grips for a dynamic block reference
Opens the Edit Block Definition dialog box and then the Block Editor
Creates, deletes, or resets grips associated with a parameter
Fills an enclosed area or selected objects with a hatch pattern or gradient fill
Controls the display of marker blips
Creates a block definition from objects you select
Generates preview images for blocks displayed in DesignCenter
A way to substitute blocks
Replaces a block with an xref (that is, another drawing file)
Displays or creates a lookup table for a dynamic block definition
Saves selected objects to a file in device-independent bitmap format
Creates a region or a polyline from an enclosed area
Creates a 3D solid box
Adds a parameter with grips to a dynamic block definition
Breaks the selected object between two points
Creates a break symbol
Removes the history from 3D solid primitives and composite solids
Launches the default web browser defined in your system's registry
Saves the current block definition
Saves a copy of the current block definition under a new name
Makes objects invisible in the current visibility state or all visibility states in a dynamic block definition
Makes objects visible in the current visibility state or all visibility states in a dynamic block definition
Creates, sets, or deletes a visibility state in a dynamic block
http://www.portlandbolt.com/bolt-weight-calculator.html 
Specifies that new objects use the default color (white or black, depending on your background color) until you group the objects into a block and insert the block. When you insert the block into a drawing, the objects in the block inherit the current Color setting.
Specifies that new objects assume the color assigned to the layer on which you create them. When BYLAYER is selected, the color of the current layer is displayed in the Old and New color swatches. 
Evaluates mathematical and geometric expressions
Sets a camera and target location to create and save a 3D perspective view of objects
Snaps to the center of an arc, circle, ellipse, or elliptical arc.

[img[file://E:\SEDAUG\pics\center.gif]]
Bevels the edges of objects
Changes the properties of existing objects
Checks the current drawing for standards violations
Changes the properties of an object
Moves objects from model space to paper space, or vice versa
Creates a circle
Restores display of toolbars and dockable windows (excluding the command line)
Clears the screen of toolbars and dockable windows (excluding the command line)
Closes the current drawing
Closes all currently open drawings
Sets the color for new objects
Displays the command line
Hides the command line
Compiles shape files and PostScript font files into SHX files
Creates a 3D solid with a circular or elliptical base tapering symmetrically to a point or a circular or elliptical planar face
Optimizes 2D polylines and associative hatches created in AutoCAD Release 13 or earlier
Converts a color-dependent plot style table (CTB) to a named plot style table (STB)
Converts lights created in previous releases to lights in AutoCAD 2007 format
Converts materials created in previous releases to materials in AutoCAD 2007 format
Converts the current drawing to either named or color-dependent plot styles
Converts polylines and circles with thickness to 3D solids
Converts objects to surfaces
Copies objects a specified distance in a specified direction
Copies objects with a specified base point
Copies objects or command prompt text to the Clipboard
Copies the text in the command prompt history to the Clipboard
Copies the current view to the Clipboard for linking to other OLE applications
Copies one or more objects to another layer
Description:  This ~AutoLISP is used to count the number of blocks used in a selected portion of a drawing.
----
Procedure:
#Open drawing
#Enter Command bcount
#You will be prompted to: "Select objects:"
#Select an area of the drawing using your left mouse button.
#Right click or Enter
#Press the F2 key to see the listing of blocks used in the selected area.
#Press F2 again to close the command list.
----
Command line: BCOUNT
File: [[E:/CAD/LISP/count.lsp|E:/CAD/LISP]]

See [[LSP File Loading]] procedure
Crossing Polygon.  Use when prompted to “Select Objects”, when you do not want a rectangle.
Manages customized user interface elements such as workspaces, toolbars, menus, shortcut menus and keyboard shortcuts
Exports customized settings to an enterprise or partial CUI file
Imports customized settings from an enterprise or partial CUI file to acad.cui
Loads a CUI file
Unloads a CUI file
Customizes tool palettes and tool palette groups
The windows command
Copies objects to the Clipboard and removes the objects from the drawing
Creates a three-sided 3D solid with a circular or elliptical base and top
Reference tool designed to aid productivity and enhance AutoCAD education.

Go to [[cadcard.com|http://www.cadcard.com/]] for more info.

or

Use the electronic version of [[CADCARD|file://E:/CADCARD/]]
# Select the 'DRAWING SCALE' from the pull down menu.
# Change the paper size by clicking on the white paper graphics.
# Click 'Always on Top' to keep the tool aways visible.
# Click on 'Min' to minimize the tool to view the essential info only.
Open your Acad.Pat file (C:\Documents and Settings\<your first three letters of first & last name>\Application Data\Autodesk\AutoCAD 2006\R16.2\enu\Support) and type *Checkpl, Check Plate <enter> 0, 0,.25, .25,.25, .25,-.25
90, .125,-.125, .25,.25, .25,-.25.

Hatch pattern should be at 45D and scale 2. 
<<forEachTiddler
    where
        'tiddler.tags.contains("command")'
    sortBy 
        'tiddler.title.toUpperCase()'
    
    script
        '
        function getGroupCaption(tiddler) {
            return tiddler.title.substr(0,1).toUpperCase();
        } 

        function getGroupTitle(tiddler, context) {
            if (!context.lastGroup || context.lastGroup != getGroupCaption(tiddler)) {
                context.lastGroup = getGroupCaption(tiddler); 
                return "* {{{"+(context.lastGroup?context.lastGroup:"no tags")+"}}}\n";
            } else 
                return "";
        }
        '
    
    write
         'getGroupTitle(tiddler, context)+"** [[" + tiddler.title+"]]\n"'
>>
If you want to use geometric objects to annotate your drawing, combine the objects into an annotative block definition.

Annotative block definitions create annotative block references. Annotative block references and attributes initially support the current annotation scale at the time they are inserted. You should insert annotative block references with a unit factor of 1.

Open your existing block drawing.  Type [[Annotativedwg]] in the command line and set to 1.  Save the drawing.

Examples can be found at [[E:\BP Cad Blocks\Annotative Blocks|E:\BP Cad Blocks\Annotative Blocks]].
You can create your own custom arrowheads.

Arrowheads are stored as block definitions. To use your own arrowhead, provide the name of an existing block definition.

To use your own arrowhead symbol 

Click Format menu -- >  Dimension Style....At the Command prompt, enter dimstyle. 
In the Dimension Style Manager, select the style you want to change. Click Modify. 
In the Dimension Style Manager, Symbols and Arrows tab, under Arrowheads, select User Arrow from the First arrowhead list. 

In the Select Custom Arrow Block dialog box, enter the name of your block. Click OK. 
To choose a different custom arrowhead for the second arrowhead, repeat steps 3 and 4, choosing User Arrow from the Second arrowhead list (optional). 
Click OK. 
Click Close to exit the Dimension Style Manager. 

Toolbar: Dimension or Styles 
Command entry: [[DIMSTYLE]]
Opens the Dashboard window
Closes the Dashboard window
Exports object property, block attribute, and drawing information to a data extraction table or to an external file and specified a data link to an Excel spreadsheet
The Data Link Manager is displayed.
Updates data to or from an established external data link.
Provides an interface to external database tables
Lists database information for each object in the drawing
Edits single-line text, dimension text, attribute definitions, and feature control frames
Specifies the display style and size of point objects
Sets the three-dimensional viewing direction
Provides a timed pause within a script
Removes hyperlinks in a drawing
Changes the display options of selected DGN underlays
Attaches a DGN underlay to the current drawing
Defines a clipping boundary for a selected DGN underlay.

DGN is a Microstation file format.
Creates one or more V8 DGN files from the current drawing
Imports the data from a V8 DGN file into a new DWG file
Accesses Dimensioning mode
Creates an aligned linear dimension
Creates an angular dimension
Type: Integer 
Saved in: Drawing 
Initial value: Based on current style 

Indicates whether or not the current dimension style is [[annotative]].

|0| Nonannotative
 
|1| Annotative 
Creates an arc length dimension
Type: Switch 
Saved in: Drawing 
Initial value: On 

Obsolete. Retained in the product to preserve the integrity of scripts. See [[DIMASSOC]].
0 – No association from dimension to the object
1 – Creates nonassociative dimensions
2 – Creates associative dimensions
To associate a dimension to an object
Creates a linear, angular, or ordinate dimension from the baseline of the previous dimension or a selected dimension
Adds or removes a dimension break
Creates the center mark or the centerlines of circles and arcs
Creates a linear, angular, or ordinate dimension from the second extension line of the previous dimension or a selected dimension
Creates diameter dimensions for circles and arcs
Removes associativity from selected dimensions.

To disassociate a dimension

#At the command prompt, enter DIMDISASSOCIATE.
#Select one or more dimensions to disassociate and press ENTER when you finish.
Edits dimension text and extension lines on dimension objects
Create or remove inspection dimensions
Creates jogged radius dimensions
Adds or removes a jog line on a linear or aligned dimension
You can specify the size of dimensions in your drawing. How you set dimension size depends on the method you use to lay out and plot drawings.

Dimension scale affects the size of the dimension geometry relative to the objects in the drawing. Dimension scale affects sizes, such as text height and arrowhead size, and offsets, such as the extension line origin offset. You should set these sizes and offsets to values that represent their actual plotted size. Dimension scale does not apply the overall scale factor to tolerances or measured lengths, coordinates, or angles. 

Setting dimension scale depends on how you lay out your drawing. There are three methods used to create dimensions in a drawing layout: 

Dimension in model space for plotting in model space. This is the traditional method used with single-view drawings. To create dimensions that are scaled correctly for plotting, set the [[DIMSCALE]] system variable to the inverse of the intended plot scale. For example, if the plot scale is 1/4, set [[DIMSCALE]] to 4.
Dimension in model space for plotting in paper space. This was the preferred method for complex, multiple-view drawings prior to AutoCAD 2002. Use this method when the dimensions in a drawing need to be referenced by other drawings (xrefs) or when creating isometric dimensions in 3D isometric views. To prevent the dimensions in one layout viewport from being displayed in other layout viewports, create a dimensioning layer for each layout viewport that is frozen in all other layout viewports. To create dimensions that are scaled automatically for display in a paper space layout, set the [[DIMSCALE]] system variable to 0. 
Dimension in layouts. This is the simplest dimensioning method. Dimensions are created in paper space by selecting model space objects or by specifying [[object snap]] locations on model space objects. By default, associativity between paper space dimensions and model space objects is maintained. No additional scaling is required for dimensions created in a paper space layout: DIMLFAC and [[DIMSCALE]] do not need to be changed from their default value of 1.0000.
Note:  When you dimension model space objects in paper space using associative dimensions, dimension values for the display scale of each viewport are automatically adjusted. This adjustment is combined with the current setting for DIMLFAC and is reported by the [[LIST]] command as a dimension style override. For nonassociative dimensions, you must set DIMLFAC manually.

To set dimension scale for creating dimensions in a layout 

-Click a layout tab to switch to paper space. 
-To create dimensions in paper space with the correct model space dimension values, use object snap modes to snap to points in model space from paper space or select the objects directly.
-The DIMLFAC system variable can be changed if you need to convert the linear dimension values between the imperial and metric measurement systems.
Creates a linear dimensions
Creates ordinate point dimensions
Overrides dimensioning system variables
Creates radial dimensions for circles and arcs
You may need to change the associativity of dimensions in several circumstances including adding associativity to dimensions created in previous releases.

You may need to change the associativity of dimensions in several circumstances such as the following:

#Redefine the associativity of dimensions in drawings that have been edited significantly.
#Add associativity to dimensions that have been partially disassociated.
#Add associativity to dimensions in legacy drawings.
#Remove associativity from dimensions in drawings that will be used by people working in releases prior to AutoCAD 2002, but who do not want any proxy objects in the drawings.
#Reassociate Dimensions to Different Objects

With DIMREASSOCIATE, you can select one or more dimensions and step through the extension-line origin points of each dimension. For each extension-line origin point, you can specify a new association point on a geometric object. Association points determine the attachment of extension lines to locations on geometric objects.

Note:  When you create or modify [[Associative Dimensions]], it is important to locate their association points carefully so that if you make a future design change, the geometric objects that you change will also change the dimensions associated with them.
When you use the DIMREASSOCIATE command, a marker is displayed that indicates whether each successive extension line origin point of the dimension is [[associative|Associative Dimensions]] or [[nonassociative|Associative Dimensions]]. A square with an X in it means that the point is associated with a location on an object, while an X without the square means that the point is not associated with an object. Use an object snap to specify the new association for the extension-line origin point or press ENTER to skip to the next extension-line origin point.

Note:  The marker disappears if you pan or zoom with a wheel mouse.
Change [[Nonassociative Dimensions|Associative Dimensions]] to [[Associative|Associative Dimensions]]

You can change all the [[nonassociative dimensions|Associative Dimensions]] in a drawing to [[associative|Associative Dimensions]]. Use [[QSELECT]] to select all [[nonassociative dimensions|Associative Dimensions]], and then use DIMREASSOCIATE to step through the dimensions, associating each one with locations on geometric objects. 

Change [[Associative Dimensions]] to [[Nonassociative|Associative Dimensions]]

You can change all [[Associative Dimensions]] in a drawing to [[nonassociative dimensions|Associative Dimensions]]. Use [[QSELECT]] to select all [[Associative Dimensions]], and then use [[DIMDISASSOCIATE]] to convert them into [[nonassociative dimensions|Associative Dimensions]].

See Also
[[Associative Dimensions]]

To associate or reassociate a dimension

#Click Dimension menu - -> Reassociate Dimensions.  At the Command prompt, enter dimreassociate. 
#Select one or more dimensions to associate or reassociate.
#Do one of the following: 
##Specify the new location of the extension-line origin point.
##Enter s and select a geometric object to associate with the dimension.
##Press ENTER to skip to the next extension-line origin point.
##Press ESC to end the command but keep any associations you made up to that point.
#Repeat the previous step as needed.
 Command entry: DIMREASSOCIATE
Updates the locations of all associative dimensions
Type: Real 
Saved in: Drawing 
Initial value: 1.0000 

Sets the overall scale factor applied to dimensioning variables that specify sizes, distances, or offsets.

Also affects the leader objects with the [[LEADER]] command.

|.0|A reasonable default value is computed based on the scaling between the current model space viewport and paper space. If you are in paper space or model space and not using the paper space feature, the scale factor is 1.0.|
 
|>0|A scale factor is computed that leads text sizes, arrowhead sizes, and other scaled distances to plot at their face values.|
 

DIMSCALE does not affect measured lengths, coordinates, or angles.

When DIMSCALE is set to 0, and the current dimension style is not annotative, the overall dimension scale of dimensions created in paper space viewports is determined be the viewport scale.When the current dimension style is annotative ([[DIMANNO]] is set to 1), the DIMSCALE value is set to 0. Changes to the DIMSCALE value are ignored and the value is reset to 0.
Adjusts the spacing equally between parallel linear and angular dimensions
Creates and modifies dimension styles
Moves and rotates dimension text
Measures the distance and angle between two points
Creates a distant light
Places evenly spaced point objects or blocks along the length or perimeter of an object
Draws filled circles and rings
Controls the way dragged objects are displayed
Displays a list of drawing files that can be recovered after a program or system failure
Closes the Drawing Recovery Manager
Changes the draw order of images and other objects
Sets grid and snap, polar and object snap tracking, object snap modes, and Dynamic Input
Opens the Aerial View window
Same as TEXT command.  Single line text
Defines parallel projection or perspective views by using a camera and target
Allows adjustment of a DWF underlay at the command prompt
Attaches a DWF underlay to the current drawing
Uses clipping boundaries to define a subregion of a DWF underlay
Controls the display of layers in a DWF underlay
Sets and displays the properties of the current drawing
See [[Drawings]]
Imports specially coded binary files
[[Welcome]]
DesignCenter Online provides access to pre-drawn content such as blocks, symbol libraries, manufacturers' content, and online catalogs. This content can be used in common design applications to assist you in creating your drawings.

To access DesignCenter Online, click the DC Online tab in DesignCenter. Once the DesignCenter Online window is open, you can browse, search, and download content to use in your drawing. 

In the DesignCenter Online window, two panes are displayed—a right pane and a left pane. The right pane is called the content area. The content area displays the items or folders that you selected in the left pane. The left pane can display one of the following four views:

Category Listing. Displays folders containing libraries of standard parts, manufacturer-specific content, and content aggregator websites. 
Search. Searches for online content. You can query items with Boolean and multiple-word search strings.
Settings. Controls how many categories and items are displayed on each page in the content area as a result of a search or folder navigation.
Collections. Specifies the discipline-specific content types that are displayed in DesignCenter Online.
You choose the view by clicking the heading at the top of the left pane.

Once you select a folder in the left pane, all of its content is loaded into the content area. You can select an item in the content area to load it into the preview area. Items can be downloaded by dragging them from the preview area into your drawing or tool palette, or by saving the items to your computer.

Note:  If the DC Online tab is not available in DesignCenter and you want to access DesignCenter Online, see your network or CAD administrator.
DesignCenter Online Privacy

DesignCenter Online is an interactive feature that must be connected to the Internet to deliver content and information. Each time DesignCenter Online is connected, it sends information to Autodesk so that the correct information can be returned. All information is sent anonymously to maintain your privacy. 

The following information is sent to Autodesk: 

Product Name. The name of the product in which you are using DesignCenter Online
Product Release Number. The version of the product 
Product Language. The language version of your product 
Random Number Identifier. DesignCenter Online assigns a random number identifier to each person who uses the feature. This identifier is used to retain your Collections and your Settings views each time DesignCenter Online is used. 
Autodesk compiles statistics using the information sent from DesignCenter Online to monitor how it is being used and how it can be improved. Autodesk will maintain information provided by or collected from you in accordance with Autodesk's published privacy policy, which is available on http://www.autodesk.com/privacy.

Turn the DC Online Tab On or Off

The CAD Manager Control utility turns the DC Online tab in DesignCenter on and off. Information about how to use the utility is available after you install the utility from the Installation Wizard by running the utility and clicking Help in the CAD Manager Control Utility window.

To install the CAD Manager Control utility see S/E CAD Manager.
A drawing conveys all the required information that will allow a manufacturer to produce that component.
A Dynamic block has flexibility and intelligence. A dynamic block reference can easily be changed in a drawing while you work. You can manipulate the geometry in a dynamic block reference through custom grips or custom properties. This allows you to adjust the block in-place as necessary rather than searching for another block to insert or redefining the existing one. See example here: [[DYN A ROD_example.dwg|E:\BP Cad Blocks\NON-OCC\A RODS\DYNAMIC EXAMPLE\]](Thanks [[Francisco Ordaz]])
Edits attributes in a block reference
Exports property data from objects, block attribute information, and drawing information to a table or to an external file
Changes the visibility of three-dimensional face edges
Creates a three-dimensional polygon mesh
Tracks active editing time
Sets elevation and extrusion thickness of new objects
Creates an ellipse or an elliptical arc
Removes objects from a drawing
Packages a set of files for Internet transmission
Breaks a compound object into its component objects
Saves objects to other file formats
Creates a new DWG file with all AEC objects exploded
Extends an object to meet another object
Displays the External References palette
Closes the External References palette
Creates a 3D solid or surface by extruding an object or planar face a specified distance and direction
Creates a multiline text object with a field that can be updated automatically as the field value changes
Controls the filling of objects such as hatches, two-dimensional solids, and wide polylines
Rounds and fillets the edges of objects
Creates a list of requirements that an object must meet to be included in a selection set
Finds, replaces, selects, or zooms to specified text
Creates a 2D representation of all 3D objects in the current view
Launches the Render Environment.
Creates a free spotlight, which is similar to a spotlight but without a specified target
Creates a free weblight which is similar to a weblight but without a specified target
Converts 3D geometry to 2D geometry 

Flatten creates a 2D representation of selected objects and projects selected objects on to the current viewing plane, forcing object elevations and thickness to 0. 

Command: FLATTEN
Select objects: Select objects to convert to 2D
Select objects: Press ENTER
Remove hidden lines? <No>: 

You can use FLATTEN to create a 2D drawing from a 3D model or you can use it to force the thickness and elevations of selected objects to 0. 

Unlike many traditional methods of 3D to 2D conversion, FLATTEN preserves as much of the drawing's original intelligence as possible. The common practice of plotting to a DXB file and then using DXBIN to re-import, causes the loss of drawing intelligence such as the loss of color and layer information. FLATTEN gets the job done in one step and does not have this problem. Using FLATTEN results in 2D objects that retain their original layers, linetypes, colors and object types where possible. 

FLATTEN is similar to a plot of the current view or display. FLATTEN projects selected objects onto the current viewing plane. If your view is not plan when you invoke FLATTEN, the current UCS will be temporarily set to view for the duration of the operation. With respect to UCS=view, the objects that result will be flat. 

Note:  The FLATTEN command is similar in nature to a Plot To 2D type of operation. As with plot conversion, some degradation of drawing precision may occur. This precision loss is usually insignificant and it occurs mainly when the Hide option is selected or the perspective view is on. 


--------------------------------------------------------------------------------
 Command line: FLATTEN 
 File: [[E:/CAD/LISP/pline-3d-2d.lsp|E:CAD/LISP]]

See [[LSP File Loading]] procedure
/***
|''Name:''|ForEachTiddlerPlugin|
|''Version:''|1.0.8 (2007-04-12)|
|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2007 [[abego Software|http://www.abego-software.de]]|
|''TiddlyWiki:''|1.2.38+, 2.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
!Description

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]]  is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|

See details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].

!Revision history
* v1.0.8 (2007-04-12)
** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)
* v1.0.7 (2007-03-28)
** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)
* v1.0.6 (2006-09-16)
** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.
** Support "begin", "end" and "none" expressions in "write" action
* v1.0.5 (2006-02-05)
** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.
** Support Firefox 1.5.0.1
** Internal
*** Make "JSLint" conform
*** "Only install once"
* v1.0.4 (2006-01-06)
** Support TiddlyWiki 2.0
* v1.0.3 (2005-12-22)
** Features: 
*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) 
*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)
** Enhancements:
*** Improved error messages on InternetExplorer.
* v1.0.2 (2005-12-10)
** Features: 
*** context object also holds reference to store (TiddlyWiki)
** Fixed Bugs: 
*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)
* v1.0.1 (2005-12-08)
** Features: 
*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".
*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.
*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).
*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .
*** Improved script evaluation (for where/sort clause and write scripts).
* v1.0.0 (2005-11-20)
** initial version

!Code
***/
//{{{

	
//============================================================================
//============================================================================
//		   ForEachTiddlerPlugin
//============================================================================
//============================================================================

// Only install once
if (!version.extensions.ForEachTiddlerPlugin) {

if (!window.abego) window.abego = {};

version.extensions.ForEachTiddlerPlugin = {
	major: 1, minor: 0, revision: 8, 
	date: new Date(2007,3,12), 
	source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",
	licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",
	copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"
};

// For backward compatibility with TW 1.2.x
//
if (!TiddlyWiki.prototype.forEachTiddler) {
	TiddlyWiki.prototype.forEachTiddler = function(callback) {
		for(var t in this.tiddlers) {
			callback.call(this,t,this.tiddlers[t]);
		}
	};
}

//============================================================================
// forEachTiddler Macro
//============================================================================

version.extensions.forEachTiddler = {
	major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), provider: "http://tiddlywiki.abego-software.de"};

// ---------------------------------------------------------------------------
// Configurations and constants 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler = {
	 // Standard Properties
	 label: "forEachTiddler",
	 prompt: "Perform actions on a (sorted) selection of tiddlers",

	 // actions
	 actions: {
		 addToList: {},
		 write: {}
	 }
};

// ---------------------------------------------------------------------------
//  The forEachTiddler Macro Handler 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler.getContainingTiddler = function(e) {
	while(e && !hasClass(e,"tiddler"))
		e = e.parentNode;
	var title = e ? e.getAttribute("tiddler") : null; 
	return title ? store.getTiddler(title) : null;
};

config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);

	if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params
	// Parse the "in" clause
	var tiddlyWikiPath = undefined;
	if ((i < params.length) && params[i] == "in") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "TiddlyWiki path expected behind 'in'.");
			return;
		}
		tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the where clause
	var whereClause ="true";
	if ((i < params.length) && params[i] == "where") {
		i++;
		whereClause = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the sort stuff
	var sortClause = null;
	var sortAscending = true; 
	if ((i < params.length) && params[i] == "sortBy") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "sortClause missing behind 'sortBy'.");
			return;
		}
		sortClause = this.paramEncode(params[i]);
		i++;

		if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
			 sortAscending = params[i] == "ascending";
			 i++;
		}
	}

	// Parse the script
	var scriptText = null;
	if ((i < params.length) && params[i] == "script") {
		i++;
		scriptText = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the action. 
	// When we are already at the end use the default action
	var actionName = "addToList";
	if (i < params.length) {
	   if (!config.macros.forEachTiddler.actions[params[i]]) {
			this.handleError(place, "Unknown action '"+params[i]+"'.");
			return;
		} else {
			actionName = params[i]; 
			i++;
		}
	} 
	
	// Get the action parameter
	// (the parsing is done inside the individual action implementation.)
	var actionParameter = params.slice(i);


	// --- Processing ------------------------------------------
	try {
		this.performMacro({
				place: place, 
				inTiddler: tiddler,
				whereClause: whereClause, 
				sortClause: sortClause, 
				sortAscending: sortAscending, 
				actionName: actionName, 
				actionParameter: actionParameter, 
				scriptText: scriptText, 
				tiddlyWikiPath: tiddlyWikiPath});

	} catch (e) {
		this.handleError(place, e);
	}
};

// Returns an object with properties "tiddlers" and "context".
// tiddlers holds the (sorted) tiddlers selected by the parameter,
// context the context of the execution of the macro.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {

	var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);

	var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
	context["tiddlyWiki"] = tiddlyWiki;
	
	// Get the tiddlers, as defined by the whereClause
	var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);
	context["tiddlers"] = tiddlers;

	// Sort the tiddlers, when sorting is required.
	if (parameter.sortClause) {
		this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
	}

	return {tiddlers: tiddlers, context: context};
};

// Returns the (sorted) tiddlers selected by the parameter.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlers = function(parameter) {
	return this.getTiddlersAndContext(parameter).tiddlers;
};

// Performs the macros with the given parameter.
//
// @param parameter holds the parameter of the macro as separate properties.
//				  The following properties are supported:
//
//						place
//						whereClause
//						sortClause
//						sortAscending
//						actionName
//						actionParameter
//						scriptText
//						tiddlyWikiPath
//
//					All properties are optional. 
//					For most actions the place property must be defined.
//
config.macros.forEachTiddler.performMacro = function(parameter) {
	var tiddlersAndContext = this.getTiddlersAndContext(parameter);

	// Perform the action
	var actionName = parameter.actionName ? parameter.actionName : "addToList";
	var action = config.macros.forEachTiddler.actions[actionName];
	if (!action) {
		this.handleError(parameter.place, "Unknown action '"+actionName+"'.");
		return;
	}

	var actionHandler = action.handler;
	actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);
};

// ---------------------------------------------------------------------------
//  The actions 
// ---------------------------------------------------------------------------

// Internal.
//
// --- The addToList Action -----------------------------------------------
//
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;

	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
		return;
	}

	// Perform the action.
	var list = document.createElement("ul");
	place.appendChild(list);
	for (var i = 0; i < tiddlers.length; i++) {
		var tiddler = tiddlers[i];
		var listItem = document.createElement("li");
		list.appendChild(listItem);
		createTiddlyLink(listItem, tiddler.title, true);
	}
};

abego.parseNamedParameter = function(name, parameter, i) {
	var beginExpression = null;
	if ((i < parameter.length) && parameter[i] == name) {
		i++;
		if (i >= parameter.length) {
			throw "Missing text behind '%0'".format([name]);
		}
		
		return config.macros.forEachTiddler.paramEncode(parameter[i]);
	}
	return null;
}

// Internal.
//
// --- The write Action ---------------------------------------------------
//
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;
	if (p >= parameter.length) {
		this.handleError(place, "Missing expression behind 'write'.");
		return;
	}

	var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
	p++;

	// Parse the "begin" option
	var beginExpression = abego.parseNamedParameter("begin", parameter, p);
	if (beginExpression !== null) 
		p += 2;
	var endExpression = abego.parseNamedParameter("end", parameter, p);
	if (endExpression !== null) 
		p += 2;
	var noneExpression = abego.parseNamedParameter("none", parameter, p);
	if (noneExpression !== null) 
		p += 2;

	// Parse the "toFile" option
	var filename = null;
	var lineSeparator = undefined;
	if ((p < parameter.length) && parameter[p] == "toFile") {
		p++;
		if (p >= parameter.length) {
			this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
			return;
		}
		
		filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
		p++;
		if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
			p++;
			if (p >= parameter.length) {
				this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
				return;
			}
			lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
			p++;
		}
	}
	
	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
		return;
	}

	// Perform the action.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
	var count = tiddlers.length;
	var text = "";
	if (count > 0 && beginExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
	
	for (var i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		text += func(tiddler, context, count, i);
	}
	
	if (count > 0 && endExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);

	if (count == 0 && noneExpression) 
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
		

	if (filename) {
		if (lineSeparator !== undefined) {
			lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
			text = text.replace(/\n/mg,lineSeparator);
		}
		saveFile(filename, convertUnicodeToUTF8(text));
	} else {
		var wrapper = createTiddlyElement(place, "span");
		wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);
	}
};


// ---------------------------------------------------------------------------
//  Helpers
// ---------------------------------------------------------------------------

// Internal.
//
config.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
	return {
		place : placeParam, 
		whereClause : whereClauseParam, 
		sortClause : sortClauseParam, 
		sortAscending : sortAscendingParam, 
		script : scriptText,
		actionName : actionNameParam, 
		actionParameter : actionParameterParam,
		tiddlyWikiPath : tiddlyWikiPathParam,
		inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
		viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result
	};
};

// Internal.
//
// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of 
// the given path.
//
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
	if (!idPrefix) {
		idPrefix = "store";
	}
	var lenPrefix = idPrefix.length;
	
	// Read the content of the given file
	var content = loadFile(this.getLocalPath(path));
	if(content === null) {
		throw "TiddlyWiki '"+path+"' not found.";
	}
	
	var tiddlyWiki = new TiddlyWiki();

	// Starting with TW 2.2 there is a helper function to import the tiddlers
	if (tiddlyWiki.importTiddlyWiki) {
		if (!tiddlyWiki.importTiddlyWiki(content))
			throw "File '"+path+"' is not a TiddlyWiki.";
		tiddlyWiki.dirty = false;
		return tiddlyWiki;
	}
	
	// The legacy code, for TW < 2.2
	
	// Locate the storeArea div's
	var posOpeningDiv = content.indexOf(startSaveArea);
	var posClosingDiv = content.lastIndexOf(endSaveArea);
	if((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		throw "File '"+path+"' is not a TiddlyWiki.";
	}
	var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);
	
	// Create a "div" element that contains the storage text
	var myStorageDiv = document.createElement("div");
	myStorageDiv.innerHTML = storageText;
	myStorageDiv.normalize();
	
	// Create all tiddlers in a new TiddlyWiki
	// (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)
	var store = myStorageDiv.childNodes;
	for(var t = 0; t < store.length; t++) {
		var e = store[t];
		var title = null;
		if(e.getAttribute)
			title = e.getAttribute("tiddler");
		if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)
			title = e.id.substr(lenPrefix);
		if(title && title !== "") {
			var tiddler = tiddlyWiki.createTiddler(title);
			tiddler.loadFromDiv(e,title);
		}
	}
	tiddlyWiki.dirty = false;

	return tiddlyWiki;
};


	
// Internal.
//
// Returns a function that has a function body returning the given javaScriptExpression.
// The function has the parameters:
// 
//	 (tiddler, context, count, index)
//
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
	var script = context["script"];
	var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";
	var fullText = (script ? script+";" : "")+functionText+";theFunction;";
	return eval(fullText);
};

// Internal.
//
config.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {
	var result = [];
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
	tiddlyWiki.forEachTiddler(function(title,tiddler) {
		if (func(tiddler, context, undefined, undefined)) {
			result.push(tiddler);
		}
	});
	return result;
};

// Internal.
//
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
	var message = "Extra parameter behind '"+actionName+"':";
	for (var i = firstUnusedIndex; i < parameter.length; i++) {
		message += " "+parameter[i];
	}
	this.handleError(place, message);
};

// Internal.
//
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? -1 
			   : +1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? +1 
			   : -1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
	// To avoid evaluating the sortClause whenever two items are compared 
	// we pre-calculate the sortValue for every item in the array and store it in a 
	// temporary property ("forEachTiddlerSortValue") of the tiddlers.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
	var count = tiddlers.length;
	var i;
	for (i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
	}

	// Do the sorting
	tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);

	// Delete the temporary property that holds the sortValue.	
	for (i = 0; i < tiddlers.length; i++) {
		delete tiddlers[i].forEachTiddlerSortValue;
	}
};


// Internal.
//
config.macros.forEachTiddler.trace = function(message) {
	displayMessage(message);
};

// Internal.
//
config.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {
	var message ="<<"+macroName;
	for (var i = 0; i < params.length; i++) {
		message += " "+params[i];
	}
	message += ">>";
	displayMessage(message);
};


// Internal.
//
// Creates an element that holds an error message
// 
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
	var message = (exception.description) ? exception.description : exception.toString();
	return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};

// Internal.
//
// @param place [may be null]
//
config.macros.forEachTiddler.handleError = function(place, exception) {
	if (place) {
		this.createErrorElement(place, exception);
	} else {
		throw exception;
	}
};

// Internal.
//
// Encodes the given string.
//
// Replaces 
//	 "$))" to ">>"
//	 "$)" to ">"
//
config.macros.forEachTiddler.paramEncode = function(s) {
	var reGTGT = new RegExp("\\$\\)\\)","mg");
	var reGT = new RegExp("\\$\\)","mg");
	return s.replace(reGTGT, ">>").replace(reGT, ">");
};

// Internal.
//
// Returns the given original path (that is a file path, starting with "file:")
// as a path to a local file, in the systems native file format.
//
// Location information in the originalPath (i.e. the "#" and stuff following)
// is stripped.
// 
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
	// Remove any location part of the URL
	var hashPos = originalPath.indexOf("#");
	if(hashPos != -1)
		originalPath = originalPath.substr(0,hashPos);
	// Convert to a native file format assuming
	// "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
	// "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
	// "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
	// "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
	var localPath;
	if(originalPath.charAt(9) == ":") // pc local file
		localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file
		localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file:///") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(7));
	else if(originalPath.indexOf("file:/") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(5));
	else // pc network file
		localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");	
	return localPath;
};

// ---------------------------------------------------------------------------
// Stylesheet Extensions (may be overridden by local StyleSheet)
// ---------------------------------------------------------------------------
//
setStylesheet(
	".forEachTiddlerError{color: #ffffff;background-color: #880000;}",
	"forEachTiddler");

//============================================================================
// End of forEachTiddler Macro
//============================================================================


//============================================================================
// String.startsWith Function
//============================================================================
//
// Returns true if the string starts with the given prefix, false otherwise.
//
version.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.startsWith = function(prefix) {
	var n =  prefix.length;
	return (this.length >= n) && (this.slice(0, n) == prefix);
};



//============================================================================
// String.endsWith Function
//============================================================================
//
// Returns true if the string ends with the given suffix, false otherwise.
//
version.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.endsWith = function(suffix) {
	var n = suffix.length;
	return (this.length >= n) && (this.right(n) == suffix);
};


//============================================================================
// String.contains Function
//============================================================================
//
// Returns true when the string contains the given substring, false otherwise.
//
version.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.contains = function(substring) {
	return this.indexOf(substring) >= 0;
};

//============================================================================
// Array.indexOf Function
//============================================================================
//
// Returns the index of the first occurance of the given item in the array or 
// -1 when no such item exists.
//
// @param item [may be null]
//
version.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.indexOf = function(item) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == item) {
			return i;
		}
	}
	return -1;
};

//============================================================================
// Array.contains Function
//============================================================================
//
// Returns true when the array contains the given item, otherwise false. 
//
// @param item [may be null]
//
version.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.contains = function(item) {
	return (this.indexOf(item) >= 0);
};

//============================================================================
// Array.containsAny Function
//============================================================================
//
// Returns true when the array contains at least one of the elements 
// of the item. Otherwise (or when items contains no elements) false is returned.
//
version.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAny = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (this.contains(items[i])) {
			return true;
		}
	}
	return false;
};


//============================================================================
// Array.containsAll Function
//============================================================================
//
// Returns true when the array contains all the items, otherwise false.
// 
// When items is null false is returned (even if the array contains a null).
//
// @param items [may be null] 
//
version.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAll = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (!this.contains(items[i])) {
			return false;
		}
	}
	return true;
};


} // of "install only once"

// Used Globals (for JSLint) ==============
// ... DOM
/*global 	document */
// ... TiddlyWiki Core
/*global 	convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, 
			displayMessage, endSaveArea, hasClass, loadFile, saveFile, 
			startSaveArea, store, wikify */
//}}}


/***
!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

Neither the name of abego Software nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
***/
Morris Gray has very nice lists of how to do ASCII symbols, Greek and Latin symbols, HTML entities and Math symbols at his wonderful TW Help site. To see these lists at his site, [[click here|http://twhelp.tiddlyspot.com/#Entities-Codes]].
''Line-by-line blockquotes:''
{{{>level 1}}}
{{{>level 1}}}
{{{>>level 2}}}
{{{>>level 2}}}
{{{>>>level 3}}}
{{{>>>level 3}}}
{{{>>level 2}}}
{{{>level 1}}}

produces:
>level 1
>level 1
>>level 2
>>level 2
>>>level 3
>>>level 3
>>level 2
>level 1

''Extended blockquotes:''
{{{<<<}}}
{{{Extended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotes}}}
{{{<<<}}} 

produces:
<<<
Extended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotesExtended blockquotes
<<<
|bgcolor(#dddddd):Links with wikiwords|EnchiLada (inactive link - no tiddler yet)<br>WikiWord (active link to tiddler)|{{{EnchiLada}}}<br>{{{WikiWord}}}|
|bgcolor(#dddddd):~De-Wikify a ~WikiWord|~WikiWord, ~EnchiLada|{{{~WikiWord, ~EnchiLada}}}|
|bgcolor(#dddddd):Links with brackets|[[How to add background images]]|{{{[[How to add background images]]}}}|
|bgcolor(#dddddd):Pretty links|[[display text|ColorSchemes]] - links to the tiddler of color schemes|{{{[[display text|ColorSchemes]]}}}|
|bgcolor(#dddddd):External links work the same way:|http://groups.google.com/group/TiddlyWiki <br><br>[[TiddlyWiki Google group|http://groups.google.com/group/TiddlyWiki]]|{{{http://groups.google.com/group/TiddlyWiki}}} <br><br> {{{[[TiddlyWiki Google group|http://groups.google.com/group/TiddlyWiki]]}}}|
|bgcolor(#dddddd):Links to local files|To a file on a CD in your D drive: <br><br>To a file on your USB stick on your e drive: <br><br>To a file in your hard drive:|{{{file:///D:/filename.doc/}}}<br><br>{{{file:///E:/filename.doc/}}}<br><br>{{{file:///C:/filepath/filename.doc/}}}| 

''Images:''
{{{[img[http://farm1.static.flickr.com/39/122259544_6913ca58f3_m.jpg]]}}} is the formatting for:

[img[http://farm1.static.flickr.com/39/122259544_6913ca58f3_m.jpg]]

''A tip from Jeremy Hodge:''
"...[You] may add an image as a local file with the following: {{{[img[.\filepath\filename.jpg]]}}} which adds a picture from the directory that is contained within the same directory as TW. This is very useful for me or anyone who carries their own TW on a USB drive such as myself."
''Numbered lists:''
{{{#item one }}}
{{{##Item 1a}}}
{{{###Item 1ai}}} 

produces:
#item one   
##Item 1a 
###Item 1ai 
''Bulleted lists:''
{{{*Bullet one}}}
{{{**Bullet two}}}
{{{***Bullet three}}}
 
produces:
*Bullet one    
**Bullet two    
***Bullet level three    
!This is the formatting:

{{{|!Table header|!Column Two|}}}
{{{|>| colspan |}}}
{{{| rowspan |left aligned|}}}
{{{|~| right aligned|}}}
{{{|bgcolor(#DC1A1A):colored| centered |}}}
{{{||*lists<br>*within<br>*tables<br><br>and double-spaced too|}}}
{{{|caption|c}}}

!This is the result:

|!Table header|!Column Two|
|>| colspan |
| rowspan |left aligned|
|~| right aligned|
|bgcolor(#DC1A1A):colored| centered |
||*lists<br>*within<br>*tables<br><br>and double-spaced too|
|caption|c

[[More information on tables]]
!Format text
|!Format|!It will look like this...|!...if you format it like this...|
|Bold-faced type|''text''|{{{''text''}}}|
|Italic text|//text//|{{{//text//}}}|
|Underlined text|__text__|{{{__text__}}}|
|Strike-through text|--text--|{{{--text--}}}|
|Colored text|@@color(green):green colored@@|{{{@@color(green):green colored@@}}}|
|Text with colored background|@@bgcolor(#ff0000):color(#ffffff):red colored@@|{{{@@bgcolor(#ff0000):color(#ffffff):red colored@@}}}|
|Highlighting|@@text@@|{{{@@text@@}}}|
|Superscript|2^^3^^=8|{{{2^^3^^=8}}}|
|Subscript|a~~ij~~ = -a~~ji~~|{{{a~~ij~~ = -a~~ji~~}}}|

!Make the first letter of a paragraph extra large
(from Morris Gray's TW Help)

''Sample'':

{{firstletter{
 @@color:#bbbbbb;O@@}}}kay, so you know how to use ~TiddlyWiki, but now you want more. You want to change the color or layout. You want to add features to it. As the subtitle says, this is an entry-level introduction, so I am not going to show you how to do every possible thing you can do with ~TiddlyWiki. I probably don't know half of what can be done. Advanced documentation such as that found at http://www.tiddlywiki.org/wiki and http://tiddlyspot.com/twhelp/ can hopefully expand your horizons. 

''How to do it:''

1. Add the following code to your StyleSheet:

 {{{
.firstletter{ float:left; width:0.75em; font-size:400%; font-family:times,arial; line-height:60%; }
}}}

2. Add the following code to your tiddler at the place where your enlarged letter would go (replacing "O" with the appropriate letter):
{{{
{{firstletter{
 @@color:#c06;O@@
 }}}
}}}
Specifies the latitude and longitude of a location
Opens the file or web page associated with the hyperlink attached to an object
Fills an enclosed area or selected objects with a gradient fill
Switches from the text window to the drawing area
Displays a grid in the current viewport that is not plotted
Creates and manages saved sets of objects called groups
Fills an enclosed area or selected objects with a hatch pattern, solid fill, or gradient fill
Modifies an existing hatch or fill
Creates a 2D or 3D spiral
Displays Help - F1

Reassigning the F1 Key - 1. Tools>Customize>Interface… 2. Right click on any of the shortcut keys and Duplicate, then match the properties. Here’s the Macro for you to copy/paste: ^C^C_regenall Now click OK and that should take care of the pesky Help Window coming up when you accidently hit the F1 key instead of ESC. 
Regenerates a three-dimensional wireframe model with hidden lines suppressed
Controls the display properties of models
Attaches a hyperlink to an object or modifies an existing hyperlink
Controls the display of the hyperlink cursor, tooltips, and shortcut menu
Add the following code to the StyleSheet tiddler, being sure to place your image url inside the paretheses:

<!--{{{-->
body {background-image: url();
background-repeat: repeat; background-position: left; backgound-color: transparent; font-family: Helvetica;} 
<!--}}}-->

Obviously if it is an image on the Internet, you will only have access to the image while online.
Displays the coordinate of a location
Displays the External References palette
Controls the image display of the brightness, contrast, and fade values of images
Attaches a new image to the current drawing
Uses clipping boundaries to define a subregion of an image object
Controls whether image frames are displayed and plotted
Controls the display quality of images
Imports files in various formats
Imprints an edge on a 3D solid
Places a drawing or named block into the current drawing
Inserts a linked or embedded object
Highlights 3D solids that overlap
Creates composite solids or regions from the intersection of two or more solids or regions and removes the areas outside of the intersection
Specifies the current isometric plane

/***
|''Name:''|abego.IncludePlugin|
|''Version:''|1.0.0 (2007-02-08)|
|''Type:''|plugin|
|''Source:''|http://tiddlywiki.abego-software.de/#IncludePlugin|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[IncludePlugin Documentation|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]]|
|''Community:''|([[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23IncludePlugin]]) ([[Support|http://groups.google.com/group/TiddlyWiki]])|
|''Copyright:''|&copy; 2007 [[abego Software|http://www.abego-software.de]]|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''~CoreVersion:''|2.1.3|
|''Browser:''|Firefox 1.5.0.9 or better; Internet Explorer 6.0|
***/
//{{{

// Ensure the global abego namespace is set up.
if (!window.abego) window.abego = {};

var invokeLater = function(func, delay, priority) {
	return abego.invokeLater ? abego.invokeLater(func, delay, priority) : setTimeout(func,delay);
};

// Asynchronously load the given (local or remote) file.
// 
// @param url 		either an URL or a local file path to a file
//					Examples:
//						* http://www.abego-software.de/index.html
//						* file:///C:/abegoWebSite-Copy/index.html
//						* C:\abegoWebSite-Copy\index.html    (for Windows machines)
//							(Notice: backslashes in JavaScript string constants must be escaped, 
//							 i.e. the last example must be written as: "C:\\abegoWebSite-Copy\\index.html"
//							 when "hardcoded" in JavaScript source code)
// 
// @param callback 
//					function(content,url,params,errorMessage) 
//					called at the end of the operation. 
//					On success content holds the content of the loaded file. 
//					On error content is undefined and errorMessage holds an error message. 
//					params is the params passed into abego.loadFile.
//
// @param params 	passed through to the callback function
// 
abego.loadFile = function(url,callback,params) {

	var onLoad = function(status,params,responseText,url,xhr) {
		return status 
				? callback(responseText, url, params)
				: callback(undefined, url, params, "Error loading %0".format([url]));
	};
	
	// Make sure the URL is a real URL, with protocol prefix etc.
	if (url.search(/^((http(s)?)|(file)):/) != 0) {
		
		// no protocol specified. 
		if (url.search(/^((.\:\\)|(\\\\)|(\/))/) == 0) {
			// "url" is an "absolute" path to a local file. Prefix it with file://
			url = "file://"+url;
			
		} else {
			// "url" is a "relative" URL. Make it absolute
			
			// prefix the url with the directory containing the current document
			// (This also includes the protocol prefix)
			var documentPath = document.location.toString();
			var i = documentPath.lastIndexOf("/");
			url = documentPath.substr(0,i+1)+url;
		}
		// replace every \ by a /, to cover Windows style pathes
		url = url.replace(/\\/mg,"/");
	}
	
	loadRemoteFile(url,onLoad,params);

};

// Asynchronously load the given (local or remote) TiddlyWiki store.
// 
// @param url 		either an URL or a local file path to a TiddlyWiki file (absolute or relative)
//					Examples:
//						* http://www.abego-software.de/index.html
//						* file:///C:/abegoWebSite-Copy/index.html
//						* include/beta.html
//						* C:\abegoWebSite-Copy\index.html    (for Windows machines)
//							(Notice: backslashes in JavaScript string constants must be escaped, 
//							 i.e. the last example must be written as: "C:\\abegoWebSite-Copy\\index.html"
//							 when "hardcoded" in JavaScript source code)
// 
// @param callbackWithStore 
//					function(theStore,url,params,errorMessage) 
//					called at the end of the operation. 
//					On success theStore holds the loaded store (a TiddlyWiki object). 
//					On error theStore is undefined and errorMessage holds an error message. 
//					params is the params passed into abego.loadTiddlyWikiStore
//
// @param params 	passed through to the callbackWithStore
//
// @progress		[optional] function(message, sender, state, url, params) called in various situations during the operation,
//								typically used to show "the progress" of the operation.
//								sender: the constant "abego.loadTiddlyWikiStore"
//								state: one of these: "Started", "Processing", "Done", "Failed"
//									"Processing" means the data has been received and in now processed.
// 
abego.loadTiddlyWikiStore = function(url,callbackWithStore,params,progress) {
	
	var sendProgress = function(message, state) {
		if (progress)
			progress(message,"abego.loadTiddlyWikiStore",state,url,params);
	};
	
	// Load contents of a TiddlyWiki from a string
	//# Returns null on success, an error message otherwise.
	//# based on code from TiddlyWiki 2.2 alpha
	var importTiddlyWiki = function(store,text)
	{
		// Crack out the content - will be refactored to share code with saveChanges()
		var posOpeningDiv = text.indexOf(startSaveArea);
		var limitClosingDiv = text.indexOf("<!--POST-BODY-END--"+">");
		var posClosingDiv = text.lastIndexOf(endSaveArea,limitClosingDiv == -1 ? text.length : limitClosingDiv);
		if((posOpeningDiv == -1) || (posClosingDiv == -1))
			return config.messages.invalidFileError.format([url]);
		var content = "<html><body>" + text.substring(posOpeningDiv,posClosingDiv + endSaveArea.length) + "</body></html>";
		// Create the iframe
		var iframe = document.createElement("iframe");
		iframe.style.display = "none";
		document.body.appendChild(iframe);
		var doc = iframe.document;
		if(iframe.contentDocument)
			doc = iframe.contentDocument; // For NS6
		else if(iframe.contentWindow)
			doc = iframe.contentWindow.document; // For IE5.5 and IE6
		// Put the content in the iframe
		doc.open();
		doc.writeln(content);
		doc.close();
		// Load the content into a TiddlyWiki() object
		var storeArea = doc.getElementById("storeArea");
		store.loadFromDiv(storeArea,"store");
		// Get rid of the iframe
		iframe.parentNode.removeChild(iframe);
		return null;
	};
	
	var sendError = function(message) {
		sendProgress("Error when loading %0".format([url]),"Failed");
		callbackWithStore(undefined, url,params, message);
		return message;
	};
	
	var sendStore = function(store) {
		sendProgress("Loaded %0".format([url]),"Done");
		callbackWithStore(store, url, params);
		return null;
	};
	
	
	var callback = function(content,theURL,params,errorMessage) {
		if (content === undefined) {
			sendError(errorMessage);
			return;
		}
		
		sendProgress("Processing %0".format([url]),"Processing");
		var orig_invalidFileError = config.messages.invalidFileError;
		config.messages.invalidFileError = "The file '%0' does not appear to be a valid TiddlyWiki file";
		try {
			// Load the content into a TiddlyWiki() object
			var importStore = new TiddlyWiki();
			var errorText = importTiddlyWiki(importStore,content);
			if (errorText)
				sendError(errorText);
			else
				sendStore(importStore);

		} catch (ex) {
			sendError(exceptionText(ex));
		} finally {
			config.messages.invalidFileError = orig_invalidFileError;
		}
	};
	
	sendProgress("Start loading %0".format([url]),"Started");
	abego.loadFile(url,callback,params);
};


//==============================================================================
// Include Plugin 

(function(){

// only install once
if (abego.TiddlyWikiIncluder) return;


// --------------------------------------------------
// Constants

var WAITING = "waiting";
var LOADING = "loading";

var ANI_DURATION_HIDE_STATE = 1000;

var REFRESH_PRIORITY = -200;
var ANIMATION_PRIORITY = -100;
var UPDATE_STATE_PRIORITY = -300;

// --------------------------------------------------
// Variables

var useInclude;
var includes = []; // [] of Strings. the urls of the stores to include, in the sequence of the calls.
var includedStores = {}; // url(String) -> TiddlyWiki or String; when not (yet) loaded a status or error string.
var pendingOnLoadURLs = []; // [] of String. a list of urls that should be passed with the next "notifyListeners".
var refreshTiddlyWikiTimerID; // for delayed refresh
var listeners = [];
var progress;

// --------------------------------------------------
// Helper functions

var isIncludeEnabled = function() {
	if (useInclude === undefined)
		useInclude = config.options.chkUseInclude === undefined || config.options.chkUseInclude;
	return useInclude;
};

var getMissingIncludeMsg = function(url) {
	return "No include specified for %0".format([url])
};

// Called after one or more included TiddlyWikis are loaded
//
var notifyListeners = function() {
	var urls = pendingOnLoadURLs;
	pendingOnLoadURLs = [];
	if (urls.length) {
		for (var i= 0; i < listeners.length; i++)
			listeners[i](urls);
	}
};

var idleCount; // Reset to 0 when the system is "not idle", incremented inside refreshTiddlyWiki

var refreshTiddlyWiki = function() {
	// To avoid to much refreshing/flickering don't refresh immediately 
	// but wait until the system was idle for a certain time.
	
	if (refreshTiddlyWikiTimerID !== undefined) clearInterval(refreshTiddlyWikiTimerID);
	
	idleCount = 0;
	
	var sendDone = function() {
		abego.TiddlyWikiIncluder.sendProgress("","","Done");
	};
	
	refreshTiddlyWikiTimerID = setInterval(function() {
		idleCount++;
		if (idleCount <= 10)
			return;
			
		clearInterval(refreshTiddlyWikiTimerID);
		refreshTiddlyWikiTimerID = undefined;
			
		abego.TiddlyWikiIncluder.sendProgress("Refreshing...","","");
		refreshDisplay();
		invokeLater(sendDone,0,REFRESH_PRIORITY);
	},0);
};

// Calls callback for every loaded store and returns the first non-false/null.. value returned by callback.
//
// @param callback  function(store, url)
//
var forEachLoadedStore = function(callback) {
	var result;
	for (var i = 0; i < includes.length; i++) {
		var theStore = abego.TiddlyWikiIncluder.getStore(includes[i]);
		if (theStore && (result = callback(theStore, includes[i])))
			return result;
	}
};

var attachToStore = function() {
	if (!window.store)
		return invokeLater(attachToStore,100);
		
	var orig_fetchTiddler = store.fetchTiddler;
	
	store.fetchTiddler = function(title) {
		var t = orig_fetchTiddler.apply(this,arguments);
		if (t) return t;
		
		// When there is a shadowtiddler with that name done look for
		// any included tiddler since these would hide the shadow
		if (config.shadowTiddlers[title] !== undefined) return undefined;
		
		// Don't look for the "New Tiddler" tiddler in the included TiddlyWikis,
		// since returning such a tiddler (that is readonly) will make it impossible
		// in the Main TiddlyWiki to create new tiddlers.
		if (title == config.macros.newTiddler.title) return undefined;

		return forEachLoadedStore(
				function(theStore, url) {
					var t = theStore.fetchTiddler(title);
					if (t) 
						t.includeURL = url;
					return t;
				});
	};

	// We also refresh TiddlyWiki to reflect the new included Tiddlers (if we have any).
	if (includes.length)
		refreshTiddlyWiki();
};

var includeFromIncludeList = function() {
	if (!window.store)
		return invokeLater(includeFromIncludeList,100);
		
	var includeListText = store.getTiddlerText("IncludeList");
	if (includeListText) 
		wikify(includeListText,document.createElement("div"));
};

var getFunctionUsingForReallyEachTiddler = function(func) {
	var wrapper = function() {
		var orig_forEachTiddler = store.forEachTiddler;

		var forEachTiddlerWithIncludes = function(callback) {
			var done = {};
			var includeURL;

			var callbackWrapper = function(title, tiddler) {
				// ensure every title is only processed once
				if (done[title]) 
					return;
				done[title] = 1;
				
				// for "included tiddlers" set the includeURL;
				if (includeURL)
					tiddler.includeURL = includeURL;
				
				callback.apply(this,arguments);
			};
			
			// forEachTiddler over the original tiddlers
			orig_forEachTiddler.call(store, callbackWrapper);
			
			// add all shadowTiddler titles to done 
			// (to avoid an included store hides a shadow tiddler)
			for (var n in config.shadowTiddlers)
				done[n] = 1;

			// add all the "New Tiddler" tiddlerto done 
			// (to avoid an included store (with "New Tiddler") makes it impossible to create new tiddlers)
			done[config.macros.newTiddler.title] = 1;

			// forEachTiddler over every included store
			forEachLoadedStore(
					function(theStore, url) {
						includeURL = url;
						theStore.forEachTiddler(callbackWrapper);
					});
		};
		
		store.forEachTiddler = forEachTiddlerWithIncludes;
		try {
			return func.apply(this,arguments);
		} finally {
			store.forEachTiddler = orig_forEachTiddler;
		}
	};
	
	return wrapper;
};

var useForReallyEachTiddler = function(object,property) {
	return object[property] = getFunctionUsingForReallyEachTiddler(object[property]);
};


//================================================================================
// abego.TiddlyWikiIncluder

abego.TiddlyWikiIncluder = {};

abego.TiddlyWikiIncluder.setProgressFunction = function(func) {
	progress = func;
};

abego.TiddlyWikiIncluder.getProgressFunction = function(func) {
	return progress;
};

abego.TiddlyWikiIncluder.sendProgress = function(message, sender, state) {
	if (progress)
		progress.apply(this,arguments);
};


// Called when an included TiddlyWiki could not be loaded.
//
// By default an error message is displayed.
//
abego.TiddlyWikiIncluder.onError = function(url, errorMessage) {
	displayMessage("Error when including '%0':\n%1".format([url, errorMessage]));
};


// Returns true when there are "pending" includes, i.e. TiddlyWiki that are not yet loaded.
//
// A TiddlyWiki that failed loading is not pending.
//
abego.TiddlyWikiIncluder.hasPendingIncludes = function() {
	for (var i = 0; i < includes.length; i++) {
		var state = abego.TiddlyWikiIncluder.getState(includes[i]);
		if (state == WAITING || state == LOADING)
			return true;
	}
	return false;
};


// @return [] of Strings, the URLs of the includes
//
abego.TiddlyWikiIncluder.getIncludes = function() {
	return includes.slice();
};


// @return [may be null] a state/error text of the store with the given URL, or null when the store is already loaded
//
abego.TiddlyWikiIncluder.getState = function(url) {
	var s = includedStores[url];
	if (!s)
		return getMissingIncludeMsg(url);
	return typeof s == "string" ? s : null;
};


// @return [may be null] the (TiddlyWiki) store  with the given URL, null if not (yet) loaded.
//
abego.TiddlyWikiIncluder.getStore = function(url) {
	var s = includedStores[url];
	if (!s)
		return getMissingIncludeMsg(url);
	return s instanceof TiddlyWiki ? s : null;
};


// Includes the (local or remote) TiddlyWiki store with the given url.
// 
// stores with urls already already included are ignored.
//
// @param url	see url@abego.loadTiddlyWikiStore
// @param delayMilliSeconds [optional] if defined loading starts delayMilliSeconds later, otherwise "immediately"
//
abego.TiddlyWikiIncluder.include = function(url, delayMilliSeconds) {
	if (!isIncludeEnabled() || includedStores[url])
		return;
	var self = this;
	
	includes.push(url);
	includedStores[url] = WAITING;

	var loadStoreCallback = function(theStore,urlInCallback,params,errorMessage) {
		if (theStore === undefined) {
			includedStores[url] = errorMessage;
			self.onError(url, errorMessage);
			return;
		}
		includedStores[url] = theStore;
		pendingOnLoadURLs.push(url);
		invokeLater(notifyListeners);
	};
	
	var loadStore = function() {
		includedStores[url] = LOADING;
		abego.loadTiddlyWikiStore(url,loadStoreCallback,null,progress);
	};
	
	if (delayMilliSeconds)
		invokeLater(loadStore, delayMilliSeconds);
	else
		loadStore();
};


// iterates over all tiddlers of "the store" and all tiddlers of included (and loaded) stores
//
abego.TiddlyWikiIncluder.forReallyEachTiddler = function(callback) {
	var caller = function() {
		store.forEachTiddler(callback);
	};
	
	getFunctionUsingForReallyEachTiddler(caller).call(store);
};


// function abego.TiddlyWikiIncluder.getFunctionUsingForReallyEachTiddler(func)
//
// Returns a function that behaves as func, but every call to store.forEachTiddler will actually 
// be a call to forReallyEachTiddler, i.e. iterate over the tiddlers the main store and of the 
// included TiddlyWikis
//
// @return the patched function
//
abego.TiddlyWikiIncluder.getFunctionUsingForReallyEachTiddler = getFunctionUsingForReallyEachTiddler;


// function abego.TiddlyWikiIncluder.useForReallyEachTiddler(object,property)
//
// Patches the function hold in the given property of the object in such a way that every call
// to store.forEachTiddler will actually be a call to forReallyEachTiddler, i.e. iterate over the
// tiddlers the main staire and of the included TiddlyWikis
//
// @param object
// @param property the name of the property of the object containing the function to be patched.
// @return the patched function
//
abego.TiddlyWikiIncluder.useForReallyEachTiddler = useForReallyEachTiddler;


// Add a listener function to the TiddlyWikiIncluder.
//
// @param listener function(urls)
//							url: [] of Strings, containing the urls of the TiddlyWiki just included
//									(see url@abego.TiddlyWikiIncluder.include)
//						called whenever one or more TiddlyWiki store are successfully included.
//
abego.TiddlyWikiIncluder.addListener = function(listener) {
	listeners.push(listener);
};

// -------------------------------------------------------------------------------
// TiddlyWikiIncluder initialization code

abego.TiddlyWikiIncluder.addListener(refreshTiddlyWiki);

//----------------------------------------------------------------------------
// Options Support

if (config.options.chkUseInclude === undefined) config.options.chkUseInclude = true;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkUseInclude>> Include ~TiddlyWikis (IncludeList | IncludeState | [[help|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]])\n^^(Reload this ~TiddlyWiki to make changes become effective)^^";
config.shadowTiddlers.IncludeState = "<<includeState>>";

//================================================================================
// Default Progress Handling for abego.TiddlyWikiIncluder

var showAnimated = function(e, showing, duration) {
	if (!anim || !abego.ShowAnimation) {
		e.style.display = showing ? "block" : "none";
		return;
	}
	
	anim.startAnimating(new abego.ShowAnimation(e,showing,duration));
};

abego.TiddlyWikiIncluder.getDefaultProgressFunction = function() {

	setStylesheet(
		".includeProgressState{\n"+
		"background-color:#FFCC00;\n"+
		"position:absolute;\n"+
		"right:0.2em;\n"+
		"top:0.2em;\n"+
		"width:7em;\n"+
		"padding-left:0.2em;\n"+
		"padding-right:0.2em\n"+
		"}\n",
		"abegoInclude");

	var createStateElem = function() {
		var e = document.createElement("div");
		e.className = "includeProgressState";
		e.style.display = "none";
		document.body.appendChild(e);
		return e;
	};
	
	var stateElem = createStateElem();


	var showState = function(message) {
		removeChildren(stateElem);
		createTiddlyText(stateElem,message);
		showAnimated(stateElem,true,0);
	};

	var hideState = function() {
		// hide the state the next idle time 
		invokeLater(function() {
			showAnimated(stateElem,false,ANI_DURATION_HIDE_STATE);
		},100,ANIMATION_PRIORITY);
	};
	
	var myProgressFunction = function(message, sender, state, url, params) {
		
		if (state == "Done" || state == "Failed") {
			hideState();
			return;
		}
		
		if (sender == "abego.loadTiddlyWikiStore") {
			idleCount = 0;
			if (state == "Processing")
				showState("Including...");
		} else {
			showState(message);
		}
	};
	return myProgressFunction;
};

abego.TiddlyWikiIncluder.setProgressFunction(abego.TiddlyWikiIncluder.getDefaultProgressFunction());


//================================================================================
// The "include" macro
//
// Syntax: <<include {url}* [delay: {milliSeconds}] [hide: true] >>
//

config.macros.include = {};
config.macros.include.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
    params = paramString.parseParams("url",null,true,false,true); // allowEval, cascadeDefaults, names allowed
	var delay = parseInt(getParam(params,"delay","0"));
	var urls = params[0]["url"];
	var hide = getFlag(params, "hide", false);
	if (!hide)
		createTiddlyText(createTiddlyElement(place,"code"),wikifier.source.substring(wikifier.matchStart, wikifier.nextMatch));
	for (var i = 0; urls && i < urls.length; i++)
		abego.TiddlyWikiIncluder.include(urls[i],delay);
};


//================================================================================
// The "includeState" macro
//
// Syntax: <<includeState>>

config.macros.includeState = {};
config.macros.includeState.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var getFullState = function () {
		var s = "";
		var includes = abego.TiddlyWikiIncluder.getIncludes();
		if (!includes.length)
			return "{{noIncludes{\nNo includes or 'include' is disabled (see AdvancedOptions)\n}}}\n";
			
		s += "|!Address|!State|\n";
		for (var i = 0; i < includes.length; i++) {
			var inc = includes[i];
			s += "|{{{"+inc+"}}}|";
			var t = abego.TiddlyWikiIncluder.getState(inc);
			s += t ? "{{{"+t+"}}}" : "included";
			s += "|\n"
		}
		s += "|includeState|k\n";
		return s;
	};
	
	var updateState = function(){
		removeChildren(div);
		wikify(getFullState(),div);
		if (abego.TiddlyWikiIncluder.hasPendingIncludes())
			invokeLater(updateState,500,UPDATE_STATE_PRIORITY);
	};

	var div = createTiddlyElement(place,"div");
	
	invokeLater(updateState,0,UPDATE_STATE_PRIORITY);
};

//================================================================================
// Tiddler extension/modification

var orig_Tiddler_isReadOnly = Tiddler.prototype.isReadOnly;

// Includes tiddlers are readonly.
Tiddler.prototype.isReadOnly = function() {
	return orig_Tiddler_isReadOnly.apply(this,arguments) || this.isIncluded();
}

Tiddler.prototype.isIncluded = function() {
	return this.includeURL != undefined;
};

Tiddler.prototype.getIncludeURL = function() {
	return this.includeURL;
};


//================================================================================
// TiddlyWiki modifications

// In some TiddlyWiki functions the "forEachTiddler" should work on all tiddlers, also those from 
// included store. (E.g. TiddlyWiki.prototype.getTags)
//
// But not for all (e.g. TiddlyWiki.prototype.getTiddlers is used for saving, but only the "own" tiddlers should be saved)
//
// Therefore explicitly list the functions that should be "wrapped" to use the "forReallyEachTiddler".
//
var tiddlyWikiFunctionsUsingForReallyEachTiddler = {
	getMissingLinks: 1, getOrphans: 1,getTags:1, reverseLookup: 1, updateTiddlers: 1};
	
for (var n in tiddlyWikiFunctionsUsingForReallyEachTiddler)
	useForReallyEachTiddler(TiddlyWiki.prototype,n);


//================================================================================
// Make IntelliTagger "Include-aware"

var patchIntelliTagger = function() {
	if (abego.IntelliTagger)
		useForReallyEachTiddler(abego.IntelliTagger,"assistTagging");
};

//================================================================================
// Perform plugin startup tasks

attachToStore();
invokeLater(includeFromIncludeList,100);
invokeLater(patchIntelliTagger,100);

})();

//}}}
Adds a jogged segment to a section object
Joins objects to form a single, unbroken object
Saves selected objects to a file in JPEG file format
Changes the justification point of selected text objects without changing their locations
Changes the layer of selected objects to the current layer
Deletes the layer of a selected object and all objects on the layer, and purges the layer from the drawing.  Must not be Current Layer.  Works even if Layer is in use!
Manages layers and layer properties
Deletes excessive layer filters to improve performance. When a drawing has 100 or more layer filters, and the number of layer filters exceeds the number of layers, LAYERFILTERALERT provides a method for deleting layer filters to improve performance.

0 - Off

1 - When the Layer Manager is opened, deletes all layer filters; no message is displayed

2 - When the Layer Manager is opened, displays a message that states the problem, recommends deleting all filters, and offers a choice: “Do you want to delete all layer filters now?”

3 - When the drawing is opened, displays a message that states the problem and offers to display a dialog box where you can choose which filters to delete
Undoes the last change or set of changes made to layer settings
Turns the tracking of changes made to layer settings on and off
Saves, restores, and manages named layer states
Freezes the layer of selected objects
Hides or locks all layers other than those of the selected objects
Locks the layers of selected objects
Sets the displayed intensity of the layer when it is locked.  The layer prints normally even when locked. 
Acceptable entries: (-90 to 90), -90 to 0 has no effect, 10 fades slightly, 90 fades completely.
Changes the layer of a selected object to match the destination layer.
Makes the layer of a selected object current.  Also a good way to ID the selected Layer.
Merges selected layers onto a destination layer
Turns off the layer of the selected object.  Command > Select Object >
Turns on all layers
Creates and modifies drawing layout tabs
Moves all objects on one or more layouts, that you specify, to a single layout.
Creates a new layout tab and specifies page and plot settings
Thaws all layers
Changes a drawing's layers to layer standards you specify
Unlocks the layer of a selected object
Turns on layers that were turned off with the last LAYISO command
Isolates an object's layer to the current viewport
Dynamically displays layers in a drawing
Creates a line that connects annotation to a feature
Changes the length of objects and the included angle of arcs
Creates a light
Opens the Lights in Model window to add and modify lights
Closes the Lights in Model window
Sets and controls the limits of the grid display in the current Model or layout tab
Creates straight line segments
Loads, sets, and modifies linetypes
<<forEachTiddler
    where
        'tiddler.tags.contains("Lisp")'
    sortBy 
        'tiddler.title.toUpperCase()'
    
    script
        '
        function getGroupCaption(tiddler) {
            return tiddler.title.substr(0,1).toUpperCase();
        } 

        function getGroupTitle(tiddler, context) {
            if (!context.lastGroup || context.lastGroup != getGroupCaption(tiddler)) {
                context.lastGroup = getGroupCaption(tiddler); 
                return "* {{{"+(context.lastGroup?context.lastGroup:"no tags")+"}}}\n";
            } else 
                return "";
        }
        '
    
    write
         'getGroupTitle(tiddler, context)+"** [[" + tiddler.title+"]]\n"'
>>
Displays database information for selected objects, including Blocks
Turns on live sectioning for a selected section object.
Makes shapes available for use by the SHAPE command.
See [[LSP File Loading]] for loading an LSP File.
Creates a 3D solid or surface by lofting through a set of two or more curves
Closes the text window log file opened by LOGFILEON
Writes the text window contents to a file
Has no effect except to preserve the integrity of scripts
Has no effect except to preserve the integrity of scripts
Has no effect except to preserve the integrity of scripts
!!!Method 1
Command entry: [[APPLOAD]]
#Tools
#Load Application...
#Find lisp(s) that you want to load (Click [[Here|Lisp List]] for a list of lisps located at [[E:/Cad/Lisp|E:/Cad/Lisp]])
#Load
#Close
----
!!!Method 2
From the pull down:
#Tools
#Load Application...
#Find lisp(s) that you want to load (Click [[Here|Lisp List]] for a list of lisps located at [[E:/Cad/Lisp|E:/Cad/Lisp]])
#Load
#Close
----
!!!Method 3
Startup Suite - These are the applications that are loaded each time you start AutoCAD
#Command entry: [[APPLOAD]] OR From the pull down:
#Select Contents...  from under the Startup Suite Icon
#Add
#Find lisp(s) that you want to load (Click [[Here|Lisp List]] for a list of lisps located at [[E:/Cad/Lisp|E:/Cad/Lisp]])
#Add
#Close
#Close
Sets the global linetype scale factor
Sets the current lineweight, lineweight display options, and lineweight units
|Character|Definition|
|# (pound)|Matches any numeric digit|
|@ (at)|Matches any alphabetic character|
|. (period)|Matches any nonalphanumeric character|
|* (asterisk)|Matches any string and can be used anywhere in the search string|
|? (question mark)|Matches any single character; for example, ?BC matches ABC, 3BC, and so on|
|~ (tilde)|Matches anything but the pattern; for example; ~*AB*matches all strings that don't contain AB|
|[ ]|Matches any one of the characters enclosed; for example, [AB]C matches AC and BC|
|[~]|Matches any character not enclosed; for example, [~AB]C matches XC but not AC|
|[-]|Specifies a range for a single character; for example, [~A-G]C matches AC, BC, and so on to GC, but not HC|
|` (reverse quote)|Reads the next character literally; for example, `~AB matches ~AB|
[[Count.lsp|COUNT]]
[[pline-3d-2d.lsp|Flatten]]
Displays the details of markups and allows you to change their status
Closes the Markup Set Manager
Calculates the mass properties of regions or 3D solids
Applies the properties of a selected table cell to other table cells
Applies the properties of a selected object to other objects
Applies materials to objects by layer
Displays a material mapping gizmo to adjust the mapping on a face or an object
Manages, applies, and modifies materials
Closes the Materials window
Obsolete.  Materials are now available from the tool palattes.
Places point objects or blocks at measured intervals on an object
Loads a customization file
Used to Load/Unload Customizations
Used to Load/Unload Customizations
Inserts multiple instances of a block in a rectangular array
Creates a mirror image copy of objects
Creates a mirror image of objects about a plane
0 – Turns off mirroring
1 – Turns on mirroring (keeps text from going backwards after mirroring)
Automatically creates linetypes even complex linetypes
Used to make shapes
Creates a line that connects annotation to a feature
Organizes selected multileaders along a specified line
Organizes selected multileaders containing blocks as content into a group attached to a single leader line
Adds leader lines to, or removes leader lines from, a multileader object
Defines a new multileader style
Edits multiline intersections, breaks, and vertices
Creates multiple parallel lines
Creates, modifies, and manages multiline styles
Switches from a layout tab to the Model tab
Moves objects a specified distance in a specified direction
Reverses the effects of several previous UNDO or U commands
Creates a slide file of the current model viewport or the current layout
Switches from paper space to a model space viewport
Edits multiline text
Creates paragraphs of text as a single multiline text (mtext) object. Let MTEXT format your notes with [[AUTOMATIC NUMBERING]]. This also lets you manage the width of the line of text. No more copy and past from one line to another or having to renumber all the notes when one is added or removed.

To create multiline text:

# Click Draw menu /  Text / Multiline Text OR at the Command prompt, enter mtext. 
# Specify opposite corners of a bounding box to define the width of the multiline text object. The In Place Text Editor is displayed.
# To indent the first line of each paragraph, drag the first-line indent slider on the ruler.
# To indent the other lines of each paragraph, drag the paragraph slider.
# To set tabs, click the ruler where you want a tab stop.
# If you want to use a text style other than the default, click the arrow next to the Text Style control on the toolbar and then select a style.
# Enter text.  Note:  Text that would otherwise be difficult to read (if it is very small, very large, or is rotated) is displayed at a legible size and is oriented horizontally so that you can easily read and edit it.
# To override the current text style, select text as follows: 
## To select one or more letters, click and drag the pointing device over the characters. 
## To select a word, double-click the word. 
## To select a paragraph, triple-click the paragraph. 
# On the toolbar, make format changes as follows: 
## To change the font of the selected text, select a font from the list. 
## To change the height of the selected text, enter a new value in the Height box. 
## To format text in a TrueType font with boldface or italics, or to create underlined or overlined text for any font, click the corresponding button on the toolbar. SHX fonts do not support boldface or italics. 
## To apply color to selected text, choose a color from the Color list. Click Other to display the Select Color dialog box. 
#To save your changes and exit the editor, use one of the following methods:
##Click OK on the toolbar.
##Click in the drawing outside the editor.
##Press CTRL+ENTER.

You can enter [[Symbols and Special Characters in MTEXT]] by typing them in or in the In Place Text Editor, click Symbol on the expanded toolbar.
Repeats the next command until canceled
Creates and controls layout viewports
Sets up the specifications of a drawing
<<toggleSideBar "Toggle Sidebar">>
----
[[Welcome]]
----
[[Commands]]
[[Procedures]]
[[LISP]]
----
''Simple indenting:''

{{{ {{indent{text }}} produces:

{{indent{text


''Headlines'':

{{{!Text}}} produces:
!Text
{{{!!Text}}} produces:
!!Text
{{{!!!Text}}} produces:
!!!Text
and so on.


''Dotted horizontal lines:'' 

{{{----}}} produces the following line:
----
Loads a .NET application
Creates a new drawing
Creates a new sheet set
http://www.portlandbolt.com/technicalinformation/nut-weight-chart.html
Adds or deletes supported scales for annotative objects
Creates concentric circles, parallel lines, and parallel curves
Updates, changes, and cancels existing OLE links
Controls the size, scale, and other properties of a selected OLE object
Restores erased objects
Opens an existing drawing file
Opens a DWF file that contains markups
Opens a selected sheet set
Customizes the program settings
Constrains cursor movement to the horizontal or vertical direction
Sets running [[object snap]] modes.

The Object Snaps tab of the Drafting Settings dialog box is displayed.

If you enter -osnap at the command prompt, the following OSNAP command prompts are displayed.

Current osnap modes: current

Enter list of object snap modes: Enter names of object snap modes separated with commas, or enter none or off

Object Snap Modes

Specify one or more object snap modes by entering the first three characters of the name. If you enter more than one name, separate the names with commas.

|ENDpoint|CENter|TANgent|
|MIDpoint|NODe|NEArest|
|INTersection|QUAdrant|PARallel|
|EXTension|INSertion|
|APParent Intersection|PERpendicular|

For a description of each of these [[object snap]] modes, see the Object Snaps tab of the Drafting Settings dialog box.

The -OSNAP command also presents the following additional options:

QUIck - Snaps to the first snap point found. Quick must be used in conjunction with other object snap modes.

NONe - Turns off object snap modes.
Type: Integer 
Saved in: Not-saved 
Initial value: 0 

Controls whether object snaps are automatically projected onto a plane parallel to the XY plane of the current UCS at the current elevation.

|0|Osnap uses the Z-value of the specified point|
|1|Osnap substitutes the Z-value of the specified point with the elevation (ELEV) set for the current UCS|

See: [[object snap]]
Type: Bitcode 
Saved in: Registry 
Initial value: 3 

Automatically suppresses object snaps on hatch objects and geometry with negative Z values when using a dynamic UCS.

The setting is stored as a bitcode using the sum of the following values:

|0|Object snaps operate on hatch objects, and on geometry with negative Z values when using a dynamic UCS|
|1|Object snaps ignore hatch objects|
|2|Object snaps ignore geometry with negative Z values during use of a dynamic UCS|

See: [[object snap]]
Used to turn object snaps on an off
Type OVERKILL in the command line. This will allow you to delete information that is overlaying other items in AutoCAD. For example, if a line is drawn and another line is drawn directly on top of it accidentally. By entering OVERKILL you can delete the second line or if you wish to do something else with it, there are other options from which you can select. This could erase unneeded information from drawings, cleanup your work environment and possibly delete unnecessary layers. 
Controls the page layout, plotting device, paper size, and other settings for each new layout
Moves the view in the current viewport
Loads additional geometry into a partially opened drawing
Loads geometry and named objects from a selected view or layer into a drawing
Windows command
Inserts data from the Clipboard as a hyperlink
Pastes copied objects as a block
Inserts data from the Clipboard
Pastes a copied object in a new drawing using the coordinates from the original drawing
Inserts data from the Clipboard and controls the format of the data
If you work with drawings created in AutoCAD Release 14 or earlier, you can choose to import layout and plot settings contained in a PCP or PC2 file and apply them to the current layout. Settings that are saved in a PCP or PC2 file include:

-Plot Area 
-Rotation 
-Paper Size 
-Plot Scale 
-Plot Origin 
-Plot Offset

In addition, a PC2 file contains any resolution information that has been modified by a plotter calibration.
Displays a wizard to import PCP and PC2 configuration file plot settings into the Model tab or current layout
This procedure is used to export a drawing to PDF Format:
#Display the drawing that you want to export.
#Start the PLOT command (Ctrl + P).
#In the Printer/Plotter section of the Plot dialog box, click the drop-down and select "DWG To PDF.pc3"
#Make adjustments you want to make in the Plot dialog box and click OK.
#In the Browse for Plot File dialog box, name the PDF.
#Click OK
Edits polylines and three-dimensional polygon meshes.  Used to convert lines to polylines for the purpose of making boundaries.  Ie: hatching objects.
Creates a three-dimensional polyface mesh vertex by vertex
Displays the plan view of a specified user coordinate system
Creates a planar surface
Creates two-dimensional polylines
Plots a drawing to a plotter, printer, or file
Places a plot stamp on a specified corner of each drawing and logs it to a file
Sets the current plot style for new objects or assigns a plot style to selected objects
Displays the Plotter Manager, where you can add or edit a plotter configuration
Saves selected objects to a file in a Portable Network Graphics format
Creates a point object.  Use with Format > Point Style
Creates a point light
Creates an equilateral closed polyline
Creates a 3D polysolid
Presses or pulls bounded areas
Shows how the drawing will look when it is plotted
Controls properties of existing objects
Closes the Properties palette
Imports a user-defined page setup into a new drawing layout
Switches from a model space viewport to paper space
Publishes drawings to DWF files or plotters
Creates HTML pages that include images of selected drawings
Removes unused named items, such as block definitions and layers, from the drawing
Creates a 3D solid pyramid
Paper space is a two-dimensional world used to make paper prints of items in model space.  In paper space, you can make multiple view of what is in model space, add notes and a title block.  Paper space will be set up so that it is 1:1 with the real world.

Create Viewport:
#	switch to paperspace
#	make “VPORTS” current layer
#	select View > Viewports > 1 viewport
#	pick first point of your viewport
#	pick second point of your viewport
#	you can have a irregular shaped view port (Polygonal viewport) by selecting “P” before you pick your first point
#double click inside viewport
#	zoom and pan until desired detail/plan is within viewport
#	select (tag) the view port
#	on the bottom right of your screen find the “VP Scale:”
#	pick the triangle next to the “VP Scale:”
#	select the fractional scale you wish to make the view port.  For civil scales (i.e. 1”=10’) follow the next steps
##	select custom.
##	select “Add”
##	enter the name of the scale (i.e. 1”=10’)
##	enter the drawing units (i.e. 120)
##	select “OK”
##	select “OK”
##	follow steps 6 to 9 selecting your new scale
#	select (tag) the view port again and make sure your “Annotation Scale:” matches your “VP Scale:”
#	double click outside viewport
#	resize viewport to fit detail/plan
#	select (tag) the view port right click
#	go to “Display Locked”
#	select yes (this will lock the viewport and you will be able to edit in paperspace without losing scale)
 
Text and dimensions in Model Space
#	switch to model space
#	on the bottom right of your screen find the “Annotation Scale:”
#	pick the triangle next to the “Annotation Scale:”
#	select the fractional scale you wish to make the view port.  For civil scales (i.e. 1”=10’) follow the next steps
##	select custom.
##	select “Add”
##	enter the name of the scale (i.e. 1”=10’)
##	enter the drawing units (i.e. 120)
##	select “OK”
##	select “OK”
##	follow steps 6 to 9 selecting your new scale
#	draw one to one

For multiple scales on one drawing follow the above steps for each scale.

Text and dimensions in Paper Space
	Use text as you would in Model Space remembering that you do not have to change the size of the text to match the scale of the border.  The border is one to one.
	Use dimensions as you would in Model Space.  The dimensions will automatically be correct for the scale of the viewport.  You do not change dimlfac or other dimvars.
	Although dimensions will move if you move the viewport, text and leader text (or multileaders) will not.  You must select text and leader text so that text will move with the viewport.
	If after you dimension to objects in a viewport then change its scale you must reassociate using the _[[dimreassociate]] command or redimension the object.
#A paragraph, phrase, etc., added to a letter that has already been concluded and signed by the writer.  
#Any addition or supplement, as one appended by a writer to a book to supply further information.  

Using the Adobe PostScript driver, you can use DWGs with an array of page layout programs and archive tools such as the Adobe Acrobat Portable Document Format (PDF).

You can use the nonsystem PostScript driver to plot drawings to PostScript printers and PostScript files. Use the PS file format for printers and the EPS file format for files. If you plot to a hardware port, PS output is automatic. If you plot to a file and plan to copy the file to a printer, configure for PS output.

Use the custom Properties dialog box in the Plotter Configuration Editor to customize the output. To display this dialog box, on the Device and Document Settings tab, in the tree view, select Custom Properties. Then under Access Custom Dialog, click the Custom Properties button.

The PostScript driver supports three types of PostScript.

Level 1: Use for most plotters.
Level 1.5: Use for plotters that support color images.
Level 2: If your plotter supports Level 2 PostScript, use to produce smaller files that print more rapidly.

The Tokenize PostScript Code and Compression options in the PostScript Custom Properties dialog box reduce output file size and improve printing speed on devices that support these options. If you have problems printing, try clearing all the options. If you successfully print with no optimizations, you can try turning the options on one at a time to determine the options your printer supports.

Some desktop publishing applications only support Level 1 PostScript. If you have problems using your EPS files, try a lower PostScript level and turn off the optimizations just described.

Including a preview thumbnail in your EPS file makes the file substantially larger but allows quick preview by many applications. The WMF preview is for Windows; the EPSF preview is for Macintosh and other platforms.

Note:  Including both preview images can triple your file size.

American Psychological Association (APA):
postscript. (n.d.). Dictionary.com Unabridged (v 1.1). Retrieved October 07, 2008, from Dictionary.com website: http://dictionary.reference.com/browse/postscript
Chicago Manual Style (CMS):
postscript. Dictionary.com. Dictionary.com Unabridged (v 1.1). Random House, Inc. http://dictionary.reference.com/browse/postscript (accessed: October 07, 2008).
Modern Language Association (MLA):
"postscript." Dictionary.com Unabridged (v 1.1). Random House, Inc. 07 Oct. 2008. Dictionary.com http://dictionary.reference.com/browse/postscript.
You may find you don't want to print your file's ''header'', ''main menu'', the right hand ''sidebar'', or elements within the tiddlers such as its ''subtitle, buttons toolbar, and tags''. If so, well, here is your first chance to foray into the world of ~TiddlyWiki behind-the-scenes code. Here are the instructions:
# Double-click this tiddler to go into edit mode..
# Each line below represents a part of ~TiddlyWiki that you don't want to print. Decide what you want and don't want to print, then insert the appropriate lines of code from below into the StyleSheet tiddler.
<!--{{{-->
@media print {#mainMenu {display: none ! important;}}
@media print {#topMenu {display: none ! important;}}
@media print {#sidebar {display: none ! important;}}
@media print {#messageArea {display: none ! important;}} 
@media print {#toolbar {display: none ! important;}}
@media print {.header {display: none ! important;}}
@media print {.tiddler .subtitle {display: none ! important;}}
@media print {.tiddler .toolbar {display; none ! important; }}
@media print {.tiddler .tagging {display; none ! important; }}
@media print {.tiddler .tagged {display; none ! important; }}
<!--}}}-->
3.  Open the StyleSheet tiddler and doubleclick on it to put it into edit mode. Paste the code you copied into it.

4. Close both tiddlers. Now use your browser's print preview function to see what will be printed. Did you remove all the elements that you wanted to? I hope so.
<<forEachTiddler
    where
        'tiddler.tags.contains("procedure")'
    sortBy 
        'tiddler.title.toUpperCase()'
    
    script
        '
        function getGroupCaption(tiddler) {
            return tiddler.title.substr(0,1).toUpperCase();
        } 

        function getGroupTitle(tiddler, context) {
            if (!context.lastGroup || context.lastGroup != getGroupCaption(tiddler)) {
                context.lastGroup = getGroupCaption(tiddler); 
                return "* {{{"+(context.lastGroup?context.lastGroup:"no tags")+"}}}\n";
            } else 
                return "";
        }
        '
    
    write
         'getGroupTitle(tiddler, context)+"** [[" + tiddler.title+"]]\n"'
>>
Closes QuickCalc
Quickly creates a dimension
Attach leaders to [[MTEXT]] objects that were created using [[QLEADER]].  Does not apply to new multileaders.
Detaches leaders to [[MTEXT]] objects that were created using [[QLEADER]].  Does not apply to new multileaders.
Creates a leader and leader annotation
Starts a new drawing with the option of using a default drawing template file
Saves the current drawing using the file format specified in the Options dialog box
Creates a selection set based on filtering criteria
Controls the display and plotting of text and attribute objects
Opens the QuickCalc calculator
Displays the Customize User Interface dialog box in a collapsed state
Exits the program
Creates a semi-infinite line
Repairs a damaged drawing
Repairs a damaged drawing and xrefs
Draws a rectangular polyline
Restores AutoCAD internal commands overridden by UNDEFINE
Reverses the effects of previous UNDO or U command
Refreshes the display in the current viewport
Refreshes the display in all viewports
Saves back or discards changes made during in place editing of a reference (an xref or a block)
Selects an external reference or block reference for editing
Adds or removes objects from a working set during in place editing of a reference (an xref or a block)
Regenerates the entire drawing from the current viewport
Regenerates the drawing and refreshes all viewports
Controls automatic regeneration of a drawing
Converts an object that encloses an area into a region object
Reinitializes the digitizer, digitizer input/output port, and program parameters file
Changes the names of named objects.  Use for: Blocks, Dimension Styles, Layers, Linetypes, Materials, Table Styles, Text Styles, UCS, Viewports, Views
Creates a photorealistic or realistically shaded image of a three-dimensional wireframe or solid model
Selects a specific region (crop window) in an image for rendering
Provides visual cues for the apparent distance of objects
Provides settings to interactively adjust the global lighting for the most recent rendered output
Specifies render presets, reusable rendering parameters, for rendering an image
Displays the Render Window without invoking a render task
Used to launch RENDERWIN
Resets one or more dynamic block references to the default values of the block definition
Continues an interrupted script
Creates a polyline of sequential arcs to form a cloud shape
Inserts or updates a block containing user name, current time and date, and drawing name
Creates a 3D solid or surface by revolving 2D objects about an axis
Creates a revolved mesh about a selected axis
Used to launch Materials Palate
Revolves objects around a base point
Moves objects about a three-dimensional axis
Displays the Advanced Render Settings palette for access to advanced rendering settings
Closes the Render Settings palette if it is displayed
Repeats a script file
Use on the command line to edit remote text.
Displays text from an outside file.  You can specify style, height, rotation.
Creates a ruled mesh between two curves.  Looks like a quanzite hut
Type the text for 'RegExpSearch'
Saves the drawing under the current file name or a specified name
Saves a copy of the current drawing under a new file name
Saves a rendered image to a file
Enlarges or reduces selected objects proportionally in the X, Y, and Z directions
Controls the list of scales available for layout viewports, page layouts, and plotting
Enlarges or reduces selected text objects without changing their locations
Executes a sequence of commands from a script file
Uses the intersection of a plane and solids to create a region
Creates a section object that acts as a cutting plane through a 3D object
Controls security settings using the Security Options dialog box
Places selected objects in the Previous selection set
Changes property and ByBlock settings for selected objects to ByLayer
Specifies the default type of i-drop content for the current Autodesk application
Obsolete.  Replaced by [[MATERIALMAP]] command.
Lists or changes the values of system variables
Starts the VSCURRENT command
Inserts a shape from a shape file that has been loaded using LOAD
Opens the Sheet Set Manager
Closes the Sheet Set Manager
Accesses operating system commands
Obsolete.  Replaced by the [[LIST]] command.
Displays information about the digital signature attached to a file
Creates a series of freehand line segments
Slices a solid with a plane or surface
Reads a listing of a slide library
Restricts cursor movement to specified intervals
Generates profiles and sections in viewports created with SOLVIEW
Creates solid-filled triangles and quadrilaterals
Edits faces and edges of 3D solid objects
Creates profile images of three-dimensional solids in paper space
Creates layout viewports using orthographic projection to lay out multi- and sectional view drawings of 3D solids and body objects
Calculates equivalent model space and paper space lengths in a layout
Checks spelling in a drawing
Creates a 3D solid sphere
Fits a smooth curve to a sequence of points within a specified tolerance
Edits a spline or spline-fit polyline
Creates a spotlight
Manages the association of standards files with drawings.
Displays drawing statistics, modes, and extents
Stores a solid in an ASCII or binary file
Moves or stretches the objects
Creates, modifies, or sets named text styles
Displays the Plot Style Manager
Combines selected regions or solids by subtraction
Opens the Sun Properties window and sets the properties of the sun
Closes the Sun Properties window
Creates a 3D solid or surface by sweeping a 2D curve along a path
Arranges windows and icons when the application window is shared with external applications
<<search>><<closeAll>><<permaview>><<newTiddler>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
The ~AutoCad Users Tool
~CADTiddlyWiki
*[[Format text]]
*[[Format links and images]]
*[[Format lists]]
*[[Format tables]]
*[[Format blockquotes]]
*[[Miscellaneous formats]]
*[[Format ASCII symbols, foreign symbols, math symbols]]
http://www.portlandbolt.com/steel-plate-weight.html 
/*{{{*/
/* horizontal main menu */

#displayArea { margin: 1em 15.5em 0em 1em; } /* use the full horizontal width */

#topMenu { background: [[ColorPalette::PrimaryMid]]; color: [[ColorPalette::PrimaryPale]]; padding: 0.2em 0.2em 0.2em 0.5em; border-bottom: 2px solid #000000; }

#topMenu br { display: none; }

#topMenu .button, #topMenu .tiddlyLink, #topMenu a { margin-left: 0.25em; margin-right: 0.25em; padding-left: 0.5em; padding-right: 0.5em; color: [[ColorPalette::PrimaryPale]]; font-size: 1.15em; }

#topMenu .button:hover, #topMenu .tiddlyLink:hover { background: [[ColorPalette::PrimaryDark]]; }

 .firstletter{ float:left; width:0.75em; font-size:400%; font-family:times,arial; line-height:60%; }

.viewer .FOO table tr.oddRow { background-color: #bbbbbb; }
.viewer .FOO table tr.evenRow { background-color: #fff; } 


/*Invisible table*/

.viewer .invisibletable table { 
border-color: white;
 }

.viewer .invisibletable table td { 
font-size: 1em;
font-family: Verdana;
border-color: white;
padding: 10px 20px 10px 0px;
text-align: left;
vertical-align: top;
} 

.viewer .invisibletable table th { 
color: #005566;
background-color: white;
border-color: white;
font-family: Verdana;
font-size: 1.2em;
font-weight: bold;
padding: 10px 20px 10px 0px;
text-align: left;
vertical-align: top;
} 

/* GIFFMEX TWEAKS TO STYLESHEETPRINT (so that nothing but tiddler title and text are printed) */


@media print {#mainMenu {display: none ! important;}}
@media print {#topMenu {display: none ! important;}}
@media print {#sidebar {display: none ! important;}}
@media print {#messageArea {display: none ! important;}} 
@media print {#toolbar {display: none ! important;}}
@media print {.header {display: none ! important;}}
@media print {.tiddler .subtitle {display: none ! important;}}
@media print {.tiddler .toolbar {display; none ! important; }}
@media print {.tiddler .tagging {display; none ! important; }}
@media print {.tiddler .tagged {display; none ! important; }}
@media print {#displayArea {margin: 1em 1em 0em 1em;}}
@media print {.pageBreak {page-break-before: always;}}

a.button{
 border: 0;

} 

/*Color changes*/


#sidebarOptions input {
	border: 1px solid [[ColorPalette::TertiaryPale]];
}

#sidebarOptions .sliderPanel {
	background: [[ColorPalette::TertiaryPale]];
}

#sidebarOptions .sliderPanel a {
	border: none;
	color: [[ColorPalette::PrimaryMid]];
}

#sidebarOptions .sliderPanel a:hover {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::TertiaryPale]];
}

#sidebarOptions .sliderPanel a:active {
	color: [[ColorPalette::PrimaryMid]];
	background: [[ColorPalette::TertiaryPale]];
}

/*Makes sliders bold*/

.tuduSlider .button{font-weight: bold;
}

/* (2) Adjusts the color for all headlines so they are both readable and match my color schemes. */

h1,h2,h3,h4,h5 {
 color: #000;
 background: [[ColorPalette::TertiaryPale]];
}

.title {
color: [[ColorPalette::PrimaryMid]];
}

/* (2) Makes text verdana. */

body {
 font-family: verdana;
font-size: 9pt;
}

/* (4) Allows for Greek - one way */

   .greek {
      font-family: Palatino Linotype;
      font-style: normal;
      font-size: 150%;
   }

/* (5) Shortens the height of the Header */

.headerShadow {
 padding: 1.5em 0em 1em 1em;
}

.headerForeground {
 padding: 2em 0em 1em 1em;
}

/* (8) Makes ordered and unordered lists double-spaced between items but single-spaced within items. */

.viewer li {
   padding-top: 0.5em;
   padding-bottom: 0.5em;

} 

/*Makes block quotes line-less*/

.viewer blockquote {
border-left: 0px;
margin-top:0em;
margin-bottom:0em; 
}

/* Cosmetic fixes that probably should be included in a future TW... */

.viewer .listTitle { list-style-type:none; margin-left:-2em; }
.editorFooter .button { padding-top: 0px; padding-bottom:0px; }

Important stuff. See TagglyTaggingStyles and HorizontalMainMenuStyles

[[Styles TagglyTagging]]
[[Styles HorizontalMainMenu]]

Just colours, fonts, tweaks etc. See MessageTopRight and SideBarWhiteAndGrey

body { 
  background: #eee; }
.headerForeground a { 
  color: #6fc;}
.headerShadow { 
  left: 2px; 
  top: 2px; }
.siteSubtitle { 
  padding-left: 1.5em; }

.shadow .title {
  color: #999; }

.viewer pre { 
  background-color: #f8f8ff; 
  border-color: #ddf }

.tiddler {
  border-top:    1px solid #ccc; 
  border-left:   1px solid #ccc; 
  border-bottom: 3px solid #ccc; 
  border-right:  3px solid #ccc; 
  margin: 0.5em; 
  background:#fff; 
  padding: 0.5em; 
  -moz-border-radius: 1em; }

#messageArea { 
  background-color: #eee; 
  border-color: #8ab; 
  border-width: 4px; 
  border-style: dotted; 
  font-size: 90%; 
  padding: 0.5em; 
  -moz-border-radius: 1em; }

#messageArea .button { text-decoration:none; font-weight:bold; background:transparent; border:0px; }

#messageArea .button:hover {background: #acd; }

.editorFooter .button { 
  padding-top: 0px; 
  padding-bottom:0px; 
  background: #fff;
  color: #000; 
  border-top:    1px solid #ccc; 
  border-left:   1px solid #ccc; 
  border-bottom: 2px solid #ccc; 
  border-right:  2px solid #ccc; 
  margin-left: 3px;
  padding-top: 1px;
  padding-bottom: 1px;
  padding-left: 5px;
  padding-right: 5px; }
  
.editorFooter .button:hover { 
  border-top:    2px solid #ccc; 
  border-left:   2px solid #ccc; 
  border-bottom: 1px solid #ccc; 
  border-right:  1px solid #ccc; 
  margin-left: 3px;
  padding-top: 1px;
  padding-bottom: 1px;
  padding-left: 5px;
  padding-right: 5px; }

.tagged {
  padding: 0.5em;
  background-color: #eee;
  border-top:    1px solid #ccc; 
  border-left:   1px solid #ccc; 
  border-bottom: 3px solid #ccc; 
  border-right:  3px solid #ccc; 
  -moz-border-radius: 1em; }

.selected .tagged {
  padding: 0.5em;
  background-color: #eee;
  border-top:    1px solid #ccc; 
  border-left:   1px solid #ccc; 
  border-bottom: 3px solid #ccc; 
  border-right:  3px solid #ccc; 
  -moz-border-radius: 1em; }

Clint's fix for weird IE behaviour
body {position:static;}
.tagClear{margin-top:1em;clear:both;}


/*}}}*/

/*{{{*/

/* text alignments */
.left
	{ display:block;text-align:left; }
.center
	{ display:block;text-align:center; }
.right	
	{ display:block;text-align:right; }
.justify
	{ display:block;text-align:justify; }
.indent
	{ margin:0;padding:0;border:0;margin-left:2em; }
.floatleft
	{ float:left; }
.floatright
	{ float:right; }
.clear
	{ clear:both; }
.wrap
	{ white-space:normal; }
.nowrap
	{ white-space:nowrap; }
.hidden
	{ display:none; }
.span
	{ display:span; }
.block
	{ display:blockquote; }

/* font sizes */
.big
	{ font-size:14pt;line-height:120% }
.medium
	{ font-size:12pt;line-height:120% }
.normal
	{ font-size:9pt;line-height:120% }
.small
	{ font-size:8pt;line-height:120% }
.fine
	{ font-size:7pt;line-height:120% }
.tiny
	{ font-size:6pt;line-height:120% }
.larger
	{ font-size:120%; }
.smaller
	{ font-size:80%; }

/* font styles */
.bold
	{ font-weight:bold; }
.italics
	{ font-style:italics; }
.underline
	{ text-decoration:underline; }

/* multi-column tiddler content (not supported in Internet Explorer) */
.twocolumns
	{ display:block; -moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%;}
.threecolumns
	{ display:block; -moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%}
.fourcolumns
	{ display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%}

/* borderless tables */
.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; }

/* thumbnail images (fixed-sized scaled images) */
.thumbnail img { height:5em !important; }

/* grouped content */
.outline
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; }
.menubox
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; background:#ccccff; color:#000; }
.menubox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; background:#ffe; color:#000; }
.groupbox a, .groupbox .button, .groupbox .tiddlyLinkExisting, .groupbox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox code
	{ color:#333 !important; }
.borderleft
	{ margin:0;padding:0;border:0;margin-left:1em; border-left:1px dotted; padding-left:.5em; }
.borderright
	{ margin:0;padding:0;border:0;margin-right:1em; border-right:1px dotted; padding-right:.5em; }
.borderbottom
	{ margin:0;padding:1px 0;border:0;border-bottom:1px dotted; margin-bottom:1px; padding-bottom:1px; }
.bordertop
	{ margin:0;padding:0;border:0;border-top:1px dotted; margin-top:1px; padding-top:1px; }

/* compact form */
.smallform
	{ white-space:nowrap; }
.smallform input, .smallform textarea, .smallform button, .smallform checkbox, .smallform radio, .smallform select
	{ font-size:8pt; }

/* colors */
.green { color:#6f6 !important }
.red { color:#f66 !important }
.blue { color:#99f !important }

/*}}}*/
In addition to the prefixes and suffixes specified for primary and alternate units, you can supply your own text as you create a dimension. Because the prefix, suffix, and user-supplied text form a single text string, you can represent tolerance stacks and apply changes to font, text size, and other characteristics using the text editor. To add user text above and below the dimension line, use the separator symbol \X. Text that precedes this symbol is aligned with and above the dimension line. Text that follows the \X symbol is aligned with and below the dimension line. The space between the dimension line and the text is determined by the value you enter under Gap in the Annotation dialog box. Example: User Text in Dimensions In this example, the primary dimension measurement is 5.08, and the alternate dimension measurement is 2.00. The primary units have the suffix H7/h6, and the alternate units have the suffix inches. At the text prompt, while creating the dimension, you enter the following format string: <> H7/h6\XSee Note 26\P[ ] The angle brackets represent the primary units, and the square brackets represent the alternate units. The \X separates text above the dimension line from text below the dimension line. The \P is a paragraph break.
You can enter the following special characters and symbols in [[MTEXT]] by entering a control code or a Unicode string. Or in the In Place Text Editor, click Symbol on the expanded toolbar. 

Note: Symbols are not supported in vertical text.

Unicode strings and control codes
 
|Control Codes| Unicode Strings|Result|
|%%d| \U+00B0| Degree symbol (°)|
|%%p| \U+00B1| Tolerance symbol (±)|
|%%c| \U+2205| Diameter symbol ()|

To insert the following text symbols, click Symbol on the expanded Text Formatting toolbar or enter the appropriate Unicode string:

Text symbols and Unicode strings
 
|Name| Unicode String|
|Almost equal| \U+2248|
|Angle| \U+2220|
|Boundary line| \U+E100|
|Centerline| \U+2104|
|Delta| \U+0394|
|Electrical phase| \U+0278|
|Flow line| \U+E101|
|Identity| \U+2261|
|Initial length| \U+E200|
|Monument line| \U+E102|
|Not equal| \U+2260|
|Ohm| \U+2126|
|Omega| \U+03A9|
|Plate/property line| \U+214A|
|Subscript 2| \U+2082|
|Squared| \U+00B2|
|Cubed| \U+00B3|
 

These text symbols are available in the following True Type (TTF) and SHX fonts:

Simplex
Roman S
Isocp
Isocp2
Isocp3
Isoct
Isoct2
Isoct3
Isocpeur (TTF only)
Isocpeur italic (TTF only)
Isocteur (TTF only)
Isocteur italic (TTF only)
Creates an empty table object in a drawing
Edits text in a table cell
Exports data from a table object in CSV file format
Defines a new table style
Calibrates, configures, and turns on and off an attached digitizing tablet
Creates a tabulated mesh from a path curve and a direction vector
Creates a target point light
Controls how drawings are displayed on the Windows taskbar
Offers ways to change text: uppercase, lowercase, sentence case, title case, toggle case.
Encloses selected Text or Mtext in a circle, slot, or rectangle.
Numbers lines of text by adding a prefix, suffix, or by overwriting the text.
Creates a single-line text object
Type: Integer 
Saved in: Registry 
Initial value: 1 

Controls the filling of TrueType fonts while plotting and rendering.

|0|Displays text as outlines|
|1|Displays text as filled images|
 
See [[TrueType]]
Stretches or shrinks Text (not Mtext) to fit between two points
Creates a wipeout behind the text with a little extra space behind the text.  Makes text on top of a hatch more legible.
Opens the text window
Brings text and dimensions in front of all other objects in the drawing
Removes a text mask
Creates a 3D solid by thickening a surface
Saves selected objects to a file in TIFF file format
Displays the date and time statistics of a drawing
Inserts a block in a table cell
Creates geometric tolerances
Displays, hides, and customizes toolbars
Opens the Tool Palettes window
Closes the Tool Palettes window
Rotates Mtext to a specified angle
Creates a 3D donut-shaped solid
Displays a specified tool palette or palette group
Creates solid lines
Controls whether background pixels in a bitonal image are transparent or opaque

To change the color and transparency of a bitonal image

#Select the image to modify.
#Right-click in the drawing area. Click Properties.
#In the Properties palette, to change image color, click Color.
#In the Color drop-down list, select a color or click Select Color to open the Select Color dialog box. In the Select Color dialog box, specify a color. Click OK.
#To change the background of the selected image to transparent, or to change the background image from transparent to opaque, select Yes or No in the Transparency list.

The following is a problem in which changeing the transparencey was the solution:

An image on the Model tab that seems to be obscuring the dimensions that have been added on the Layout tab so they are not visible and do not print. Changing the draw order does not seem to help, presumably because the image and the dimensions are on different tabs.  The locations of the dimensions can be seen by selecting most of the drawing with a crossing window on the Layout tab.
Controls the display of icons and notifications in the status bar tray
Displays information about the drawing's current spatial index
Trims objects at a cutting edge defined by other objects
Converts Text objects into Mtext
Transforms Text or Mtext into geometrical shapes
/***
|''Name:''|TagsTreePlugin|
|''Description:''|Displays tags hierachy as a tree of tagged tiddlers.<br>Can be used to create dynamic outline navigation.|
|''Version:''|1.0.1|
|''Date:''|Jan 04,2008|
|''Source:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal Collin|
|''License:''|[[BSD open source license|License]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 2.0; InternetExplorer 6.0|
!Demo
On the plugin [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] :
*Try to tag some <<newTiddler>> with a tag displayed in the menu and edit MainMenu.
*Look at some tags like [[Plugins]] or [[menu]].
!Installation
#import the plugin,
#save and reload,
#optionally, edit TagsTreeStyleSheet.
! Usage
{{{<<tagsTree>>}}} macro accepts the following //optional// parameters.
|!#|!parameter|!description|!by default|
|1|{{{root}}}|Uses {{{root}}} tag as tree root|- In a //tiddler// content or template : uses the tiddler as root tag.<br>- In the //page// content or template (by ex MainMenu) : displays all untagged tags.|
|2|{{{excludeTag}}}|Excludes all such tagged tiddlers from the tree|Uses default excludeLists tag|
|3|{{{level}}}|Expands nodes until level {{{level}}}.<br>Value {{{0}}} hides expand/collapse buttons.|Nodes are collapsed on first level|
|4|{{{depth}}}|Hierachy depth|6 levels depth (H1 to H6 header styles)|
|5|{{{sortField}}}|Alternate sort field. By example : "index".|Sorts tags and tiddlers alphabetically (on their title)|
|6|{{{labelField}}}|Alertnate label field. By example : "label".|Displays tiddler's title|

!Useful addons
*[[FieldsEditorPlugin]] : //create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>.
*[[TaggerPlugin]] : Provides a drop down listing current tiddler tags, and allowing toggling of tags.
!Advanced Users
You can change the global defaults for TagsTreePlugin, like default {{{level}}} value or level styles, by editing or overriding the first config.macros.tagsTree attributes below.
!Code
***/
//{{{
config.macros.tagsTree = {
	expand : "[+]",
	collapse : "[-]",
	depth : 6,
	level : 1,
	sortField : "",	
	labelField : "",
	styles : ["h3","h3","h3","h3","h3","h3"],
	trees : {}
}

config.macros.tagsTree.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	var root = params[0] ? params[0] : (tiddler ? tiddler.title : null);
	var excludeTag = params[1] ? params[1] : "excludeTagsTree";
	var level = params[2] ? params[2] : config.macros.tagsTree.level;
	var depth = params[3] ? params[3] : config.macros.tagsTree.depth;
	var sortField = params[4] ? params[4] : config.macros.tagsTree.sortField;
	var labelField = params[5] ? params[5] : config.macros.tagsTree.labelField;
	var showButtons = (level>0);
	var id = config.macros.tagsTree.getId(place);
	if (config.macros.tagsTree.trees[id]==undefined) config.macros.tagsTree.trees[id]={};
	config.macros.tagsTree.createSubTree(place,id,root,excludeTag,[],level>0 ? level : 1,depth, sortField, labelField,showButtons);
}

config.macros.tagsTree.createSubTree = function(place, id, root, excludeTag, ancestors, level, depth, sortField, labelField,showButtons){
	var childNodes = root ? this.getChildNodes(root, ancestors) : this.getRootTags(excludeTag);
	var isOpen = (level>0) || (!showButtons);
	if (root && this.trees[id][root]!=undefined) isOpen = this.trees[id][root]; 
	if (root && ancestors.length) {
		var t = store.getTiddler(root);
		if (childNodes.length && depth>0) {
			var wrapper = createTiddlyElement(place , this.styles[Math.min(Math.max(ancestors.length,1),6)-1],null,"branch");
			if (showButtons) {
				b = createTiddlyButton(wrapper, isOpen ? config.macros.tagsTree.collapse : config.macros.tagsTree.expand, null, config.macros.tagsTree.onClick);
				b.setAttribute("treeId",id);
				b.setAttribute("tiddler",root);					
			}
			createTiddlyText(createTiddlyLink(wrapper, root),t&&labelField ? t.fields[labelField] ? t.fields[labelField] : root : root);
		}
		else 
			createTiddlyText(createTiddlyLink(place, root,false,"leaf"),t&&labelField ? t.fields[labelField] ? t.fields[labelField] : root : root);
	}
	if (childNodes.length && depth) {
		var d = createTiddlyElement(place,"div",null,"subtree");
		d.style.display= isOpen ? "block" : "none";
		if (sortField)
			childNodes.sort(function(a, b){
				var fa=a.fields[sortField];
				var fb=b.fields[sortField];
				return (fa==undefined && fb==undefined) ? a.title < b.title ? -1 : a.title > b.title ? 1 : 0 : (fa==undefined && fb!=undefined) ? 1 :(fa!=undefined && fb==undefined) ? -1 : fa < fb ? -1 : fa > fb ? 1 : 0;
			})
		for (var cpt=0; cpt<childNodes.length; cpt++)
			this.createSubTree(d, id, childNodes[cpt].title, excludeTag, ancestors.concat(root), level-1, depth-1, sortField, labelField, showButtons);	
	}	
}

config.macros.tagsTree.onClick = function(e){
	var id = this.getAttribute("treeId");
	var tiddler = this.getAttribute("tiddler");	
	var n = this.parentNode.nextSibling;
	var isOpen = n.style.display != "none";
	if(config.options.chkAnimate && anim && typeof Slider == "function")
		anim.startAnimating(new Slider(n,!isOpen,null,"none"));
	else
		n.style.display = isOpen ? "none" : "block";
	this.firstChild.nodeValue = isOpen ? config.macros.tagsTree.expand : config.macros.tagsTree.collapse;
	config.macros.tagsTree.trees[id][tiddler]=!isOpen;
	return false;
}

config.macros.tagsTree.getChildNodes = function(root ,ancestors){
	var childs = store.getTaggedTiddlers(root);
	var result = new Array();
	for (var cpt=0; cpt<childs.length; cpt++)
		if (childs[cpt].title!=root && ancestors.indexOf(childs[cpt].title)==-1) result.push(childs[cpt]);
	return result;
}

config.macros.tagsTree.getRootTags = function(excludeTag){
	var tags = store.getTags(excludeTag);
	tags.sort(function(a,b) {return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : (a[0].toLowerCase() == b[0].toLowerCase() ? 0 : +1);});
	var result = new Array();
	for (var cpt=0; cpt<tags.length; cpt++) {
		var t = store.getTiddler(tags[cpt][0]);
		if (!t || t.tags.length==0) result.push(t ? t : {title:tags[cpt][0],fields:{}});
	}
	return result;
}

config.macros.tagsTree.getId = function(element){
	while (!element.id && element.parentNode) element=element.parentNode;
	return element.id ? element.id : "<html>";
}

config.shadowTiddlers.TagsTreeStyleSheet = "/*{{{*/\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".leaf, .subtree {display:block; margin-left : 0.5em}\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".subtree {margin-bottom:0.1em}\n";
config.shadowTiddlers.TagsTreeStyleSheet +="#mainMenu {text-align:left}\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".branch .button {border:1px solid #DDD; color:#AAA;font-size:9px;padding:0 2px;margin-right:0.3em;vertical-align:middle;text-align:center;}\n";
config.shadowTiddlers.TagsTreeStyleSheet +="/*}}}*/";

store.addNotification("TagsTreeStyleSheet", refreshStyles); 

config.shadowTiddlers.MainMenu="<<tagsTree>>"

config.shadowTiddlers.PageTemplate = config.shadowTiddlers.PageTemplate.replace(/id='mainMenu' refresh='content' /,"id='mainMenu' refresh='content' force='true' ")

//}}}
|[[Gerald (Jerry) Goodlander]]|!!Second|third|
|fourht|fifth||

# first
# second
# third
## third first
## thirs second
# Fourth
# fifth

!!!!! Format
!!! Format
!! format
! format

[[optimus|file://C:/ASB/optimus-prime-pjlighthouse-autobot-transformer.jpg]]


[img[file://C:/ASB/optimus-prime-pjlighthouse-autobot-transformer.jpg]]
 
**!asdf**! gergoo
/***
|Name|TiddlyLockPlugin|
|Source|http://www.minormania.com/tiddlylock/tiddlylock.html|
|Version|1.0.4|
|TiddlyWiki Core Version|2.2.4|
|Author|Richard Hobbis|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|Type|plugin|
|Overrides|config.macros.newTiddler.onClickNewTiddler()<<br>>config.commands.cancelTiddler.handler()<<br>>config.commands.deleteTiddler.handler<<br>>config.commands.editTiddler.handler()<<br>>config.commands.saveTiddler.handler()<<br>>saveChanges()<<br>>checkUnsavedChanges()|
|Description|Automatically locks and unlocks the TiddlyWiki as required, allowing multiple users to edit the TiddlyWiki without fear of overwriting other users' changes.|
!!!Usage
<<<
Simply import TiddlyLockPlugin into your TiddlyWiki!
<<<
!!!Installation
<<<
Import (or copy/paste) ''this tiddler'' into your TiddlyWiki and make sure it's tagged with <<tag systemConfig>>. Reload your TiddlyWiki to enable TiddlyLock.
<<<
!!!Configuration
<<<
None required!
<<<
!!!Revision History
<<<
''2007.06.22 [1.0.4]'' Added locking on 'new tiddler' which also traps 'new journal'. Tweaked messages.
''2007.06.20 [1.0.3]'' Fixed an issue that occurred when a user navigated away from the TiddlyWiki without saving outstanding changes.
''2007.05.10 [1.0.2]'' Implemented a timestamp to track the last update time. This fixes the multi-browser edit issue and also removes the need for a password.
''2007.05.08 [1.0.1]'' Function overrides are now done using apply() ensuring clean upgrades (thanks Martin!)
''2007.05.01 [1.0.0]'' Initial Release
<<<
!!!Known Issues
<<<
*Monkey Pirate TiddlyWiki (MPTW) adds a ''disable'' button to the toolbar for systemConfig tiddlers. This button is available even when the TW is marked as readOnly and therefore it's possible for two users to disable/enable plugins at the same time. In this case, whoever saves the TW last will 'win' and their changes will be saved. Note that this is only an issue if there are no other unsaved changes in both browsers - TiddlyLock still handles all other changes.
<<<
!!!Credits
<<<
This feature was developed by Richard Hobbis (rhobbis [at] hotmail [dot] com).
<<<
!!!Code
***/

//{{{
// Convert a date to UTC YYYYMMDDHHMMSSMMM string format
// This is the same as the builtin function convertToYYYYMMDDHHMMSSMMM() but
// without the '.' in the middle - this allows simple date comparisons
Date.prototype.TLConvertToYYYYMMDDHHMMSSMMM = function()
{
  return(String.zeroPad(this.getUTCFullYear(),4)
    + String.zeroPad(this.getUTCMonth()+1,2)
    + String.zeroPad(this.getUTCDate(),2)
    + String.zeroPad(this.getUTCHours(),2)
    + String.zeroPad(this.getUTCMinutes(),2)
    + String.zeroPad(this.getUTCSeconds(),2)
    + String.zeroPad(this.getUTCMilliseconds(),4));
}

// namespace for TiddlyLock
TiddlyLock = {};

// Load/Last Update timestamp
TiddlyLock.TimeStamp = new Date().TLConvertToYYYYMMDDHHMMSSMMM();

// Lockfile
TiddlyLock.LockPath = '';
TiddlyLock.OldLockData = '';
TiddlyLock.LockData = '';

// define messages
TiddlyLock.Msg = {
  Locked: 'File locked',
  Unlocked: 'File unlocked',
  LockFailed: 'Failed to lock file',
  UnlockFailed: 'Failed to unlock file',
  ReadOnly: 'Now in Read-Only mode.',
  Changed: 'This file has been changed by someone else.',
  Reload: 'Reload this file before editing.'};

// create/update the lock file
function TLSave(timeStamp,lockedBy)
{
  var lockedText='';
  if (lockedBy!='')
  {
    lockedText=timeStamp+'##'+lockedBy;
  }
  else lockedText=timeStamp+'##';
    var lockSave=saveFile(TiddlyLock.LockPath,lockedText);
  TiddlyLock.TimeStamp = timeStamp;
  return false;
}


// Create/update the lock file to prevent other users from editing the TW
function TLLock()
{
  clearMessage();
  lockSave = TLSave(new Date().TLConvertToYYYYMMDDHHMMSSMMM(),config.options.txtUserName);
  displayMessage(TiddlyLock.Msg.Locked,'');
  return false;
}


// Clear the lock file if necessary, but only if I have it locked, setting the
// timestamp in the lockfile to the specified value
function TLUnlock(timeStamp)
{
  if ((store && store.isDirty && !store.isDirty())
    && (story && story.areAnyDirty && !story.areAnyDirty())
    && TLIsLocked()
    && TLIsLockedByMe())
  {
    lockSave=TLSave(timeStamp,'','');
    displayMessage(TiddlyLock.Msg.Unlocked,'');
    TiddlyLock.OldLockData = TiddlyLock.LockData;
  }
  return false;
}

// Get the contents of the lock file, if it exists
function TLLockPath()
{
  var lockPath,p;
  var originalPath=document.location.toString();
  var localPath=getLocalPath(originalPath);
  if((p=localPath.lastIndexOf('.')) != -1)
    lockPath=localPath.substr(0,p) + '.lck';
  else lockPath=localPath + '.lck';
    return lockPath;
}


// Get the contents of the lock file, if it exists
function TLLockData()
{
  TiddlyLock.LockPath = TLLockPath();
  return loadFile(TiddlyLock.LockPath);
}

// Get the contents of the lock file, if it exists
function TLIsLocked()
{
  TiddlyLock.LockData = TLLockData();
  if (TiddlyLock.LockData
      && ( TLLockedBy(TiddlyLock.LockData)!='' // someone has it locked
         || TiddlyLock.TimeStamp < TLLockedTimeStamp(TiddlyLock.LockData) // changed by someone else but not currently locked
         )
     )
    return true;
  else
    return false;
}


// check if locked by me
function TLIsLockedByMe()
{
  if(TiddlyLock.LockData == TiddlyLock.TimeStamp+'##' + config.options.txtUserName)
    return true;
  else
    return false;
}


// returns just the timestamp portion of the supplied lock file contents
function TLLockedTimeStamp(lockData)
{
  if(lockData)
    return lockData.split('##')[0];
  else
    return '';
}


// returns just the username portion of the supplied lock file contents
function TLLockedBy(lockData)
{
  if(lockData)
    return lockData.split('##')[1];
  else
    return '';
}

// display a message if locked or changed
function TLChangesAllowed()
{
  if(TLIsLocked() && !TLIsLockedByMe())
  {
//    if(!readOnly)
    {
      readOnly=true;
      if(TLLockedBy(TiddlyLock.LockData))
      {
        displayMessage(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData));
        alert(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData)+'. '+TiddlyLock.Msg.ReadOnly);
      }
      else
      {
        displayMessage(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
        alert(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
      }
    }
    return false;
  }
  else
    return true;
}


//*********************************************
// OVERRIDE STANDARD FUNCTIONS
//*********************************************

//
// OVERRIDE onClickNewTiddler()
//
TiddlyLock.onClickNewTiddler = config.macros.newTiddler.onClickNewTiddler;
config.macros.newTiddler.onClickNewTiddler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.onClickNewTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE checkUnsavedChanges()
//
TiddlyLock.checkUnsavedChanges = checkUnsavedChanges;
checkUnsavedChanges = function(event,src,title)
{
  var ret = TiddlyLock.checkUnsavedChanges.apply(this,arguments);
  if(TLIsLocked() && TLIsLockedByMe())
    lockSave=TLSave(TLLockedTimeStamp(TiddlyLock.OldLockData),'','');
  return ret;
}


//
// OVERRIDE cancelTiddler()
//
TiddlyLock.cancelTiddler = config.commands.cancelTiddler.handler;
config.commands.cancelTiddler.handler = function(event,src,title)
{
  var ret = TiddlyLock.cancelTiddler.apply(this,arguments);
  TLUnlock(TLLockedTimeStamp(TiddlyLock.OldLockData));
  return ret;
}

//
// OVERRIDE deleteTiddler()
//
TiddlyLock.deleteTiddler = config.commands.deleteTiddler.handler;
config.commands.deleteTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.deleteTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE editTiddler()
//
TiddlyLock.editTiddler = config.commands.editTiddler.handler;
config.commands.editTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
  }
  var ret = TiddlyLock.editTiddler.apply(this,arguments);
  return ret;
}

//
// OVERRIDE saveChanges()
//
TiddlyLock.saveChanges = saveChanges;
saveChanges = function(onlyIfDirty)
{
  if(TLChangesAllowed())
  {
    var ret = TiddlyLock.saveChanges.apply(this,arguments);
    TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
    return ret;
  }
  else
    return false;
}

//
// OVERRIDE saveTiddler()
//
TiddlyLock.saveTiddler= config.commands.saveTiddler.handler;
config.commands.saveTiddler.handler=function(event,src,title)
{
  var ret = TiddlyLock.saveTiddler.apply(this,arguments);
  TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
  return ret;
}

//}}}
TiddlyWiki is an ingenious free application that is ideal for taking and organizing notes, organizing to-do lists, and even managing small personal databases. It is basically an html file (a webpage) stuffed with special code that allows you to create small snippets of information called Tiddlers. These tiddlers can be linked by tags and hyperlinks, and tucked away. When you need them again, you can use a search window, your own personalized tables of contents, or any number of handy tiddler indexes to find them quickly. Think of TiddlyWiki as an easily-searchable catalog of 3x5 cards and post-it notes all linked together in one file.

You don't need to buy a program to use TiddlyWiki. It is an html file that you can read and edit using nothing more than your Internet browser. And you don't need to be online to use TiddlyWiki. You can quickly download any TiddlyWiki to your computer to use offline. You can then take it with you wherever you go, on a USB memory stick (called a “Wiki on a Stick”) and edit it on any computer that has a relatively recent web browser, preferably Mozilla’s free browser Firefox. 

TiddlyWikis were invented by Jeremy Ruston. His site, with the original documentation and other information, can be found at http://www.tiddlywiki.com/, or go to http://www.giffmex.org/twfortherestofus.html.
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  "#sidebar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 1em;}\n"+"",
         styleShow : " ",
         arrow1: "«",
         arrow2: "»"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
A computer font in which each character to be displayed or printed is represented as a series of curves and lines. Outline fonts are smoothed and scaled more easily than bit-mapped fonts. 

First developed by Apple Computer, and later embraced by Microsoft, as a competitor to Adobe Systems, Inc.'s PostScript which is still more popular.

Several factors affect the display of TrueType fonts in a drawing.

TrueType fonts always appear filled in your drawing; however, when you plot, the [[TEXTFILL]] system variable controls whether the fonts are filled. By default [[TEXTFILL]] is set to 1 to plot the filled-in fonts. 

To assign a TrueType font to a text style 

#Click Format menu - ->  Text Style....At the Command prompt, enter style. 
#In the Text Style dialog box under Style Name, click New.
#In the New Text Style dialog box, enter a style name for the new text style. Click OK.
#Under Font Name, select a TrueType font from the list. TrueType fonts display a TrueType icon in front of their names.
#To see the effects on different characters, enter a text string in the sample text box that is located to the left of the Preview button. Click Preview. 
#To update text of the current style in the drawing, click Apply. 
#Click Close.

The In Place Text Editor can display only fonts that are recognized by Microsoft Windows. Because SHX fonts are not recognized by Windows, a TrueType equivalent is supplied in the In Place Text Editor when you select an SHX or any other non-TrueType font for editing. 


American Psychological Association (APA):
TrueType. (n.d.). The Free On-line Dictionary of Computing. Retrieved October 07, 2008, from Dictionary.com website: http://dictionary.reference.com/browse/TrueType
Chicago Manual Style (CMS):
TrueType. Dictionary.com. The Free On-line Dictionary of Computing. Denis Howe. http://dictionary.reference.com/browse/TrueType (accessed: October 07, 2008).
Modern Language Association (MLA):
"TrueType." The Free On-line Dictionary of Computing. Denis Howe. 07 Oct. 2008. Dictionary.com http://dictionary.reference.com/browse/TrueType.
Reverses the most recent operation
Manages user coordinate systems
Controls the visibility and placement of the UCS icon
Manages defined user coordinate systems
Allows an application-defined command to override an internal command
Reverses the effect of commands
Combines selected regions or solids by addition
Controls coordinate and angle display formats and precision
Manually updates fields in selected objects in the drawing
Manually updates thumbnail previews for sheets, sheet views, and model space views in the Sheet Set Manager
Displays the Visual Basic Editor
Loads a global VBA project into the current work session
Loads, unloads, saves, creates, embeds, and extracts VBA projects
Runs a VBA macro
Executes a VBA statement on the AutoCAD command line
Unloads a global VBA project
Saves and restores named views, camera views, layout views, and preset views
Displays information about completed plot and publish jobs
Sets the resolution for objects in the current viewport
Creates and modifies visual styles and applies a visual style to a viewport
Closes the Visual Styles Manager
Displays the Visual LISP Interactive Development Environment (IDE)
Displays the Visual LISP interactive development environment (IDE)
Clips viewport objects and reshapes the viewport border
Sets layer visibility within viewports
Expands the current layout viewport for editing
Restores the current layout viewport
Sets the viewing direction for a three-dimensional visualization of the drawing
Creates multiple viewports in model space or paper space
Displays the scale from paper space to model space for the selected viewport
Changes the pan and zoom of a second viewport to match that of the first viewport that you select so the view of the objects is consistent from viewport to viewport
Sets the visual style in the current viewport
Displays an image slide file in the current viewport
Saves a visual style
Displays a change in view as a smooth transition
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler references > fields syncing permalink jump'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
Specifies walk and fly settings
Writes objects or a block to a new drawing file
Creates a web light
Creates a five-sided 3D solid with a sloped face tapering along the X axis
Displays ownership information for opened drawing files
Covers existing objects with a blank area
Imports a Windows metafile
Sets options for WMFIN
Saves objects to a Windows metafile
Creates, modifies, and saves workspaces and makes a workspace current
Window Polygon for “Select Objects”
Saves a workspace
Sets options for workspaces
~CADTiddlyWiki is a compilation of information related to ~AutoCAD.  

It contains ~AutoCAD commands, standards, procedures and other features that will ease the use of ~AutoCAD.

This tool is collaborative database that any one can access and amend.  Use [[search|YourSearch Help]] on the upper right side to search for information. Select a result to open a "tiddler".  If you do not find what you are looking for email [[Administrator|Administrator]] to add it to the tool, or [[add it yourself|Adding your own information to a TiddlyWiki file]].  Printing from a ~TiddlyWiki file is just like printing any webpage using the print function of your browser. Wow, that was easy to explain! For an extra tip, try this:

[[Printing just tiddler titles and text without all the TiddlyWiki stuff around it]]


For more information about TiddlyWiki  go to http://www.giffmex.org/twfortherestofus.html or http://www.tiddlywiki.org/wiki/Main_Page.
A WikiWord is a word that combines upper and lowercase letters. Examples: ~WikiWord, ~GiffMex, ~MainMenu, ~AbrahamLincoln, etc.
Attaches an external reference to the current drawing
Binds one or more definitions of named objects in an xref to the current drawing
Defines an xref or block clipping boundary and sets the front and back clipping planes
Creates wireframe geometry by extracting edges from a 3D solid or surface
Creates an infinite line
Lists properties of xrefs and blocks such as object type, layer, object and linetype
Opens a selected drawing reference (xref) in a new window
Breaks a compound object into its component objects
Starts the EXTERNALREFERENCES command
/***
|''Name:''|YourSearchPlugin|
|''Version:''|2.1.3 (2008-04-16)|
|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2008 [[abego Software|http://www.abego-software.de]]|
|''~CoreVersion:''|2.1.0|
|''Community:''|[[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23YourSearchPlugin]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; ~InternetExplorer 6.0|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
!Compatibility
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|http://tiddlywiki.abego-software.de/archive]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/Plugin-YourSearch-src.2.1.3.js]] to get the readable source code.
***/
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:3,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2008 (www.abego-software.de)"};if(!window.abego){window.abego={};}
if(!Array.forEach){Array.forEach=function(_1,_2,_3){for(var i=0,len=_1.length;i<len;i++){_2.call(_3,_1[i],i,_1);}};Array.prototype.forEach=function(_5,_6){for(var i=0,len=this.length;i<len;i++){_5.call(_6,this[i],i,this);}};}
abego.toInt=function(s,_9){if(!s){return _9;}
var n=parseInt(s);return(n==NaN)?_9:n;};abego.createEllipsis=function(_b){var e=createTiddlyElement(_b,"span");e.innerHTML="&hellip;";};abego.shallowCopy=function(_d){if(!_d){return _d;}
var _e={};for(var n in _d){_e[n]=_d[n];}
return _e;};abego.copyOptions=function(_10){return!_10?{}:abego.shallowCopy(_10);};abego.countStrings=function(_11,s){if(!s){return 0;}
var len=s.length;var n=0;var _15=0;while(1){var i=_11.indexOf(s,_15);if(i<0){return n;}
n++;_15=i+len;}
return n;};abego.getBracedText=function(_17,_18,_19){if(!_18){_18=0;}
var re=/\{([^\}]*)\}/gm;re.lastIndex=_18;var m=re.exec(_17);if(m){var s=m[1];var _1d=abego.countStrings(s,"{");if(!_1d){if(_19){_19.lastIndex=re.lastIndex;}
return s;}
var len=_17.length;for(var i=re.lastIndex;i<len&&_1d;i++){var c=_17.charAt(i);if(c=="{"){_1d++;}else{if(c=="}"){_1d--;}}}
if(!_1d){if(_19){_19.lastIndex=i-1;}
return _17.substring(m.index+1,i-1);}}};abego.select=function(_21,_22,_23,_24){if(!_24){_24=[];}
_21.forEach(function(t){if(_22.call(_23,t)){_24.push(t);}});return _24;};abego.consumeEvent=function(e){if(e.stopPropagation){e.stopPropagation();}
if(e.preventDefault){e.preventDefault();}
e.cancelBubble=true;e.returnValue=true;};abego.TiddlerFilterTerm=function(_27,_28){if(!_28){_28={};}
var _29=_27;if(!_28.textIsRegExp){_29=_27.escapeRegExp();if(_28.fullWordMatch){_29="\\b"+_29+"\\b";}}
var _2a=new RegExp(_29,"m"+(_28.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(_2a,_28.fields,_28.withExtendedFields);};abego.TiddlerFilterTerm.prototype.test=function(_2b){return this.tester.test(_2b);};abego.parseNewTiddlerCommandLine=function(s){var m=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(s);if(!m){m=/([^#]*)()(#.*)?/.exec(s);}
if(m){var r;if(m[3]){var s2=m[3].replace(/#/g,"");r=s2.parseParams("tag");}else{r=[[]];}
var _30=m[2]?m[2].trim():"";r.push({name:"text",value:_30});r[0].text=[_30];return{title:m[1].trim(),params:r};}else{return{title:s.trim(),params:[[]]};}};abego.parseTiddlerFilterTerm=function(_31,_32,_33){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var _35={"!":"title","%":"text","#":"tags"};var _36={};var _37;re.lastIndex=_32;while(1){var i=re.lastIndex;var m=re.exec(_31);if(!m||m.index!=i){throw"Word or String literal expected";}
if(m[1]){var _3a={};var _3b=abego.getBracedText(_31,0,_3a);if(!_3b){throw"Invalid {...} syntax";}
var f=Function("tiddler","return ("+_3b+");");return{func:f,lastIndex:_3a.lastIndex,markRE:null};}
if(m[2]){_37=true;}else{if(m[3]){_36[_35[m[3]]]=1;}else{if(m[4]){_36[m[4]]=1;}else{var _3d=m[6];var _3e=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];var _33=abego.copyOptions(_33);_33.fullWordMatch=_37;_33.textIsRegExp=_3d;var _3f=[];for(var n in _36){_3f.push(n);}
if(_3f.length==0){_33.fields=_33.defaultFields;}else{_33.fields=_3f;_33.withExtendedFields=false;}
var _41=new abego.TiddlerFilterTerm(_3e,_33);var _42=_3d?_3e:_3e.escapeRegExp();if(_42&&_37){_42="\\b"+_42+"\\b";}
return{func:function(_43){return _41.test(_43);},lastIndex:re.lastIndex,markRE:_42?"(?:"+_42+")":null};}}}}};abego.BoolExp=function(s,_45,_46){this.s=s;var _47=_46&&_46.defaultOperationIs_OR;var _48=/\s*(?:(\-|not)|(\())/gi;var _49=/\s*\)/g;var _4a=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var _4b=/\s*[^\)\s]/g;var _4c=/\s*(\-|not)?(\s*\()?/gi;var _4d;var _4e=function(_4f){_4c.lastIndex=_4f;var m=_4c.exec(s);var _51;var _52;if(m&&m.index==_4f){_4f+=m[0].length;_51=m[1];if(m[2]){var e=_4d(_4f);_49.lastIndex=e.lastIndex;if(!_49.exec(s)){throw"Missing ')'";}
_52={func:e.func,lastIndex:_49.lastIndex,markRE:e.markRE};}}
if(!_52){_52=_45(s,_4f,_46);}
if(_51){_52.func=(function(f){return function(_55){return!f(_55);};})(_52.func);_52.markRE=null;}
return _52;};_4d=function(_56){var _57=_4e(_56);while(1){var l=_57.lastIndex;_4a.lastIndex=l;var m=_4a.exec(s);var _5a;var _5b;if(m&&m.index==l){_5a=!m[1];_5b=_4e(_4a.lastIndex);}else{try{_5b=_4e(l);}
catch(e){return _57;}
_5a=_47;}
_57.func=(function(_5c,_5d,_5e){return _5e?function(_5f){return _5c(_5f)||_5d(_5f);}:function(_60){return _5c(_60)&&_5d(_60);};})(_57.func,_5b.func,_5a);_57.lastIndex=_5b.lastIndex;if(!_57.markRE){_57.markRE=_5b.markRE;}else{if(_5b.markRE){_57.markRE=_57.markRE+"|"+_5b.markRE;}}}};var _61=_4d(0);this.evalFunc=_61.func;if(_61.markRE){this.markRegExp=new RegExp(_61.markRE,_46.caseSensitive?"mg":"img");}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments);};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp;};abego.BoolExp.prototype.toString=function(){return this.s;};abego.MultiFieldRegExpTester=function(re,_63,_64){this.re=re;this.fields=_63?_63:["title","text","tags"];this.withExtendedFields=_64;};abego.MultiFieldRegExpTester.prototype.test=function(_65){var re=this.re;for(var i=0;i<this.fields.length;i++){var s=store.getValue(_65,this.fields[i]);if(typeof s=="string"&&re.test(s)){return this.fields[i];}}
if(this.withExtendedFields){return store.forEachField(_65,function(_69,_6a,_6b){return typeof _6b=="string"&&re.test(_6b)?_6a:null;},true);}
return null;};abego.TiddlerQuery=function(_6c,_6d,_6e,_6f,_70){if(_6e){this.regExp=new RegExp(_6c,_6d?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,_6f,_70);}else{this.expr=new abego.BoolExp(_6c,abego.parseTiddlerFilterTerm,{defaultFields:_6f,caseSensitive:_6d,withExtendedFields:_70});}
this.getQueryText=function(){return _6c;};this.getUseRegExp=function(){return _6e;};this.getCaseSensitive=function(){return _6d;};this.getDefaultFields=function(){return _6f;};this.getWithExtendedFields=function(){return _70;};};abego.TiddlerQuery.prototype.test=function(_71){if(!_71){return false;}
if(this.regExp){return this.tester.test(_71);}
return this.expr.exec(_71);};abego.TiddlerQuery.prototype.filter=function(_72){return abego.select(_72,this.test,this);};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return"".search(this.regExp)>=0?null:this.regExp;}
return this.expr.getMarkRegExp();};abego.TiddlerQuery.prototype.toString=function(){return(this.regExp?this.regExp:this.expr).toString();};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0;};merge(abego.PageWiseRenderer.prototype,{setItems:function(_73){this.items=_73;this.setFirstIndexOnPage(0);},getMaxPagesInNavigation:function(){return 10;},getItemsCount:function(_74){return this.items?this.items.length:0;},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage());},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage());},setFirstIndexOnPage:function(_75){this.firstIndexOnPage=Math.min(Math.max(0,_75),this.getItemsCount()-1);},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage;},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1);},onPageChanged:function(_76,_77){},renderPage:function(_78){if(_78.beginRendering){_78.beginRendering(this);}
try{if(this.getItemsCount()){var _79=this.getLastIndexOnPage();var _7a=-1;for(var i=this.getFirstIndexOnPage();i<=_79;i++){_7a++;_78.render(this,this.items[i],i,_7a);}}}
finally{if(_78.endRendering){_78.endRendering(this);}}},addPageNavigation:function(_7c){if(!this.getItemsCount()){return;}
var _7d=this;var _7e=function(e){if(!e){var e=window.event;}
abego.consumeEvent(e);var _80=abego.toInt(this.getAttribute("page"),0);var _81=_7d.getCurrentPageIndex();if(_80==_81){return;}
var _82=_80*_7d.getItemsPerPage();_7d.setFirstIndexOnPage(_82);_7d.onPageChanged(_80,_81);};var _83;var _84=this.getCurrentPageIndex();var _85=this.getLastPageIndex();if(_84>0){_83=createTiddlyButton(_7c,"Previous","Go to previous page (Shortcut: Alt-'<')",_7e,"prev");_83.setAttribute("page",(_84-1).toString());_83.setAttribute("accessKey","<");}
for(var i=-this.getMaxPagesInNavigation();i<this.getMaxPagesInNavigation();i++){var _87=_84+i;if(_87<0){continue;}
if(_87>_85){break;}
var _88=(i+_84+1).toString();var _89=_87==_84?"currentPage":"otherPage";_83=createTiddlyButton(_7c,_88,"Go to page %0".format([_88]),_7e,_89);_83.setAttribute("page",(_87).toString());}
if(_84<_85){_83=createTiddlyButton(_7c,"Next","Go to next page (Shortcut: Alt-'>')",_7e,"next");_83.setAttribute("page",(_84+1).toString());_83.setAttribute("accessKey",">");}}});abego.LimitedTextRenderer=function(){var _8a=40;var _8b=4;var _8c=function(_8d,_8e,_8f){var n=_8d.length;if(n==0){_8d.push({start:_8e,end:_8f});return;}
var i=0;for(;i<n;i++){var _92=_8d[i];if(_92.start<=_8f&&_8e<=_92.end){var r;var _94=i+1;for(;_94<n;_94++){r=_8d[_94];if(r.start>_8f||_8e>_92.end){break;}}
var _95=_8e;var _96=_8f;for(var j=i;j<_94;j++){r=_8d[j];_95=Math.min(_95,r.start);_96=Math.max(_96,r.end);}
_8d.splice(i,_94-i,{start:_95,end:_96});return;}
if(_92.start>_8f){break;}}
_8d.splice(i,0,{start:_8e,end:_8f});};var _98=function(_99){var _9a=0;for(var i=0;i<_99.length;i++){var _9c=_99[i];_9a+=_9c.end-_9c.start;}
return _9a;};var _9d=function(c){return(c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var _9f=function(s,_a1){if(!_9d(s[_a1])){return null;}
for(var i=_a1-1;i>=0&&_9d(s[i]);i--){}
var _a3=i+1;var n=s.length;for(i=_a1+1;i<n&&_9d(s[i]);i++){}
return{start:_a3,end:i};};var _a5=function(s,_a7,_a8){var _a9;if(_a8){_a9=_9f(s,_a7);}else{if(_a7<=0){return _a7;}
_a9=_9f(s,_a7-1);}
if(!_a9){return _a7;}
if(_a8){if(_a9.start>=_a7-_8b){return _a9.start;}
if(_a9.end<=_a7+_8b){return _a9.end;}}else{if(_a9.end<=_a7+_8b){return _a9.end;}
if(_a9.start>=_a7-_8b){return _a9.start;}}
return _a7;};var _aa=function(s,_ac){var _ad=[];if(_ac){var _ae=0;var n=s.length;var _b0=0;do{_ac.lastIndex=_ae;var _b1=_ac.exec(s);if(_b1){if(_ae<_b1.index){var t=s.substring(_ae,_b1.index);_ad.push({text:t});}
_ad.push({text:_b1[0],isMatch:true});_ae=_b1.index+_b1[0].length;}else{_ad.push({text:s.substr(_ae)});break;}}while(true);}else{_ad.push({text:s});}
return _ad;};var _b3=function(_b4){var _b5=0;for(var i=0;i<_b4.length;i++){if(_b4[i].isMatch){_b5++;}}
return _b5;};var _b7=function(s,_b9,_ba,_bb,_bc){var _bd=Math.max(Math.floor(_bc/(_bb+1)),_8a);var _be=Math.max(_bd-(_ba-_b9),0);var _bf=Math.min(Math.floor(_ba+_be/3),s.length);var _c0=Math.max(_bf-_bd,0);_c0=_a5(s,_c0,true);_bf=_a5(s,_bf,false);return{start:_c0,end:_bf};};var _c1=function(_c2,s,_c4){var _c5=[];var _c6=_b3(_c2);var pos=0;for(var i=0;i<_c2.length;i++){var t=_c2[i];var _ca=t.text;if(t.isMatch){var _cb=_b7(s,pos,pos+_ca.length,_c6,_c4);_8c(_c5,_cb.start,_cb.end);}
pos+=_ca.length;}
return _c5;};var _cc=function(s,_ce,_cf){var _d0=_cf-_98(_ce);while(_d0>0){if(_ce.length==0){_8c(_ce,0,_a5(s,_cf,false));return;}else{var _d1=_ce[0];var _d2;var _d3;if(_d1.start==0){_d2=_d1.end;if(_ce.length>1){_d3=_ce[1].start;}else{_8c(_ce,_d2,_a5(s,_d2+_d0,false));return;}}else{_d2=0;_d3=_d1.start;}
var _d4=Math.min(_d3,_d2+_d0);_8c(_ce,_d2,_d4);_d0-=(_d4-_d2);}}};var _d5=function(_d6,s,_d8,_d9,_da){if(_d9.length==0){return;}
var _db=function(_dc,s,_de,_df,_e0){var t;var _e2;var pos=0;var i=0;var _e5=0;for(;i<_de.length;i++){t=_de[i];_e2=t.text;if(_df<pos+_e2.length){_e5=_df-pos;break;}
pos+=_e2.length;}
var _e6=_e0-_df;for(;i<_de.length&&_e6>0;i++){t=_de[i];_e2=t.text.substr(_e5);_e5=0;if(_e2.length>_e6){_e2=_e2.substr(0,_e6);}
if(t.isMatch){createTiddlyElement(_dc,"span",null,"marked",_e2);}else{createTiddlyText(_dc,_e2);}
_e6-=_e2.length;}
if(_e0<s.length){abego.createEllipsis(_dc);}};if(_d9[0].start>0){abego.createEllipsis(_d6);}
var _e7=_da;for(var i=0;i<_d9.length&&_e7>0;i++){var _e9=_d9[i];var len=Math.min(_e9.end-_e9.start,_e7);_db(_d6,s,_d8,_e9.start,_e9.start+len);_e7-=len;}};this.render=function(_eb,s,_ed,_ee){if(s.length<_ed){_ed=s.length;}
var _ef=_aa(s,_ee);var _f0=_c1(_ef,s,_ed);_cc(s,_f0,_ed);_d5(_eb,s,_ef,_f0,_ed);};};(function(){function alertAndThrow(msg){alert(msg);throw msg;}
if(version.major<2||(version.major==2&&version.minor<1)){alertAndThrow("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive");}
abego.YourSearch={};var _f2;var _f3;var _f4=function(_f5){_f2=_f5;};var _f6=function(){return _f2?_f2:[];};var _f7=function(){return _f2?_f2.length:0;};var _f8=4;var _f9=10;var _fa=2;var _fb=function(s,re){var m=s.match(re);return m?m.length:0;};var _ff=function(_100,_101){var _102=_101.getMarkRegExp();if(!_102){return 1;}
var _103=_100.title.match(_102);var _104=_103?_103.length:0;var _105=_fb(_100.getTags(),_102);var _106=_103?_103.join("").length:0;var _107=_100.title.length>0?_106/_100.title.length:0;var rank=_104*_f8+_105*_fa+_107*_f9+1;return rank;};var _109=function(_10a,_10b,_10c,_10d,_10e,_10f){_f3=null;var _110=_10a.reverseLookup("tags",_10f,false);try{var _111=[];if(config.options.chkSearchInTitle){_111.push("title");}
if(config.options.chkSearchInText){_111.push("text");}
if(config.options.chkSearchInTags){_111.push("tags");}
_f3=new abego.TiddlerQuery(_10b,_10c,_10d,_111,config.options.chkSearchExtendedFields);}
catch(e){return[];}
var _112=_f3.filter(_110);var _113=abego.YourSearch.getRankFunction();for(var i=0;i<_112.length;i++){var _115=_112[i];var rank=_113(_115,_f3);_115.searchRank=rank;}
if(!_10e){_10e="title";}
var _117=function(a,b){var _11a=a.searchRank-b.searchRank;if(_11a==0){if(a[_10e]==b[_10e]){return(0);}else{return(a[_10e]<b[_10e])?-1:+1;}}else{return(_11a>0)?-1:+1;}};_112.sort(_117);return _112;};var _11b=80;var _11c=50;var _11d=250;var _11e=50;var _11f=25;var _120=10;var _121="yourSearchResult";var _122="yourSearchResultItems";var _123;var _124;var _125;var _126;var _127;var _128=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return;}
version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");};var _129=function(){return _124!=null&&_124.parentNode==document.body;};var _12a=function(){if(_129()){document.body.removeChild(_124);}};var _12b=function(e){_12a();var _12d=this.getAttribute("tiddlyLink");if(_12d){var _12e=this.getAttribute("withHilite");var _12f=highlightHack;if(_12e&&_12e=="true"&&_f3){highlightHack=_f3.getMarkRegExp();}
story.displayTiddler(this,_12d);highlightHack=_12f;}
return(false);};var _130=function(){if(!_125){return;}
var root=_125;var _132=findPosX(root);var _133=findPosY(root);var _134=root.offsetHeight;var _135=_132;var _136=_133+_134;var _137=findWindowWidth();if(_137<_124.offsetWidth){_124.style.width=(_137-100)+"px";_137=findWindowWidth();}
var _138=_124.offsetWidth;if(_135+_138>_137){_135=_137-_138-30;}
if(_135<0){_135=0;}
_124.style.left=_135+"px";_124.style.top=_136+"px";_124.style.display="block";};var _139=function(){if(_124){window.scrollTo(0,ensureVisible(_124));}
if(_125){window.scrollTo(0,ensureVisible(_125));}};var _13a=function(){_130();_139();};var _13b;var _13c;var _13d=new abego.PageWiseRenderer();var _13e=function(_13f){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){alertAndThrow("YourSearchItemTemplate not found");}
this.place=document.getElementById(_122);if(!this.place){this.place=createTiddlyElement(_13f,"div",_122);}};merge(_13e.prototype,{render:function(_140,_141,_142,_143){_13b=_143;_13c=_141;var item=createTiddlyElement(this.place,"div",null,"yourSearchItem");item.innerHTML=this.itemHtml;applyHtmlMacros(item,null);refreshElements(item,null);},endRendering:function(_145){_13c=null;}});var _146=function(){if(!_124||!_125){return;}
var html=store.getTiddlerText("YourSearchResultTemplate");if(!html){html="<b>Tiddler YourSearchResultTemplate not found</b>";}
_124.innerHTML=html;applyHtmlMacros(_124,null);refreshElements(_124,null);var _148=new _13e(_124);_13d.renderPage(_148);_13a();};_13d.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,_120):abego.toInt(config.options.txtItemsPerPage,_11f);return(n>0)?n:1;};_13d.onPageChanged=function(){_146();};var _14a=function(){if(_125==null||!config.options.chkUseYourSearch){return;}
if((_125.value==_123)&&_123&&!_129()){if(_124&&(_124.parentNode!=document.body)){document.body.appendChild(_124);_13a();}else{abego.YourSearch.onShowResult(true);}}};var _14b=function(){_12a();_124=null;_123=null;};var _14c=function(self,e){while(e!=null){if(self==e){return true;}
e=e.parentNode;}
return false;};var _14f=function(e){if(e.target==_125){return;}
if(e.target==_126){return;}
if(_124&&_14c(_124,e.target)){return;}
_12a();};var _151=function(e){if(e.keyCode==27){_12a();}};addEvent(document,"click",_14f);addEvent(document,"keyup",_151);var _153=function(text,_155,_156){_123=text;_f4(_109(store,text,_155,_156,"title","excludeSearch"));abego.YourSearch.onShowResult();};var _157=function(_158,_159,_15a,_15b,_15c,_15d){_128();_123="";var _15e=null;var _15f=function(txt){if(config.options.chkUseYourSearch){_153(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}
_123=txt.value;};var _161=function(e){_15f(_125);return false;};var _163=function(e){if(!e){var e=window.event;}
_125=this;switch(e.keyCode){case 13:if(e.ctrlKey&&_127&&_129()){_127.onclick.apply(_127,[e]);}else{_15f(this);}
break;case 27:if(_129()){_12a();}else{this.value="";clearMessage();}
break;}
if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){_14a();}
if(this.value.length<3&&_15e){clearTimeout(_15e);}
if(this.value.length>2){if(this.value!=_123){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_15e){clearTimeout(_15e);}
var txt=this;_15e=setTimeout(function(){_15f(txt);},500);}}else{if(_15e){clearTimeout(_15e);}}}
if(this.value.length==0){_12a();}};var _166=function(e){this.select();clearMessage();_14a();};var args=_15c.parseParams("list",null,true);var _169=getFlag(args,"buttonAtRight");var _16a=getParam(args,"sizeTextbox",this.sizeTextbox);var btn;if(!_169){btn=createTiddlyButton(_158,this.label,this.prompt,_161);}
var txt=createTiddlyElement(_158,"input",null,null,null);if(_15a[0]){txt.value=_15a[0];}
txt.onkeyup=_163;txt.onfocus=_166;txt.setAttribute("size",_16a);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5");}else{txt.setAttribute("type","text");}
if(_169){btn=createTiddlyButton(_158,this.label,this.prompt,_161);}
_125=txt;_126=btn;};var _16d=function(){_12a();var _16e=_f6();var n=_16e.length;if(n){var _170=[];for(var i=0;i<n;i++){_170.push(_16e[i].title);}
story.displayTiddlers(null,_170);}};var _172=function(_173,_174,_175,_176){invokeMacro(_173,"option",_174,_175,_176);var elem=_173.lastChild;var _178=elem.onclick;elem.onclick=function(e){var _17a=_178.apply(this,arguments);_146();return _17a;};return elem;};var _17b=function(s){var _17d=["''","{{{","}}}","//","<<<","/***","***/"];var _17e="";for(var i=0;i<_17d.length;i++){if(i!=0){_17e+="|";}
_17e+="("+_17d[i].escapeRegExp()+")";}
return s.replace(new RegExp(_17e,"mg"),"").trim();};var _180=function(){var i=_13b;return(i>=0&&i<=9)?(i<9?(i+1):0):-1;};var _182=new abego.LimitedTextRenderer();var _183=function(_184,s,_186){_182.render(_184,s,_186,_f3.getMarkRegExp());};var _187=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_188,_189,_18a,_18b,_18c,tags,_18e){_187.apply(this,arguments);_14b();};var _18f=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_190){_18f.apply(this,arguments);_14b();};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(_191,_192,_193,_194,_195,_196){if(_193.length==0){return;}
var name=_193[0];var func=config.macros.yourSearch.funcs[name];if(func){func(_191,_192,_193,_194,_195,_196);}},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return _f7()>0;},"previewText":function(){return config.options.chkPreviewText;}},funcs:{itemRange:function(_199){if(_f7()){var _19a=_13d.getLastIndexOnPage();var s="%0 - %1".format([_13d.getFirstIndexOnPage()+1,_19a+1]);createTiddlyText(_199,s);}},count:function(_19c){createTiddlyText(_19c,_f7().toString());},query:function(_19d){if(_f3){createTiddlyText(_19d,_f3.toString());}},version:function(_19e){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_19e,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_1a1){var e=createTiddlyElement(_1a1,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2005-2008 <b><font color=\"red\">abego</font></b> Software<font>";},newTiddlerButton:function(_1a3){if(_f3){var r=abego.parseNewTiddlerCommandLine(_f3.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(_1a3,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var _1a6=btn.onclick;btn.onclick=function(){_12a();_1a6.apply(this,arguments);};_127=btn;}},linkButton:function(_1a7,_1a8,_1a9,_1aa,_1ab,_1ac){if(_1a9<2){return;}
var _1ad=_1a9[1];var text=_1a9<3?_1ad:_1a9[2];var _1af=_1a9<4?text:_1a9[3];var _1b0=_1a9<5?null:_1a9[4];var btn=createTiddlyButton(_1a7,text,_1af,_12b,null,null,_1b0);btn.setAttribute("tiddlyLink",_1ad);},closeButton:function(_1b2,_1b3,_1b4,_1b5,_1b6,_1b7){var _1b8=createTiddlyButton(_1b2,"close","Close the Search Results (Shortcut: ESC)",_12a);},openAllButton:function(_1b9,_1ba,_1bb,_1bc,_1bd,_1be){var n=_f7();if(n==0){return;}
var _1c0=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _1c1=createTiddlyButton(_1b9,_1c0,"Open all found tiddlers (Shortcut: Alt-O)",_16d);_1c1.setAttribute("accessKey","O");},naviBar:function(_1c2,_1c3,_1c4,_1c5,_1c6,_1c7){_13d.addPageNavigation(_1c2);},"if":function(_1c8,_1c9,_1ca,_1cb,_1cc,_1cd){if(_1ca.length<2){return;}
var _1ce=_1ca[1];var _1cf=(_1ce=="not");if(_1cf){if(_1ca.length<3){return;}
_1ce=_1ca[2];}
var test=config.macros.yourSearch.tests[_1ce];var _1d1=false;try{if(test){_1d1=test(_1c8,_1c9,_1ca,_1cb,_1cc,_1cd)!=_1cf;}else{_1d1=(!eval(_1ce))==_1cf;}}
catch(ex){}
if(!_1d1){_1c8.style.display="none";}},chkPreviewText:function(_1d2,_1d3,_1d4,_1d5,_1d6,_1d7){var _1d8=_1d4.slice(1).join(" ");var elem=_172(_1d2,"chkPreviewText",_1d5,_1d7);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(_1da,_1db,_1dc,_1dd,_1de,_1df){var name=_1dc[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_1da,_1db,_1dc,_1dd,_1de,_1df);}},funcs:{title:function(_1e2,_1e3,_1e4,_1e5,_1e6,_1e7){if(!_13c){return;}
var _1e8=_180();var _1e9=_1e8>=0?"Open tiddler (Shortcut: Alt-%0)".format([_1e8.toString()]):"Open tiddler";var btn=createTiddlyButton(_1e2,null,_1e9,_12b,null);btn.setAttribute("tiddlyLink",_13c.title);btn.setAttribute("withHilite","true");_183(btn,_13c.title,_11b);if(_1e8>=0){btn.setAttribute("accessKey",_1e8.toString());}},tags:function(_1eb,_1ec,_1ed,_1ee,_1ef,_1f0){if(!_13c){return;}
_183(_1eb,_13c.getTags(),_11c);},text:function(_1f1,_1f2,_1f3,_1f4,_1f5,_1f6){if(!_13c){return;}
_183(_1f1,_17b(_13c.text),_11d);},field:function(_1f7,_1f8,_1f9,_1fa,_1fb,_1fc){if(!_13c){return;}
var name=_1f9[1];var len=_1f9.length>2?abego.toInt(_1f9[2],_11e):_11e;var v=store.getValue(_13c,name);if(v){_183(_1f7,_17b(v),len);}},number:function(_200,_201,_202,_203,_204,_205){var _206=_180();if(_206>=0){var text="%0)".format([_206.toString()]);createTiddlyElement(_200,"span",null,"shortcutNumber",text);}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:_11f,txtItemsPerPageWithPreview:_120};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n];}}
config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g"+" only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e."+"g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard field"+"s {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles "+"only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text "+"only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only"+"''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may"+" also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1"+"}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one"+" field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containin"+"g \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boole"+"an Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you "+"type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}}"+")|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must "+"not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two"+" words, separated with a space, YourSearch finds all tiddlers that contain both words, but not neces"+"sarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need"+" to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change "+"the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds"+" all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}"+"} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"j"+"eremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched tex"+"t. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~Complet"+"edTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you"+" need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Tas"+"k', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch"+"\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearc"+"h. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you m"+"ay do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly enterin"+"g the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/"+"}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript E"+"xpression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki interna"+"ls you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression"+" into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and e"+"valuate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tidd"+"ler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Com"+"bined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Res"+"ult|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its tit"+"les, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact wor"+"d). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encour"+"aged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. F"+"or quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|"+"!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search in"+"put field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the pr"+"evious search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. S"+"elect tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Resul"+"t]] is already closed and the cursor is in the search input field the field's content is cleared so "+"you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second e"+"tc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the "+"'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[Your"+"Search Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the "+"{{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of t"+"hese shortcuts don't work for you check your browser if you have other extensions installed that alr"+"eady \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText"+">> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required"+" to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chk"+"SearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFiel"+"ds>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don"+"'t explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!"+"', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items "+"on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with pre"+"view text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers["YourSearchStyleSheet"]="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800"+"px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGra"+"y;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width:"+" thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSea"+"rchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary ."+"button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summa"+"ry .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*"+"/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-to"+"p: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearc"+"hText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFoote"+"r {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;"+"\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/"+"\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: bla"+"ck;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSe"+"archNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #"+"FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold"+";\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\n{{{\n-->\n<span macro=\"yourSearch if found\">\n<!-- The Summary Header ============================"+"================ -->\n<table class=\"summary\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">"+"<tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Result <span class=\"yourSearchRange\" macro=\"yourSearc"+"h itemRange\"></span>\n\t\t&nbsp;of&nbsp;<span class=\"yourSearchCount\" macro=\"yourSearch count\"></span>\n"+"\t\tfor&nbsp;<span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>\n\t</td>\n\t<td class=\"yourSea"+"rchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch chkPreviewText\"></span><span class=\"chkBoxLabel"+"\">preview text</span>\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch openAllButton\"></span>\n\t\t<span macro=\"yourSearch lin"+"kButton 'YourSearch Options' options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkB"+"utton 'YourSearch Help' help 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch clo"+"seButton\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ================="+"=========================== -->\n<div id=\"yourSearchResultItems\" itemsPerPage=\"25\" itemsPerPageWithPr"+"eview=\"10\"></div>\n\n<!-- The Footer (with the Navigation) ==========================================="+"= -->\n<table class=\"yourSearchFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody"+">\n  <tr>\n\t<td align=\"left\">\n\t\tResult page: <span class=\"yourSearchNaviBar\" macro=\"yourSearch naviBar"+"\"></span>\n\t</td>\n\t<td align=\"right\"><span macro=\"yourSearch version\"></span>, <span macro=\"yourSearc"+"h copyright\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the 'tiddlers found' case ========="+"================================== -->\n</span>\n\n\n<!-- The \"No tiddlers found\" case ================="+"========================== -->\n<span macro=\"yourSearch if not found\">\n<table class=\"summary\" border="+"\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Resu"+"lt: No tiddlers found for <span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>.\n\t</td>\n\t<t"+"d class=\"yourSearchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Options'"+" options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Help' help"+" 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch closeButton\"></span>\n\t</td>\n  <"+"/tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSea"+"rchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='found"+"Tiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='fo"+"undTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=_157;var _20a=function(){if(config.macros.search.handler!=_157){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may "+"disable the other plugin or change the load order of \nthe plugins (by changing the names of the tidd"+"lers)\nto enable the 'Your Search' features.");}};setTimeout(_20a,5000);abego.YourSearch.getStandardRankFunction=function(){return _ff;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return _13c;};abego.YourSearch.closeResult=function(){_12a();};abego.YourSearch.getFoundTiddlers=function(){return _f2;};abego.YourSearch.getQuery=function(){return _f3;};abego.YourSearch.onShowResult=function(_20b){highlightHack=_f3?_f3.getMarkRegExp():null;if(!_20b){_13d.setItems(_f6());}
if(!_124){_124=createTiddlyElement(document.body,"div",_121,"yourSearchResult");}else{if(_124.parentNode!=document.body){document.body.appendChild(_124);}}
_146();highlightHack=null;};})();}
//%/
Increases or decreases the apparent size of objects in the current viewport
Controls how much the magnification changes when the mouse wheel moves forward or backward. Accepts an integer between 3 and 100 as a valid value. The higher the number, the more the change.
Toggles the direction of transparent zoom operations when you scroll the middle mouse wheel.

0 Moves wheel forward zooms in; moving wheel backwards zooms out.
1 Move wheel forward zooms out; moving wheel backwards zooms in.
 
To scale each displayed view in the plotted drawing accurately, set the scale of each view relative to paper space.

You can change the view scale of the viewport using

- The Properties palette
- The XP option of the ZOOM command
- The Viewports toolbar
Note:  You can modify the list of scales that are displayed in all view and plot scale lists with [[SCALELISTEDIT]].

To modify a layout viewport scale using the [[Properties]] palette 

1. Make sure you are on a layout tab in paper space. 
2. Click the border of the viewport whose scale you want to modify. 
3. Right-click, and then click Properties.
4. In the Properties palette, select Standard Scale, and then select a new scale from the list. 
5. The scale you choose is applied to the viewport.

Note:  To use a custom scale, enter a scale in the Custom Scale field in the [[Properties]] palette.

 Toolbar: Standard 
 Command entry: [[PROPERTIES]]
 Shortcut menu: Select the viewport and right-click in the drawing area. Click [[Properties]].

When you work in a layout, the scale factor of a view in a layout viewport represents a ratio between the actual size of the model displayed in the viewport and the size of the layout. The ratio is determined by dividing the paper space units by the model space units. For example, for a quarter-scale drawing, the ratio would be a scale factor of one paper space unit to four model space units, or 1:4. 

Scaling or stretching the layout viewport border does not change the scale of the view within the viewport.

Lock the Scale of Layout Viewports

Once you set the viewport scale, you cannot zoom within a viewport without changing the viewport scale. By locking the viewport scale first, you can zoom in to view different levels of detail in your viewport without altering the viewport scale.

Scale locking locks the scale that you set for the selected viewport. Once the scale is locked, you can continue to modify the geometry in the viewport without affecting the viewport scale. If you turn a viewport's scale locking on, most of the viewing commands, such as [[VPOINT]], [[DVIEW]], [[3DORBIT]], [[PLAN]], and [[VIEW]], no longer function in that viewport. 

Note:  Viewport scale locking is also available for nonrectangular viewports. To lock a nonrectangular viewport, you must perform an extra step in the Properties palette to select the viewport object rather than the viewport clipping boundary.

To turn on scale locking in a layout viewport 

-In the layout, click the viewport whose scale you want to lock.
-If necessary, open the [[Properties]] palette.
-In the [[Properties]] palette, do one of the following:
-If you selected a rectangular viewport, select Display Locked, and then click Yes. 
-If you selected a nonrectangular viewport, first click All (2) and select Viewport (1). Then select Display Locked, and click Yes.
The current viewport's scale is locked. If you change the zoom factor in the viewport, only paper space objects are affected. 

 Toolbar: Standard 
 Command entry: [[PROPERTIES]]
 Shortcut menu: Select the viewport and right-click in the drawing area. Click [[Properties]].
Reassociate Dimensions to Different Objects

With DIMREASSOCIATE, you can select one or more dimensions and step through the extension-line origin points of each dimension. For each extension-line origin point, you can specify a new association point on a geometric object. Association points determine the attachment of extension lines to locations on geometric objects.

Note:  When you create or modify associative dimensions, it is important to locate their association points carefully so that if you make a future design change, the geometric objects that you change will also change the dimensions associated with them.
When you use the DIMREASSOCIATE command, a marker is displayed that indicates whether each successive extension line origin point of the dimension is associative or nonassociative. A square with an X in it means that the point is associated with a location on an object, while an X without the square means that the point is not associated with an object. Use an object snap to specify the new association for the extension-line origin point or press ENTER to skip to the next extension-line origin point.

Select dimensions to reassociate: Select dimension objects

Each selected dimension is highlighted in turn, and prompts for association points appropriate for the selected dimension are displayed. A marker is displayed for each association point prompt. If the definition point of the current dimension is not associated to a geometric object, the marker appears as an X; if the definition point is associated, the marker appears as an X inside a box.

Note:  The marker disappears if you pan or zoom with a wheel mouse.

Press ESC to terminate the command without losing the changes that were already specified. Use UNDO to restore the previous state of the changed dimensions.

The prompts for the different types of dimensions are:

Linear
Specify first extension line origin or [Select object] <next>: Specify an object snap location, enter s and select a geometric object, or press ENTER to skip to the next prompt

Specify second extension line origin <next>: Specify an object snap location, or press ENTER to skip to the next dimension object, if any

Aligned
Specify first extension line origin or [Select object] <next>: Specify an object snap location, enter s and select a geometric object, or press ENTER to skip to the next prompt

Specify second extension line origin <next>: Specify an object snap location, or press ENTER to skip to the next dimension object, if any

Angular (Three Point)
Specify angle vertex or [Select arc or circle] <next>: Specify an object snap location, enter s and select an arc or a circle, or press ENTER to skip to the next prompt

Specify first angle endpoint <next>: Specify an object snap location or press ENTER to skip to the next prompt

Specify second angle endpoint <next>: Specify an object snap location or press ENTER to skip to the next dimension object, if any

Angular (Two Line)
Select first line <next>: Select a line, or press ENTER to skip to the next prompt

Select second line <next>: Select another line, or press ENTER to skip to the next dimension object, if any

Diameter
Select arc or circle <next>: Select an arc or a circle, or press ENTER to skip to the next dimension object, if any

Leader
Specify leader association point <next>: Specify an object snap location, or press ENTER to skip to the next dimension object, if any

Ordinate
Specify feature location <next>: Specify an object snap location, or press ENTER to skip to the next dimension object, if any

Radius
Select arc or circle <next>: Select an arc or a circle, or press ENTER to skip to the next dimension object, if any

Note:  DIMREASSOCIATE does not change the setting of [[DIMLFAC]] in a dimension. Use [[DIMOVERRIDE]] to clear dimension linear factors in legacy drawings.
/***
|!''Name:''|!easyFormat|
|''Description:''|the format command format selection according to your choice|
|''Version:''|0.1.0|
|''Date:''|13/01/2007|
|''Source:''|[[TWkd|http://yann.perrin.googlepages.com/twkd.html#easyFormat]]|
|''Author:''|[[Yann Perrin|YannPerrin]]|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.x|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
|''Requires:''|@@color:red;''E.A.S.E''@@|
***/
//{{{
config.commands.format = new TWkd.Ease('Format','format selection accordingly to chosen mode');
config.commands.format.addMode({
 name:'Bold',
 tooltip:'turns selection into bold text',
 operation:function(){
 config.commands.format.putInPlace("''"+TWkd.context.selection.content+"''",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Italic',
 tooltip:'turns selection into italic text',
 operation:function(){
 config.commands.format.putInPlace("//"+TWkd.context.selection.content+"//",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Blockquote',
 tooltip:'turns selection into blocked text',
 operation:function(){
config.commands.format.putInPlace(">"+TWkd.context.selection.content+">",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'2block',
 tooltip:'turns selection into doubly blocked text',
 operation:function(){
config.commands.format.putInPlace(">>"+TWkd.context.selection.content+">>",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'3block',
 tooltip:'turns selection into triply blocked text',
 operation:function(){
config.commands.format.putInPlace(">>>"+TWkd.context.selection.content+">>>",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'4block',
 tooltip:'turns selection into quadruplly blocked text',
 operation:function(){
config.commands.format.putInPlace(">>>>"+TWkd.context.selection.content+">>>>",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Highlight',
 tooltip:'highlight selection',
 operation:function(){
 config.commands.format.putInPlace("@@"+TWkd.context.selection.content+"@@",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Code window',
 tooltip:'Show a window to backstage TW code',
 operation:function(){
 config.commands.format.putInPlace("//{{{"+TWkd.context.selection.content+"//}}}",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Group box',
 tooltip:'Enclose text in a box',
 operation:function(){
 config.commands.format.putInPlace("{{menubox{"+TWkd.context.selection.content+"}}}",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Greek',
 tooltip:'turns selection into unicode text, for Greek characters',
 operation:function(){
 config.commands.format.putInPlace("{{greek{"+TWkd.context.selection.content+"}}}",TWkd.context.selection);
 }
});
//}}}
Use object snaps to specify precise locations on objects. For example, you can use an object snap to draw a line to the center of a circle or to the midpoint of a polyline segment.

You can specify an object snap whenever you are prompted for a point. By default, a marker and a tooltip are displayed when you move the cursor over an object snap location on an object. This feature, called AutoSnap™, provides a visual clue that indicates which object snaps are in effect.

For a list of object snaps, see [[OSNAP]].

Specify an Object Snap

To specify an object snap at a prompt for a point, you can

- Press SHIFT and right-click to display the Object Snap shortcut menu
- Click an object snap button on the Object Snap toolbar
- Enter the name of an object snap at the command prompt
- When you specify an object snap at a prompt for a point, the object snap stays in effect only for the next point that you specify.

Note:  Object snaps work only when you are prompted for a point. If you try to use an object snap at the Command prompt, an error message is displayed.

Use Running Object Snaps

If you need to use one or more object snaps repeatedly, you can turn on running object snaps. For example, you might set Center as a running object snap if you need to connect the centers of a series of circles with a line.

You can specify one or more running object snaps on the Object Snaps tab in the Drafting Settings dialog box, which is accessible from the Tools menu. If several running object snaps are on, more than one object snap may be eligible at a given location. Press TAB to cycle through the possibilities before you specify the point. 

Click the [[OSNAP]] button on the status bar or press F3 to turn running object snaps on and off. 

Note:  If you want object snaps to ignore hatch objects, set the [[OSOPTIONS]] system variable to 1.

Use Object Snaps in 3D

By default, the Z-value of an object snap location is determined by the object's location in space. However, if you work with object snaps on the plan view of a building or the top view of a part, a constant Z-value is more useful.

If you turn on the [[OSNAPZ]] system variable, all object snaps are projected onto the XY plane of the current UCS or, if ELEV is set to a non-zero value, onto a plane parallel to XY plane at the specified elevation.

Note:  When you draw or modify objects, make sure that you know whether [[OSNAPZ]] is on or off. There is no visual reminder, and you can get unexpected results.