Access Denied

Find your way around with gestures and shortcuts

Welcome to Lee Mac Programming
This program used ObjectDBX to process many drawings very quickly, but this approach also included drawbacks stemming from the underdevelopment of the ObjectDBX interface, which, to this day, still has bugs. Unix and Unix-like operating systems. This function is analogous to the AutoLISP getfiled function, however allows the user to select multiple files from several directories. Following valuable and encouraging user feedback, I have now updated my Copy or Swap Text application to Version 1. Viewer is looking southwest. This program enables the user to offset a section of a polyline enclosed by two selected points on the polyline. In the background is the first Wells Hall, built in as a dormitory.

Just big enough to fit everything you want in a desktop.

Welcome to the new Office for Mac!

I have updated and reformatted my set of Attribute Functions and Base Conversion Functions ; the functions are now clearer and carry smaller code headers. My very old Box Text program has been completely rewritten to vastly improve the readability of the code and to fix a few general bugs.

I have furthermore revised my Update Titleblock Attributes program to Version 1. I have now updated my old Copy to Drawing program to Version 1. As the new name suggests, I have now lifted the single drawing restriction, with the updated version allowing the user to copy a selection of objects to an entire set of drawings, without opening each drawing in the AutoCAD Editor. This tutorial demonstrates a variety of different methods of how to iterate over all objects in a selection set, together with a brief explanation of how each method works and the efficiency of its operation.

Updated my recently released Associative Textbox program to Version 1. Updated Associative Textbox program to Version 1. Added Associative Textbox program to the site. Similar to my existing List Box function, this function also presents the user with a dialog interface containing a list box tile from which the user may select one or more items, however, the displayed dialog for this function also includes an edit box tile, enabling the user to filter the list of items displayed.

The updated program will furthermore perform successfully with text constructed in any UCS plane. My Get Files function has been completely rewritten and updated to Version 1. The updated version implements a bug fix to account for Library folders encountered with Windows 7, and also incorporates a new and improved file sorting function.

Directory Dialog function also updated and renamed to BrowseForFolder for consistency with the method used by the function. I have updated my GrText function to Version 1. The function has been completely rewritten with the previous 'Extended ASCII' version now included in the main function for consistency. The redundant colour argument has also now been removed to improve compatibility when the function is used with DCL. The program page has also been overhauled to provide a far better description of the various demonstration programs, which have also been rewritten and updated.

Added Text to Words program to the site. This program enables the user to convert a selection of single-line text objects into separate text objects for every word in the selection, whilst retaining all properties of the original objects. Added Arrow Arc program to my library of General Programs. This program enables the user to construct an arc with arrowheads at each end point, aligned with the arc. Added Drawing Version function to the Subfunction Library section of the site.

This function will return a string describing the drawing version of a supplied drawing file, if possible. The Matrix Inverse function uses the technique of Gauss-Jordan elimination to calculate the inverse of a given nxn non-singular matrix.

The included Identity Matrix function will return an nxn Identity Matrix with dimension given by the supplied integer parameter. Updated my Dump Object utility function to Version 1.

My Automatic Block Break program has been mostly rewritten and updated to Version 1. Other minor changes have also been implemented to improve and streamline the program. I have also updated the Automatic Block Break program page, rewriting the description to describe each available command in greater detail and to include several new animations to better demonstrate the program capabilities.

Following recent development of my 5-Point Ellipse function, I have added a new Advanced Polyline Outline program to the General Programs section of the site.

Added 5-Point Ellipse function to the Subfunction Library section of the site. This function will return the parameters of the unique ellipse passing through five supplied points, if such an ellipse exists. The method used to determine these parameters is described on the function page linked above. Updated Background Mask program to Version 1. The update also implements several other minor improvements to the code.

Added Ellipse to Arc program to the site. I have also updated my Circular Wipeout program to Version 1. This updated version includes an additional command, c2wipe , which enables the user to convert a selection of circles to circular wipeouts. Added Circular Wipeout program to the site.

I have also added a table of contents to facilitate navigation of the page. This program may be found under the Mathematical Endeavours section of the site.

Added Chain Selection program to the site. This program prompts the user to select an object and generates a 'chain selection' of all objects sharing endpoints with objects in the accumulative selection. As the name implies, this program allows the user to add a new vertex to an LWPolyline object. Updated Align Objects to Curve program to Version 1.

My Align Objects to Curve program has now been completely rewritten and updated to Version 1. The alignment controls offered by the program have also been refined, with the additional option to allow the user to rotate the set of objects relative to the selected curve.

I have also updated the Testimonials section of the site to include a very complimentary testimonial kindly written by Joey Smith from Arning Companies, Inc. InsideTriangle-p to my set of Mathematical Functions. The former will reflect a given point in the axis defined by two supplied points in the plane; the latter is a predicate function which will return T if a given point lies within a triangle defined by three supplied points.

In addition to the inclusion of these supplementary functions, I have also organised the library of Geometric Functions into appropriate sub-categories for ease of navigation. As a treat for Halloween, I have added a new novelty program to the site. Lottery Numbers is a relatively simple novelty program generating a sequence of random numbers in the form of lottery balls in the drawing.

I have updated my library of Intersection Functions ; this set of functions provides the ability to retrieve points of intersection between either two objects, all objects within a Selection Set or list, or between objects of two Selection Sets or lists. I have updated my Mathematical Functions page to incorporate a set of Complex Number Functions , pertaining to the arithmetic manipulation of complex numbers; and Factorial Functions , which may be used to calculate the factorial of a positive integer, in addition to the multiplication and division of two factorials.

