Jump to content

# Programs and Scripts

AutoLISP, VisualLISP and VBA Programs are for use with AutoCAD software.

## 18 files

1. #### Apollonius-problem-solved.LSP

Apollonius problem : (PPP, LPP, LLP, LLL, CPP, CLP, CLL, CCP, CCL, CCC)
P - point
L - line
C - circle

Routine finds all CIRCLES that touches or passes (point) as tangent curves to combination of (C - circle; L - line; P - point)

Relevant page on Wikipedia :
https://en.wikipedia.org/wiki/Problem_of_Apollonius

And my video demonstrating my routine :
https://youtu.be/cuo4M9UGZmA

Number of circles demonstrated in video corresponds to Wikipedia table at the end of page...

Regards, Marko Ribar, d.i.a. (architect)

47 downloads

(1 review)

Submitted

2. #### Flatten a 3D Drawing

This AutoLISP file can be used to flatten a 3D drawing. It does this by setting all Z values in the drawing to zero.
Instructions on how to load and run this file in AutoCAD are given in this thread.

111 downloads

(0 reviews)

0 comments

Updated

3. #### Total Length/Area of all Polylines on a Layer

This AutoLISP file can be used to measure the total length or area of all polylines on a selected layer.
Instructions on how to load and run this file in AutoCAD are given in this thread.

221 downloads

(0 reviews)

0 comments

Submitted

4. #### Line Length Calculator

This program will calculate the total length of Lines/Polylines/LWPolylines/Arcs/Ellipses/Circles/Splines with an optional filter.
The Filter may be used to select only those lines that are on a certain layer, or perhaps have a certain linetype or colour.
The results of the calculation can be displayed in an ACAD Table within the drawing, or written to either a CSV or TXT File. The Table-Style may be selected from the drop-down in the main dialog.

Main interface

The main dialogue box allows the user to filter lines by layer, linetype or colour and select the table style. Multiple selected items can filtered. A filter string may be entered to help the user quickly find the filter items that he/she requires.

Options

The options dialogue box allows the user to specify which object types should be included and the type of output, table in the drawing, CSV file or TXT file.

Demo

Function Syntax: LenCal
For instructions on how to run the program see here.
Any comments, criticism and suggestions are welcome. Either PM me directly, or reply to the original thread.

435 downloads

(1 review)

0 comments

Submitted

5. #### Piping/Ducting for HVAC

This is a program made by ASMI and modified by Ronso in this thread. This is a genius free LISP Program and can be used in many trades, but has most usefulness in the HVAC, Mechanical, and Piping industries for drawing 2D CAD designs. It allows you to create Duct, Pipe, and Segmented Duct or Piping with automatic elbow or fittings to accurate dimensions via some initial input at the command prompt.

The programme in action

Function Syntax: DUCT
For instructions on how to run the program see here.

300 downloads

(0 reviews)

0 comments

Updated

6. #### Zoom Extents on All Viewports

A neat little utility that will zoom extents on all your viewports.

Function Syntax: ze
For instructions on how to run the program see here.

72 downloads

(0 reviews)

0 comments

Submitted

7. #### Global Attribute Edit with Layout Selection

This small program works just like AutoCAD's GATTE express tool, with the extra option of choosing which layouts to apply attribute changes to.

GATTE2 is made in lisp and uses CAB's Layout Select program to select which layouts you want. Make sure you place LayoutSelect.dcl in an AutoCAD search path or GATTE2 will not work!

Required Files:
gatte2.lsp
LayoutSelect.dcl
Both in gatte2.zip

See this thread for more details.

Function Syntax: gatte2
For instructions on how to run the program see here.

108 downloads

(0 reviews)

0 comments

Updated

8. #### Multi Getvals.lsp

Multiple Inputs

Multiple Input DCL is a library routine that allows you to create as many lines of input as required (subject to Autocad limits) using a dialouge rather than the command line.

It can be used in most lisp code with just a couple of lines of code, compared to a hard coded solution of around 50+ lines repeated every time you want to use a dcl.

To use just save the "Getvals multi.lsp" to a directory that is included in you Autocad search path. If you need more information how to do this send an email to info@alanh.com.au