Various Geometric Functions have also been updated to reflect the renamed function names and earlier modifications to the Polygon Centroid function. Updated Polygon Centroid function to account for the case in which the coordinate scale factor is zero, and hence eliminating a potential divide-by-zero error.

Added set of Random Number Functions to the site. These functions involve the generation and manipulation of pseudo-random numbers using a linear congruential generator. Updated Popup function to Version 1. Paul's blog is packed with useful information on AutoCAD and Inventor, including a cornucopia of tips, tricks and tutorials exuding Paul's evident enthusiasm for everything CAD related.

I also encourage followers of my site to vote for my link as your favourite CAD site on his links page here. Added Isometric Polygon program to the site. This program enables the user to construct a regular polygon projected in the active isometric plane.

I have updated my Update Titleblock Attributes program to Version 1. The new version of the code revises the CSV file parser function to account for the use of alternative cell delimiter characters such as a semi-colon used by some systems. Updated Steal program to Version 1. This revision fixes a minor bug present in the recently released Version 1. Furthermore, in this updated version, the active drawing will only be regenerated following program completion if one or more items have been imported by the program.

After evaluating the excellent feedback submitted by numerous users for this program, and having reviewed the many suggestions for improvement that were submitted since the program was first released to the public, I have invested some time implementing many of the proposed ideas and have injected a few additional features of my own into this new release of my Steal from Drawing program.

This release also improves the general performance of the program, with much of the original source code rewritten and restructured, furthermore, some previously undetected bugs have now been ironed out to provide a more stable and reliable program. Added Polyline Information program to the General Programs section of the site. Updated my Batch Attribute Editor program to Version 1. This version implements a refined file and folder sorting function to emulate the Windows Explorer filename sort when selecting drawings to be processed by the program.

Other general bug fixes are noted in the program code header. Added HTML versions of many of the programs available for download on the site, allowing the user to view the program source code directly in the web browser, with the choice of three syntax-highlighting themes.

Take a look at the various programs under the General Programs section of the site, and click on the 'View HTML Version' link try this new feature of the site. Added Delete Blocks program to the site.

This program enables the user to quickly remove all traces of multiple blocks from a drawing. Updated List Box function to standardise code formatting and rewrite several expressions to improve clarity and readability. I have once again updated my Nested Block Counter to Version 1.

This issue should now hopefully be fully resolved. I have restructured and rewritten several sections of my Error Handling tutorial to provide clearer explanations and cleaner code samples. I have updated my Nested Block Counter program to Version 1. This update provides a fix for an issue arising when counting Standard Blocks nested within Dynamic Blocks which are using different Visibility States.

The new version also offers the ability to extract the block report to either a Text or CSV file. An example program is also included on the program page, demonstrating the ease of constructing a program to extract point data to a CSV file by utilising the LM: Updated my Read CSV function to restructure the code for better readability and performance, provide support for international systems which do not necessarily use a comma as a CSV delimiter character, and improve the cell parsing function to return more accurate results for cells containing commas and quotes.

Updated set of Draw Order Functions to Version 1. This update is a complete overhaul of the code for both the draw order functions and example custom draw order programs found on the program page. The functions now provide support for bit systems, and the example programs will now process objects on locked layers. After much planning, experimentation, redesign and deliberation of ideas for new features, I have finally released the new version of by far my largest, most popular and also most extensively developed program:.

I present Version 3. This release includes more changes and is packed with more new features than any other release since the program was first drafted. The Program Description has also been predominantly rewritten to document all of the new program functionality. Added Consistent rtos function to the Subfunction Library section of the site. This fairly simple wrapper for the rtos function will always return the result of evaluating the rtos function with the DIMZIN System Variable set to 0 , thus eradicating any incongruency when using this function in different drafting environments.

This program will allow the user to convert a nested block into a primary block inserted at the same position for each reference of the nested block, with the same scale, rotation, orientation and all other properties possessed by the original nested block. My Batch Attribute Editor has now been upgraded to Version 1. This update implements several new features in addition to remedying a couple of minor bugs present in the previous versions.

Updated my Steal program to Version 1. Amongst other general updates to the program code, this version fixes a bug causing the program to crash for versions in which some collections are not available. Updated Layer Director to Version 1. In this version, the majority of the program has been rewritten to streamline the code. Updated Quick Field program to Version 1.

This version implements a fix for a reported bug which was causing the program to crash when used in bit environments. Added Background Mask program to the site. This program allows the user to manipulate all properties of the background mask for a selection of Multiline Text MText and Multileader MLeader objects.

Areas to Field program completely rewritten to incorporate better support for bit systems and also improve code readability. GIF demonstration added to the program description page. I have updated my Batch Attribute Editor program to Version 1. This update hopefully implements a fix for the scripting bug present in previous versions of the program, and also offers the user the ability to select multiple attributed blocks from the active drawing whose attribute values may be added to the list of items to be modified.

This should no doubt greatly reduce the tediousness of manually inputting the attribute information. Updated Incremental Numbering Suite program to Version 3. This update fixes a number of bugs, the most prominent pertaining to the collection of attributed block data. Rewritten the code for Copy Block from Drawing program to make it consistent with many of my more recent programs and furthermore to improve code readability.

I have completely rewritten my Slinky Text program and have updated the program to Version 1. This new version has cleaner code and includes several performance enhancements which should allow the program to run smoother. This program will read a selected DCL file and create a formatted version of the DCL code in the same directory as the selected file. Updated Batch Attribute Editor to Version 1. This update fixes some scripting issues reported in the last version and splits the main dialog into two separate screens to account for those users without access to a widescreen resolution.

More information about the update can be found in the program code header. ObjectDBX Wrapper function completely rewritten. I have also extensively updated the program description and have included several examples demonstrating how to use the program. This program used ObjectDBX to process many drawings very quickly, but this approach also included drawbacks stemming from the underdevelopment of the ObjectDBX interface, which, to this day, still has bugs.

Furthermore, the Editor part of the program only offered the ability to modify attributes in a single block. Almost three years later, I am now offering a new Batch Attribute Editor program. This program allows the user to modify the values of multiple attributes residing within multiple attributed blocks across multiple drawings. A full description of this new and improved program may be found on the dedicated program page.

Added Escape Wildcards function to the Subfunction Library. This function will escape wildcard characters found in a supplied string, ensuring such characters are interpreted literally. Updated the Testimonials section of the site to include a very kind testimonial from Clint Hill at Innophos, Inc. This program will automatically and silently record daily LISP command usage in every drawing to a CSV Log File, saved to a folder specified in the program source code. These have now been fixed and the code has been updated to Version 1.

This function is analogous to the AutoLISP getfiled function, however allows the user to select multiple files from several directories. This function will read an Excel Comma Separated Value CSV file and return a matrix list of the cell values, that is, a list of lists where each sublist is a row of cell values.

The code for my Unformat String function has been completely rewritten; the new version should be more robust with far more error trapping. The Unformat String function will remove all MText formatting codes from a supplied string. Updated Open function code and included an extra example demonstrating how the function may be used to open an arbitrary file selected by the user.

Reformatted the code for the Ortho Point function and included a 'Vector Calculus' version of the same function to demonstrate another approach. Revised the Update Titleblock Attributes program to Version 1. This version implements a modification to allow the program to correctly process CSV files generated using OpenOffice software.

Updated the Iterated Function Systems mathematical program to Version 1. This is a complete rewrite of the program, including an update to the Barnsley's Fern program on the main page. Updated Fractal code to remove unnecessary expressions and hence improve performance. Updated the Dynamic Block Functions page and added a Contents section to ease navigation of the various functions.

Added Polygon Centroid function to the Subfunction Library. Also added PolyCentroid function to my set of Geometric Functions. Updated Attribute Functions page to reformat all code and include new function: Added a Contents section to the Attribute Functions page. This function will iterate over the block table and return a list of the names of all anonymous references associated with a supplied block name; armed with such a list, an appropriate ssget filter list may be constructed to include only those references which are relevant to a specific dynamic block.

These functions return the data required to construct a Circle or Arc from three supplied points. A variety of non-dynamic and dynamic test programs are also included. This function will return a unit vector representation of a supplied vector. This version incorporates code to search the working directory and AutoCAD support directories for the XRef source file, should such file not be found at the filepath encoded in the XRef.

This program enables the user to reset all or specific layer properties of XRef dependent layers to match the properties present in the XRef source drawing file. This program offers two commands to allow the user to make a selection of one or more objects, then proceed to construct the unique minimum enclosing circle containing all objects in the selection.

This function will return a list of points describing or approximating a supplied entity, whilst minimising the length of the returned point list where possible. Added Quick Field program to the site. This could be for use in situations in which the user is required to create many fields in a drawing, with each field referencing the same object property, and continued use of the Field Command Dialog can become tedious.

This function requires a single parameter: Added Friends of Lee Mac Programming to the homepage sidebar. If you wish to become a friend of Lee Mac Programming and feel that your site has suitable content which is relevant to my site, feel free to contact me.

Whether or not your site is suitable to become an affiliate of Lee Mac Programming feel free to display my microbar on your site, I appreciate you linking to my site. Added to the Subfunction Library a function to compute the Convex Hull of a set of points.

The Convex Hull is the set of points describing the minimum convex polygon enclosing all points in a given set. The function shown implements the Graham Scan algorithm to compute the Convex Hull - a description of this algorithm including a visual demonstration of the process is included on the program page. Updated Area Label program to Version 1. This update fixes a bug causing the program to crash when Region Objects were selected. Tweaked the code for the Entity List utility.

The program has now been renamed and more accreditation has been included to recognise the author of the program on which the utility is based. Added Testimonials section to the About page. This section includes a few paragraphs from companies who have hired my services, detailing their experiences working with me and my programs. If you or your company wish to share your thoughts about my site, or working with me or my programs in the form of a testimonial, feel free to contact me.

Added Draw Grid program to the site. This program will prompt the user for a number of rows and columns then proceed to dynamically construct a grid composed of Line Entities between two corner points. Added Automatically Label Attributes program to the site. Updated Incremental Numbering Suite to Version 3. This fixes a bug concerning a null variable when an Annotative Text Style is set and the Object type is set to use an Attributed Block.

I have also completely rewritten the program description to give a more complete overview of the program capabilities. Following the popularity of this program on my site, I am currently working on a new version which promises to be smoother, faster and packed with new features. Click here to read about some of the planned new features and see a preview of the new interface.

These functions demonstrate how to convert a text string to various text cases and formats. Included are functions to enable conversion of a text string to Sentence Case , Title Case , or finally, the case of each character in a string may be switched using the Toggle Case function. Copy to Drawing program completely rewritten and updated to Version 1.