It only requires 2 lines of code in any lisp to use.
(if (not AH:getvals)(load "Getvals multi.lsp")) ; check if already loaded else load
(setq yourlist (ah:getvals '("Xfall percent"  "Enter Horizontal scale " 5 4 "100" "Enter Vertical scale" 5 4 "50" "Enter number of decimal places" 5 4 "2")))

There is extra examples in the top of the code about how to use. You can have 1 entry or as many as required subject to screen size.

For complete example contact info@alanh.com.au and we will send some more example code load and a working example "Make furniture table.lsp"

For testing just copy the two lines of code to the command line you will see a "list" of the result. You can then convert if required to a real or integer using Atof or Atoi.

149 downloads

(0 reviews)

0 comments

Submitted

9. #### Multi Radio Buttons.lsp

Multiple Radio Buttons

Multiple Radio Buttons is a library routine that allows you to create as many Buttons of input as required (subject to Autocad limits) using a dialouge rather than the command line.

You can have horizontal or vertical buttons choice is yours

Its use is intended where you want the user to pick one only of preset values it can be a number, a character or a whole word.

It can be used in most lisp code with just a couple of lines of code, compared to a hard coded solution of around 50+ lines repeated every time you want to use a dcl.

To use just save the "Multi Radio Buttons.lsp" to a directory that is included in you Autocad search path. If you need more information how to do this send an email to info@alanh.com.au

It only requires 3 lines of code in any lisp to use.
(if (not AH:Butts)(load "Multi radio buttons.lsp"))         ; loads the program if not loaded already
(if (= but nil)(setq but 1))                     ; this is needed to set default button for user pick
(setq ans (ah:butts but "V"   '("A B C D " "A" "B" "C" "D" )))    ; V is for vertical H for horizontal layout
In the example above the variable ans will have the button string value.

(setq ans (ah:butts but "V"   '("Please choose " "Alpha" "Beta" "1" "2" "No words")))
Pick button 5  ans = "No words"
The program resets the default button to last pick so click Ok, can be removed if not required.

Copy the 3 lines above to your command line to see how it works. There is extra examples in the top of the code how to use in your code.

For programmers it is a replacement for the Initget function.
If you want further information or conversion of your code email info@alanh.com.au

131 downloads

(0 reviews)

0 comments

Updated

10. #### Multiple Toggles.lsp

Multiple Toggles is a library routine that allows you to create as many Toggles of input as required (subject to Autocad limits) using a dialouge rather than the command line.

Its use is intended where you want the user to pick one or more values. It can be used where you want to run a number of functions, pick multiple values to be used.

It can be used in most lisp code with just a couple of lines of code, compared to a hard coded solution of around 50+ lines repeated every time you want to use a dcl.

To use just save the "Multiple Toggles.lsp" to a directory that is included in you Autocad search path. If you need more information how to do this send an email to info@alanh.com.au

It only requires 2 lines of code in any lisp to use.
(if (not AH:Toggs)(load "Multiple toggles.lsp"))
(setq ans (AH:toggs (list "Change blank for yes " "Blocks" "Dimension" "Hatch" "Images" "Viewports" )))
In the example above the variable ans will have the toggle Values 1 or 0 for a toggle clicked on eg ("1" "0" "1" "0" "1") depending on toggle selected.

If you want further information or conversion of your code email info@alanh.com.au

137 downloads

(0 reviews)

0 comments

Submitted

11. #### AreaTester • Calculating areas in AutoCAD

AreaTester is a free plug-in for AutoCAD. It allows you to quickly measure the area in AutoCAD and gives you advanced capabilities to process the results of the calculations in the further workflow (annotate the the areas in the drawing, convert the received data to different spreadsheet formats, etc.).

The plugin calculates not only the areas of enclosed objects, such as a polyline or circle, but also any other shapes formed by the intersection and connection of various types of objects, which include lines, arcs, splines and many other AutoCAD basic objects. At the same time, to calculate the area of any enclosed shape, you only need to point the crosshair of the cursor on it and the area value will be instantly displayed in the context window above the cursor. In addition, the user can create the necessary list of the areas in the main application window for the further workflow. All these areas are summed automatically in the created list. The total result of the summation is displayed at the bottom of the main window of the app.

One of the main features of AreaTester, compared to the standard AutoCAD tools, is the ability to determine the area value of any bounded shape excluding the areas formed by objects that have got inside such an shape (the so-called "islands"). This option significantly simplifies the user’s work on calculating areas in AutoCAD, eliminating the need for additional mathematical operations.
Key features of the AreaTester for AutoCAD free plugin: Automatic calculation of the all areas in a drawing. Annotating the areas directly in a drawing. Drawing boundaries of the shapes in the form of polylines. Exporting the generated list of areas to the clipboard or some convenient data format (* .txt, * .csv). Adding the table of the area list to a drawing.

507 downloads

(2 reviews)

0 comments

Updated

12. #### TotalBoundary • Outline creation tool

TotalBoundary (Pro) is a professional plugin for generating 2D outline drawings of various degrees of complexity with AutoCAD®. The outline drawings it creates are closed polylines marking the boundaries of various types of objects, which can include elementary entities (lines and arcs) as well as complex blocks and curves (ellipses and splines).
What sets the TotalBoundary (Pro) utility apart from AutoCAD's built-in tools (such as BOUNDARY, BPOLY) and from other third-party programs is its high productivity and stability, and also the quality of the outlines it generates. The inbuilt algorithm for detecting spacing (gaps) between neighboring objects allows users to create enclosed outline polylines with exceptional accuracy. The program can process tens of thousands of objects extremely efficiently (in a matter of seconds), flawlessly generating highly complex outline polylines in the selected drawings.

Key features:
The program's powerful engine allows it to build enclosed polylines rapidly along the perimeter of selected drawing fragments. The original drawing needs no advance preparation (removing superfluous unconnected lines, creating an additional enclosed boundary polyline around the original drawing fragment). When the program creates an outline, it automatically identifies and removes gaps in places where primitives meet. The maximum size of these gaps can be set directly by the user. The program replaces splines and ellipses used in defining an outline with true polylines created by means of piecewise linear approximation. The user can also easily set the thickness and color of the polylines the program generates, if required. The program offers an automatic filling (solid hatching) option for the outlines it generates.

264 downloads

(0 reviews)

0 comments

Updated

13. #### SuperBoundary • The superior boundary creation tool

AutoCAD users often have to deal with the BOUNDARY (BPOLY) command, which allows creating boundaries (mostly enclosed polylines) from existing objects forming an enclosed area around the point specified. Unfortunately, its performance as well as the quality and the accuracy of the boundaries (contours) created when run in complex drawings leaves much to be desired. To eliminate these common drawbacks of the standard BOUNDARY command, a project called "SuperBoundary" was implemented.

While BOUNDARY command generates simple contours quite efficiently in relatively simple drawings with a small number of objects on screen, SuperBoundary is intended to provide the user with comfortable workflow in drawings of any complexity. In other words, SuperBoundary is the utility based on the BOUNDARY concept supplemented by super-speed and some super-features.

Key features:
High performance. A powerful program engine allows analyzing and generating thousands of boundaries in seconds. High accuracy. When generating a boundary, all elements larger than the specified tolerance factor are considered. The possibility to create boundaries in areas having significant gaps between adjacent objects. The possibility to quickly detect and generate all the enclosed areas in the selected drawing or its part. Easy and accurate external outlines generation in complex drawings. Polylines generation from spline- and ellipse-based boundaries using piecewise-linear approximation Flexible adjustment of the boundaries generated. These are width, color and layer. Simple and convenient installation with classic installer.

230 downloads

(0 reviews)

0 comments

Updated

14. #### HP BUTTONS.lsp

Thank you for supporting this "HP:BUTTONS.lsp" DCL library.
This routine allows you to create DCL with multiple buttons associated to DCL action_tile list on the fly.
It creates DCL box with single column x nRows of buttons, 'n' depends on the length of the 'action list'
usage:
(hp:buttons title lst width ht)
title = Name caption on top of DCL - string
lst   = quoted list or progn list - list
width = Width of the dialod box - integer
ht    = height of each button - integer
returns nil or any execution (progn ... ) related to action_tile
Save this file into your support folder, append to your startup autoload routine.
In order to optimize the user experience, it allows maxinum 15 rows however you can abjust depends on screen size.
HP:BUTTONS - v1.0
Free LISP by - hanhphuc
email: hanhphuc.diy@outlook.com

30 downloads

• (and 1 more)

Tagged with:

(0 reviews)

0 comments

Updated

15. #### FlowSelect

Here I present you a program that allows you to select a chain of curve whose end points resides anywhere along other curves residing in the same layer.

This inspiration came from selecting one line that represents a flow line from a branch of a hydraulic drain set, and will then proceed to select the whole set of lines for that drain. Put it in other terms, it's similar to selecting a whole tree by simply selecting one of its branches.

18 downloads

(0 reviews)

0 comments

Updated

16. #### EDGENET-NEWEST-LSP-ROUTINES-BY-MR.ZIP

;-------------------------------------------------; ;   EDGENET ROUTINE - TWIN OF COMMAND EDGESURF    ; ;-------------------------------------------------; ;   Author : Marko Ribar, d.i.a. (architect)      ; ;   Copyright (C) - All rights reserved, 11.2019. ; ;-------------------------------------------------; ;   You have permission to copy any part of code  ; ;   with guarantee that this header will be       ; ;   present in material that is modified or       ; ;   partly remained the same as in this routine   ; ;   version. If header is removed, you are        ; ;   responsible to mention author and link from   ; ;   where the code is publiced with explicit      ; ;   mark that material is copyrighted and is not  ; ;   for further distribution or selling or base   ; ;   for gaining any material or any other benefit ; ;   than for learning and study and eventual      ; ;   improvement of its present functionality.     ; ;-------------------------------------------------;
edgenet-newest.lsp is routine that works similar to command EDGESURF... The difference between EDGESURF and EDGENET-NEWEST.LSP is that LSP version makes Polygon Mesh that is with softer and smaller magnitude lofting approximation... If you wish you can check several routines packed in ZIP and find the one you prefer... They are little slower than built-in EDGESURF, but nevertheless IMHO they are good examples of how this task can be solved from LISP perspective... As always I am opened for any input and your versions (if you have and willing to share)...

Regards, Marko Ribar, d.i.a. (architect)

26 downloads

(0 reviews)

0 comments

Submitted

17. #### Block Overkill

Here I give you guys a program that will either delete duplicate blocks or move them to a user-input layer that could be accidentally placed on top of another.
The determination to do such program in place of the OVERKILL command is to remove unwanted dynamic blocks with different visibility parameters, leading to blocks having an "undefined name". This leads to the original OVERKILL command to fail. As such, I introduce you this program that catches all types of blocks (excluding xrefs).

Be careful that it delete blocks matching all the criteria below:

The blocks in comparison share the same insertion point through a given tolerance. The blocks in comparison share the same effective name. The blocks in comparison share the same effective scale.
So if the three criteria above match while the rotation of the blocks differ, it will still be deleted.

I've had many occasion on using block counting routines that reports excessive values for this very reason. This routine has helped me fix those nasty errors that would otherwise be almost, if not entirely, impossible to detect with the human eye. As thanks for helping me solve many problems that I've posted in the LISP forum, this is the least I can offer, so I hope it's of some use.

More details on this forum.

Type BOVERKILL to start command.

I welcome all suggestion, feedbacks, comments, and criticisms you have. Feel free to add your ideas, and I will try to improve them.

Enjoy.

54 downloads

(0 reviews)

0 comments

Updated

18. #### Align To Direction

Are you someone who likes to get details in your drawings done neatly? Then look no further! Here I present you a program that does just that.

This program aligns selected objects to any direction the user wants to align them to. This provides that the objects possess at least one of the following properties:

Insertion Point Text Position Text Alignment Position Center
Upon issuing the command ALTODIR, the user will be prompted a selection of objects without any filters, which the program will then filter based on the above (and xrefs excluded). The objects to be aligned will then be highlighted, and the user will be prompted a direction relative to the UCS. The user can then specify a point to denote the location for all the objects to be aligned.

Objects that I've successfully worked with this program include:

Tables Blocks OLE/Raster images Dimensions Texts and MTexts (regardless of alignment) Circles
This program will work under any UCS settings provided that the objects to be translated lies in the same XY plane as the UCS.

32 downloads

(0 reviews)

0 comments

Submitted

×
×
• Create New...