When rewriting this program I have significantly condensed the code, reformatted the code style to make the source code more readable and easier to follow, and hopefully improved the performance of the program. Updated Automatic Block Break program to Version 1.

Included in this version is an option to enable or disable the automatic rotation of the block if a curve object is found at the block insertion point. These functions may be used to increment the associated value of a key in an association list, or a nested key as part of a hierarchy of keys in a nested association list.

Such functions are useful when counting the number of occurrences of distinct items in a set, or when counting items which are dependent upon other items. These functions are used in many of my programs: Updated Incremental Array program to Version 1. This version fixes a bug when arraying and incrementing attributes on locked layers. These functions may be utilised to determine whether 3 or more points are clockwise oriented, that is, whether a path passing through the points follows a clockwise direction.

Implemented a facility to allow users to change the width of pages on the site, depending on their preference. Users may select a Fluid , Wide , Medium or Narrow width setting. The default width is Fluid in which the width of the page is set by the width of the browser.

Other settings may be more suitable for various screen resolutions. Added Pad Between Strings function to the subfunction library. This function returns a string of a minimum specified length which is the concatenation of two supplied strings, padded between using a supplied character. Such a function is extremely useful when printing reports or lists to the command-line, and is used extensively in my Dynamic Block Counter program.

Implemented a facility to allow users to alter the size of text on my site, increasing readability. Added Custom Programming Services section to the Home page , for those companies looking to automate repetitive tasks in their procedures via the use of custom programming, potentially saving hours of valuable time.

Added Dynamic Block Counter program to the site. Very similar to my Block Counter program, this program will count all blocks in the current layout of a drawing - be they standard, dynamic, or XRef; generating a report of the quantities at the command-line. Furthermore, for every dynamic block with a Visibility Parameter present, the number of blocks assuming every Visibility State of the dynamic block is detailed in the output report.

These functions allow the user to manipulate the Visibility Parameter of a Dynamic Block. Updated SelectionSet Bounding Box function and test program to make the code more succinct and increase function performance. Updated Steal from Drawing program to Version 1. This version implements a number of changes to improve the program:. Updated Polyline Outline program to Version 1. This version includes a fix for a minor bug relating to incorrect processing of the ending width of the final polyline segment.

Added Polyline Outline program to the site. This program will create one or more LWPolylines along the boundary of a supplied LWPolyline with varying or constant width. Upgraded Update Titleblock Attributes program to Version 1. This version removes case-sensitivity from the 'Drawing Filename' column of the CSV Drawing Register so that both the drawing filename data first column and layout data optional, second column are not case-sensitive. I have furthermore added a GIF animation providing a succinct demonstration of how the program may be used to link a set of drawings to a drawing register.

Updated Copy or Rename Block program to Version 1. This version allows the user to copy and rename External References XRefs in addition to Standard and Dynamic Blocks; retaining any XClips associated with the selected block.

Added Incremental Array program to the site. This program will array a selection of objects, whilst incrementing any numerical content found in objects containing text within the selection.

Added Elevation Marker program to the site. This relatively simple program allows the user to continuously place elevation markers composed of an LWPolyline and Text object at specific points in a drawing. Added Minimum Bounding Box function to the subfunction library. This function uses a brute-force method to determine the minimum rectangular bounding box framing all objects in a supplied selection set. Updated Text Counter to Version 1.

This program will count the number of occurrences of distinct text strings in a selection of objects. In addition to reformatting the code for this program, this updated version includes the ability to count MLeader text and Dimensions with a text override. Annotative text styles have also been taken into consideration when determining the size of the resultant table object. Added Error Message Troubleshooter to the Tutorials page. This page provides a brief guide detailing the possible causes of a selection of common error messages received when executing an AutoLISP program.

Updated my Automatic Block Break program to Version 1. This update implements a complete change to the method used to detect intersections between the inserted block and surrounding objects, improving program performance. The new version of the program will now exclude attributes from the trimming operation, and will trim objects surrounding blocks whose insertion points do not lie on a curve object in previous versions such objects were not trimmed.

Finally, a new command: Added Edit Box subfunction to the site. This very simple function utilises a predefined AutoCAD dialog definition to display an interface allowing the user to input a text string. The majority of the program code has hence been rewritten and reformatted in line with my other more recent programs, and the following enhancements have been incorporated:.

Added String Wrap function to the site. This subfunction will break a supplied string at spaces if possible into a list of substrings, each of a specified length or less. Added set of Bulge Conversion Functions to the subfunction library. These functions demonstrate various methods to convert between the quantities used to define a Polyline Arc segment and those used to define an Arc Entity, with diagrammatic explanations of the calculations used in each method.

Added set of List Box Functions to the subfunction library. Added Centered Measure program to the site. This program is designed to emulate the behaviour of the standard AutoCAD Measure command, however, the resultant measured intervals are centered on the selected object, as opposed to extending along the object from one end. Added SubList function to the subfunction library. This subfunction is the list equivalent of the AutoLISP substr function, and will return the sublist of a supplied list from a specified starting index and with a specified length.

These functions offer the ability to test the collinearity of a list of points, or the coplanarity of four or more points. Added Collinear-p and Perpendicular-p functions to set of Geometric Functions. These predicate functions may be used to test the collinearity of three points, or the perpendicularity of two vectors. Updated Change Block Insertion program to Version 1. This version fixes a reported bug pertaining to the position of the selected block reference not being retained when nested in other blocks in the drawing.

When called with 'CBIR', the program will now update the position of every reference of the selected block nested to any level in all block definitions. Updated Layer Draw Order program to Version 1. This version allows the user to select specific layers for which to change the draw-order from a filterable list of non-XRef dependent layers, whilst retaining the inherent draw-order of entities on the other remaining layers in the drawing.

Furthermore, selected layers may be ordered above or below the other layers in the drawing. A Help button is also included to assist the user. This version increases the height of the layer list to ease use in drawings with a large number of layers.

The updated program also offers the ability to add a wildcard pattern to the list of layers in order to group a set of layers matching the pattern. Added Layer Draw Order program to the site. Similar to the Express Tools' CDOrder program, this program enables the user to control the draw order of all entities on each layer in a drawing, relative to other layers.

Added Parse Numbers function to the site. This function will extract numbers represented in decimal format from a supplied string, returning a list of all numerical values found in the string. These subfunctions demonstrate methods to obtain the true name of a block reference as per its associated block definition in the block collection of the drawing in which it resides.

Added List Difference function to the site. This function will return a list expressing the difference or relative complement of two or more lists, that is, a list of items appearing exclusively in one list but not the other s. Added List Symmetric Difference function to the site. This subfunction will return a list expressing the symmetric difference of two or more lists, that is, a list of items appearing exclusively in each list and not in the intersection of any pair of lists.

Added List Union and List Intersection functions to the subfunction library section of the site. These functions will return a list expressing the union and intersection, respectively, of two or more supplied lists.

This function will return the point s of intersection between a line and a circle. This page contains various functions engineered for manipulating lists in which items appear more than once. Added List Box subfunction to the subfunction library of the programs page. This subfunction displays a dialog with a List Box interface enabling the user to select one or more items from the supplied data set.

Added Strikethrough Text program to the site. This program will create an LWPolyline passing through the centre of selected Text or MText objects to create a strikethrough text effect. Updated set of Intersection Functions to include functions to return the intersection points between objects in a list, two sets, or two lists. Updated Circle Break program to Version 1. Renamed Copy Block program to Copy or Rename Block since the program now provides the ability to copy or just rename a single selected block reference.

Updated Copy Block program once more to Version 1. I realised there was a much easier way to implement the transference of block properties from the source block to the copied block. This approach has consequently removed a lot of excess code from the previous version. Completely rewrote my Copy Block program, which has now been updated to Version 1. This program will allow the user to copy and rename a block which may be dynamic in the working drawing.

The program uses an ObjectDBX Document as an intermediary in which the block definition can be copied and renamed without resulting in a duplicate key in the Block Collection of the working drawing. Updated the Change Block Insertion program to Version 1.

This program was written around the same time if not earlier as my recently updated Add Objects to Block program. Hence this update carries forward many of the changes applied to that program. Updated the Add Objects to Block program to Version 1. I first wrote the code for this program in June of last year and have now implemented knowledge I have since gained to remove some excess code from the program to hopefully streamline the process.

The AddObjectstoBlock subfunction has also been rewritten to require a VLA Document Object parameter, enabling the developer to utilise the subfunction on blocks in arbitrary documents i. Updated the Align Text program to Version 1. Once again, removing excess code to increase the performance of the program and to bring the coding style in line with my other programs. Added Popup subfunction to the site. This function uses the Popup method of the Windows Script Host Shell Object to display a customisable pop-up message box.

Added Permutations function to subfunction library. This recursive subfunction will return a list of all possible permutations of elements in a supplied list. Added Insert Nth function to subfunction library.

This function will insert an item at the n th position in a list. Added Remove Items function to the site. This function will remove items at specified indexes from a list. Added set of Geometric Functions to Mathematical functions page. Added set of Base Conversion functions to demonstrate methods of converting a number between numeral systems using different bases or radixes. Updated Directory Dialog subfunction to incorporate better error trapping and a more concise and structured code layout.

Updated Get All Files subfunction to remove excess code and hence improve performance and readability. Added Remove Once subfunction to the site, a function which enables the developer to remove the first occurrence of an item from a list. Added Apply to Block Objects subfunction to the site. This subfunction will evaluate a supplied function on all objects in a block definition and return a list of the return of each function evaluation. Added Update Titleblock Attributes program to the site.

This program offers the ability to automatically update drawing titleblock attributes with values sourced from a CSV drawing register. When a drawing is opened, a CSV Drawing Register may be automatically read by the program, and titleblock attributes are updated using values corresponding to the drawing entry in the register. Updated Select If subfunction to apply the optional predicate function to the entity selection list returned by the selection function, and also return this entity selection list; this provides the developer with the ability to use other elements in the selection list to validate the predicate function in addition to the selected entity name.

An optional keyword argument in the form of a list of parameters to be supplied to the initget function is also included. Added a selection of Clockwise-p subfunctions to determine whether three points are oriented clockwise; complete with brief explanations of the mathematical methods utilised by each function.

Added 'Jump To' quick navigation bar to sidepanel of site so that visitors can find what they need faster. Updated TabSort program to Version 2. This program was written back in late and so I figured it needed a little updating. In the end, I decided to rewrite the entire program.

I haven't added any new functionality, but the program should be more robust and run smoother than the previous version, with a few bugs squashed in the process. The Find and Replace engine has been completely overhauled, now permitting the user to use self-referencing find and replace terms for example, replacing 'ABC' with 'AB' , and the visual feedback during the find and replace process has been improved significantly. With the vast number of changes to the program, I expect there are still a few bugs lurking, but in my preliminary tests, I haven't found anything as yet.

Added Object Lock program to the site - a purely academic piece of code demonstrating the ability to prevent modification of a set of objects using reactors. Added Associative Centerlines program to the site. This reactor based program enables the user to create associative circle centerlines which will automatically update following modification of the associated circle.

Updated the set of Attribute Functions to remove case-sensitivity from the attribute tag argument and also add a couple of recursive variations to the Vanilla subfunctions. Updated the set of Dynamic Block Functions to remove case-sensitivity from the dynamic block property argument. Fixed a bug found in the Area Label program updated to Version 1. Added Area Label program to the site. This versatile program enables the user to annotate picked areas or selected objects with custom labels and either display the labels and associated areas in an AutoCAD Table Object, or write the data to file.

Added Steal from Drawing program to the site. This program allows the user to import humourously: Added program to allow the user to dynamically align a selection of objects to a selected curve. The user is prompted to make a selection of objects to align to a selected curve, and a base point to use during alignment.

The objects are then dynamically aligned to the curve in real-time, whilst the user may refine the alignment using additional controls offered at the command-line. Home Programs Tutorials Contact About. Welcome to Lee Mac Programming Custom Programming Services Want to harness the power of custom programming to save your company countless hours of repetitive work? A Sample of my Work Finally, I wish all of my readers a very Merry Christmas! A new Force Layer Properties parameter determines whether the program will automatically modify the properties of existing layers in a drawing to match the properties defined in the program.

A new System Variables parameter incorporates the ability to configure any number of system variables when a command is invoked, with the system variables reset to their original values upon completing or cancelling the active command. The Layer Description has also been added to the list of layer properties which may be configured by the program. The program now permits the use of an optional 'Block Name' column in the CSV file from which attribute values are sourced, thus enabling the user to update multiple attribute tags held by blocks of a given block name, residing in a specific layouts within multiple drawings - automatically.

I have now added support for duplicate attribute tags: The Darwin subsystem in macOS is in charge of managing the file system, which includes the Unix permissions layer. In and , two Macworld editors expressed criticism of the permission scheme; Ted Landau called misconfigured permissions "the most common frustration" in macOS, while Rob Griffiths suggested that some users may even have to reset permissions every day, a process which can take up to 15 minutes.

The architecture of macOS incorporates a layered design: For the Apple—Intel transition , it was modified so that developers could build their applications as a universal binary , which provides compatibility with both the Intel-based and PowerPC-based Macintosh lines. Since , Apple has promoted its new programming language Swift as the preferred language for software development on Apple platforms.

This caused much outcry among existing Mac developers, who threatened to abandon the platform rather than invest in a costly rewrite, and the idea was shelved. Carbon was not included in the first product sold as Mac OS X: Because macOS is POSIX compliant, many software packages written for the other Unix-like systems including Linux can be recompiled to run on it, including much scientific and technical software.

Apple and others have provided versions of the X Window System graphical interface which can allow these applications to run with an approximation of the macOS look-and-feel. Applications can be distributed to Macs and installed by the user from any source and by any method such as downloading with or without code signing , available via an Apple developer account or through the Mac App Store , a marketplace of software maintained by Apple by way of a process requiring the company's approval.

Apps installed through the Mac App Store run within a sandbox , restricting their ability to exchange information with other applications or modify the core operating system and its features. This has been cited as an advantage, by allowing users to install apps with confidence that they should not be able to damage their system, but also as a disadvantage due to blocking the Mac App Store's use for professional applications that require elevated privileges.

Apple produces macOS applications, some of which are included and some sold separately. Numerous other developers also offer software for macOS. Tools such as XPostFacto and patches applied to the installation media have been developed by third parties to enable installation of newer versions of macOS on systems not officially supported by Apple. Except for features requiring specific hardware such as graphics acceleration or DVD writing, the operating system offers the same functionality on all supported hardware.

As most Mac hardware components, or components similar to those, since the Intel transition are available for purchase, [] some technology-capable groups have developed software to install macOS on non-Apple computers.

These are referred to as Hackintoshes , a portmanteau of the words "hack" and "Macintosh". On June 6, , Steve Jobs announced in his keynote address at the annual Apple Worldwide Developers Conference that Apple would be making the transition from PowerPC to Intel processors over the following two years, and that Mac OS X would support both platforms during the transition.

Jobs also confirmed rumors that Apple had versions of Mac OS X running on Intel processors for most of its developmental life. A new version of Xcode and the underlying command-line compilers supported building universal binaries that would run on either architecture.

PowerPC-only software is supported with Apple's official emulation software, Rosetta , though applications eventually had to be rewritten to run properly on the newer versions released for Intel processors. Apple initially encouraged developers to produce universal binaries with support for both PowerPC and Intel. Plugins for Safari need to be compiled for the same platform as Safari, so when Safari is running on Intel, it requires plug-ins that have been compiled as Intel-only or universal binaries, so PowerPC-only plug-ins will not work.

Support for the PowerPC platform was dropped following the transition. One of the major differences between the classic Mac OS and the current macOS was the addition of Aqua , a graphical user interface with water-like elements, in the first major release of Mac OS X.

Every window element, text, graphic, or widget is drawn on-screen using spatial anti-aliasing technology. New interface elements were integrated, including sheets dialog boxes attached to specific windows and drawers, which would slide out and provide options. The use of soft edges, translucent colors, and pinstripes, similar to the hardware design of the first iMacs , brought more texture and color to the user interface when compared to what Mac OS 9 and Mac OS X Server 1.

According to Siracusa, the introduction of Aqua and its departure from the then conventional look "hit like a ton of bricks.

To some extent, Apple has used the successful transition to this new design as leverage, at various times threatening legal action against people who make or distribute software with an interface the company says is derived from its copyrighted design. Apple has continued to change aspects of the macOS appearance and design, particularly with tweaks to the appearance of windows and the menu bar. Since , Apple has sold many of its Mac models with high-resolution Retina displays , and macOS and its APIs have extensive support for resolution-independent development on supporting high-resolution displays.

Reviewers have described Apple's support for the technology as superior to that on Windows. The human interface guidelines published by Apple for macOS are followed by many applications, giving them consistent user interface and keyboard shortcuts. The graphics system OpenGL composites windows onto the screen to allow hardware-accelerated drawing.

This technology, introduced in version The Finder is a file browser allowing quick access to all areas of the computer, which has been modified throughout subsequent releases of macOS. It allows for dynamic previews of files, including videos and multi-page documents without opening any other applications. Spotlight , a file searching technology which has been integrated into the Finder since version Its functions are to instantly display all open windows as thumbnails for easy navigation to different tasks, display all open windows as thumbnails from the current application, and hide all windows to access the desktop.

Features introduced in version The operating system then managed conflicting edits and data consistency. In more recent releases, Apple has developed support for emoji characters by including the proprietary Apple Color Emoji font. There are 34 system languages available in macOS for the user at the moment of installation; the system language is used throughout the entire operating system environment.

Until OS X In Mountain Lion and later, this was merged into the Mac App Store application, although the underlying update mechanism remains unchanged and is fundamentally different than the download mechanism used when purchasing an App Store application. Prior to its release, Mac OS X After the immense buzz surrounding Mac OS X Apple has also registered "Lynx" and "Cougar" as trademarks, though these were allowed to lapse.

The "PB", as it was known, marked the first public availability of the Aqua interface and Apple made many changes to the UI based on customer feedback. Following some bug fixes, kernel panics became much less frequent. It featured increased performance and provided missing features, such as DVD playback. It was discovered that the upgrade CDs were full install CDs that could be used with Mac OS 9 systems by removing a specific file; Apple later re-released the CDs in an actual stripped-down format that did not facilitate installation on such systems.

Mac OS X v In addition to providing much improved performance, it also incorporated the most extensive update yet to the user interface. Apple stated that Tiger contained more than new features. The initial release of the Apple TV used a modified version of Tiger with a different graphical interface and fewer applications and services.

On January 10, , Apple released the first Intel-based Macs along with the This operating system functioned identically on the PowerPC-based Macs and the new Intel-based machines, with the exception of the Intel release lacking support for the Classic environment.

It brought more than new features. The single DVD works for all supported Macs including bit machines. New features include a new look, an updated Finder, Time Machine , Spaces , Boot Camp pre-installed, [] full support for bit applications including graphical applications , new features in Mail and iChat , and a number of new security features.

Rather than delivering big changes to the appearance and end user functionality like the previous releases of Mac OS X , Snow Leopard focused on "under the hood" changes, increasing the performance, efficiency, and stability of the operating system. For most users, the most noticeable changes were: It brought developments made in Apple's iOS, such as an easily navigable display of installed applications called Launchpad and a greater use of multi-touch gestures, to the Mac.

This release removed Rosetta , making it incompatible with PowerPC applications. Documents auto-save by default. It incorporates some features seen in iOS 5, which include Game Center , support for iMessage in the new Messages messaging application, and Reminders as a to-do list app separate from iCal which is renamed as Calendar, like the iOS app.

It also includes support for storing iWork documents in iCloud. Application pop-ups are now concentrated on the corner of the screen, and the Center itself is pulled from the right side of the screen. Mountain Lion also includes more Chinese features including support for Baidu as an option for Safari search engine, QQ , It was a free upgrade to all users running Snow Leopard or later with a bit Intel processor. It features a redesigned user interface similar to that of iOS 7 , intended to feature a more minimal, text-based 'flat' design, with use of translucency effects and intensely saturated colors.

Similar to Mac OS X Refinements include public transport built into the Maps application, GUI improvements to the Notes application, adopting San Francisco as the system font for clearer legibility, and the introduction of System Integrity Protection.

Metal also delivers up to 10 times faster draw call performance for more fluid experience in games and pro apps. The major change under the hood is the switch to the Apple File System , which is optimized for solid-state storage used in most new Mac computers.

It is scheduled to be released on September 24, As of July , macOS is the second-most-active general-purpose desktop client operating system in use on the World Wide Web following Microsoft Windows , with a 4. It is the second most widely used desktop operating system for web browsing , after Windows, and is estimated at approximately five times the usage of Linux which has 1. Usage share generally continues to shift away from the desktop and toward mobile operating systems such as iOS and Android.

In its earlier years, Mac OS X enjoyed a near-absence of the types of malware and spyware that have affected Microsoft Windows users. Worms , as well as potential vulnerabilities, were noted in , which led some industry analysts and anti-virus companies to issue warnings that Apple's Mac OS X is not immune to malware. At first, the malware installer required the user to enter the administrative password, but later versions were able to install without user input.

Apple announced an OS X update to fix the problem. An estimated , users were affected. As a devices company, most large-scale Apple promotion for macOS has been part of the sale of Macs, with promotion of macOS updates generally focused on existing users, promotion at Apple Store and other retail partners, or through events for developers.

In larger scale advertising campaigns, Apple specifically promoted macOS as better for handling media and other home-user applications, and comparing Mac OS X especially versions Tiger and Leopard with the heavy criticism Microsoft received for the long-awaited Windows Vista operating system. From Wikipedia, the free encyclopedia. Redirected from Mac OS X. This article is about the current Apple operating system for Mac computers. For pre versions, see Classic Mac OS. For other uses, see OSX disambiguation.

As of macOS Sierra: Rhapsody Developer Release Hera Server 1. This section needs to be updated. Please update this article to reflect recent events or newly available information.

List of Macintosh software. Afterwards, users could either revert to iChat or upgrade to a newer version of OS X Two minor updates, 1. Otherwise, Mac OS X Apple's transition to Intel processors.

List of macOS components. Mac OS X Panther. Mac OS X Tiger. Mac OS X Leopard. Mac OS X Lion. OS X Mountain Lion. OS X El Capitan. Usage share of operating systems. Archived from the original on August 4, Retrieved June 16, Retrieved July 24, Retrieved September 12, Archived from the original on September 27, Retrieved September 28, Event occurs at Archived from the original on September 11, Archived from the original on December 3, Archived from the original on May 26, Archived from the original on July 9, Retrieved June 10, Archived from the original on May 11, Retrieved December 4, Archived from the original on November 16, Archived PDF from the original on July 10, Retrieved November 5, Archived from the original on November 4, Archived from the original on November 10, Archived from the original on October 15, Retrieved October 23, Archived from the original on October 2, Retrieved September 29, Archived from the original on September 28, Retrieved November 19, Archived from the original on November 17, Retrieved November 16, Archived from the original on May 20, Retrieved May 18, Archived from the original on December 21, Retrieved December 15, The New York Times.

The New York Times Company. Archived from the original on May 31, Archived from the original on May 2, Retrieved April 19, Retrieved November 30, Archived from the original on February 26, Retrieved December 20, Archived from the original on June 25, Retrieved April 15, Even Steve Jobs still says "ecks" instead of "ten" sometimes.

Archived from the original on March 18, Retrieved March 20, So, hey, you can say it any way you want; me, I'm showing my age and sticking with X ex. Archived from the original on December 8, Archived from the original on December 14, Archived from the original on April 26, The developers of the Macintosh OS at Apple have always been in this camp [i.

It's why so few applications from the early days of the Macintosh still work Archived from the original on November 26, Archived from the original on April 20, Retrieved February 28, Archived from the original on September 20, Retrieved September 19, Using Mac OS X is like touring a land of fabulous ancient treasures - with a tourist authority that's still busy renovating them, and that hasn't quite completed the infrastructure.

The sights can be breathtaking, but the roads are potholed and incomplete, and sometimes you have to get out and push. There are a few magnificent modern additions - Rendezvous, AppleScript Studio, for example - but in places the modern Apple archaeologists seem to have forgotten their ancestors techniques, and have resorted to inferior contemporary methods such as the Windows bodge of using three letter extensions for identifying the file type. Once you reboot, you'll notice that Apple has abandoned the light and airy Aqua interface for the darker, heavier brushed-metal look of iTunes.

Archived from the original on July 20, Archived from the original on November 25, Archived from the original on May 14, Retrieved May 24, Archived from the original on January 28, Retrieved January 2, Archived from the original on May 25, Archived from the original on January 9, Retrieved January 8, Retrieved January 18, A power user's guide to OS X Server".

Retrieved December 2, Archived from the original on October 24, Retrieved December 6, Archived from the original on November 22, Archived from the original on November 24, Archived from the original on August 11, Retrieved August 15, Retrieved 15 August The best and worst new features".

Retrieved May 19, Archived from the original on November 11, Retrieved November 11, The Unofficial Apple Weblog. Archived from the original on August 28, Retrieved April 9, Archived from the original on November 12, A Bit of History".

Archived from the original on November 7, Archived from the original on October 22, Archived from the original on December 22, Archived from the original on February 21, Retrieved February 8, Archived from the original on February 19, Archived from the original on January 23, Archived from the original on June 5, Retrieved April 4, Archived from the original on December 20, Archived from the original on November 21, Retrieved January 3, Archived from the original on January 31, Archived from the original on January 3, Archived from the original on September 5, Retrieved September 16, Archived from the original on September 16, Retrieved April 16, Archived from the original on February 22, Archived from the original on February 11, Archived from the original on February 16, Official Apple Support Communities.

Archived from the original on April 17, Archived from the original on April 29, Retrieved March 16, Archived from the original on August 31, Retrieved April 8, Archived from the original on April 14, Retrieved March 30, Archived from the original on March 17, Retrieved April 17, Archived from the original on December 28, Retrieved December 27,

It’s mini in a massive way.

Leave a Reply

Set up your new Mac. These simple steps will get you started. Learn how to turn on your Mac, use the setup assistant, and check for software updates. Unmistakably Office, designed for Mac Get started quickly with new, modern versions of Word, Excel, PowerPoint, Outlook and OneNote—combining the familiarity of Office and the unique Mac features you love. Starting at just $ Mac mini is an affordable powerhouse that packs the entire Mac experience into a inch-square frame. Just connect your own display, keyboard, and mouse, and you’re ready to make big things happen.