Programs and Scripts
AutoLISP, VisualLISP and VBA Programs are for use with AutoCAD software.
41 files
-
Alan Excel.lsp
By BIGAL
This file has multiple defuns, that allows read / write of an Excel spreadsheet, it can get put cells, look at properties of a Excel cell. Add blocks as image plus more.
261 downloads
0 comments
Submitted
-
Multi getvals for imperial enter Feet Inches and fractions
By BIGAL
Following on from my other Multi lisps, as I work metric numbers are easy so I have made a enter Feet, inches and fraction when multiple input is needed. It is version 1 and I may add more functionality like prefill. It converts the values to decimal inches, as I saw a need in the housing area. Instead of entering 12' 6" 3/8 you have 3 edit boxes, they canbe left blank for a zero entry. Pressing tab jumps to next box. The number of rows is controlled by the screen size. But the rows can be made closer if needed.
Any questions just PM me.
283 downloads
0 comments
Submitted
-
autodim.lsp
By marko_ribar
This file is about very common request by almost every user of CAD software in search for automatic dimensioning routine... This is one example regarding solving this issue, but many specific questions were asked that this routine can't handle, but solutions were provided by others in quest for helping users that asked for help...
So here is one of my versions that may help in automatic dimensioning architectural drawings (i.e. walls and openings)...
I hope that this version may prove very useful to others, if nothing than for studying the uploaded "autodim.lsp"...
If reference LWPOLYLINES, LINES or ARCS are in some 3D UCS aligned so that they lie in it, while dimensioning their elevation and elevation of dimensions can be changed, so you have to pick firstly some point on any dimension except dimradial and then you should 3DORBIT and apply "(c:autodim-dimtozero)" that is added to the end of "autodim.lsp" to dimradial dimensions to make them all at elevation 0.0 both all dimensions and reference entities that were dimensioned...
HTH.
Regards, M.R. (architect)
10,629 downloads
0 comments
Updated
-
PLINETOOLS and BLOCK routines and MAKE PATTERN (pat) files for ACAD
By marko_ribar
Just a link for topic where PLINETOOLS.ZIP is publicly posted...
Block routines for AutoCAD can be found in this link :
https://www.theswamp.org/index.php?topic=55186.msg594547#msg594547
(you have to be logged at theswamp.org to access web page and download files...)
Make pattern files (*,pat) for AutoCAD/BricsCAD can be found in this link :
https://www.cadtutor.net/forum/topic/70417-make-pat-files/page/4/#comments
HTH.
Regards, M.R.
449 downloads
0 comments
Updated
-
packing-nesting.lsp
By marko_ribar
Here is uploaded "packing-nesting.lsp" file that was discussed in many topics on www (https://www.theswamp.org/index.php?topic=52260.0) among others and I decided to share this version here at cadtutor / download as I think that it may be useful for many CAD users... The main difference between this version and others is that this version is using (vla-getboundingbox) method for determining extends of selected entities that may be anything that lie in 2D WCS...
I hope you'll benefit if you find it useful...
Best wishes in CAD processings and happy coding...
Regards, author : Marko Ribar, d.i.a. (architect)
5,209 downloads
0 comments
Updated
-
BreakObjects.lsp
By marko_ribar
Here is one oldie, but goldie... It's classic by Charles Alen Butler (aka CAB) from www.theswamp.org... After long time I decided to public here also, as I improved it and made it more advanced... I don't know is it OK to double attachments, but this one is little different... You have more command functions (c:...) and little different DCL which you can call it with (c:MyBreak)... Anyway now it's here too, but version is 2.4, since last CAB's was 2.3...
13,706 downloads
0 comments
Updated
-
LC.lsp AC.lsp VC.lsp
By marko_ribar
Small but effective lisp routines for insertion of tabelar presentation of lengths (LC.lsp), areas (AC.lsp) or volumes (VC.lsp) with unit conversions... Tables can use FIELDs as presentation of values...
It could be useful but also comperable with already posted Lengths variant of master Lee Mac...
Anyway here there are for fresh new usage...
HTH.
M.R.
819 downloads
0 comments
Updated
-
mcr.lsp & mcrot+osnap
By marko_ribar
This file is another version of MOCORO command... This one is what I am using from long time ago and it's my favorite from my library...
Play if you find time with this one to find out what can be able to produce... It is simple when you get used to it and you can easily fall in love with this one...
Dedicated topic :
https://www.theswamp.org/index.php?topic=40547.msg481693#msg481693
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/need-help-to-modify-code-quot-rotate-block-for-preview-prior/m-p/12785679/highlight/true#M466304
10,607 downloads
0 comments
Updated
-
dd.lsp dw.lsp ww.lsp
By marko_ribar
Here you can find simple ways to create door, windowed door and windows in floor plans if you are in process of inserting those during drawing plans of house(s)...
Link is here and codes are posted in code tags : https://www.cadtutor.net/forum/topic/78637-block-points/
I hope it may prove useful,
HTH.
Regards, M.R.
3,449 downloads
0 comments
Updated
-
AlignH.lsp AlignHM.lsp AlignB.lsp AlignBM.lsp
By marko_ribar
Hi, it's me again...
I've searched my library of codes and run into Gian Paolo Cattaneo's AlignHatch routine, and guess what : I've founded that I've updated it into 4 variants : AlignH.lsp ; AlignHM (multiple) ; AlignB ; AlignBM (multiple) ... AlignB stands for Align Block...
So I've decided to share all 4 as I think that they could be useful like Gian explained with his animated *.gif files...
Anyway, since it's already public - I mean original version, I've redefined all 4 of them to work and in BricsCAD as BricsCAD don't have (c:cal) function...
That's all from me for today...
I just hope no one won't bother or be mad at me for posting this beautiful routines at download section...
Original link : https://www.cadtutor.net/forum/topic/41902-alignh-align-hatch-on-curved-path
Regards, M.R.
7,071 downloads
-
Trace linear-curve pipe trees (by lengths or by branchings)
By marko_ribar
Hi, all
It's me again...
I'd like to share these 2 routines for linear tree branching... One is for picking start point and branching is performed all to the ends of all linear-curve entities and second one - you enter desired distance and branching is performed from start-picked point to desired lengths... All routines should operate on any type of linear-curve entities : POLYLINE(open), LWPOLYLINE(open), LINE, SPLINE(open), ELLIPSE(arc), ARC, HELIX...
https://www.cadtutor.net/forum/topic/75840-trace-specify-length-on-pipe-network/?do=findComment&comment=600231
https://www.cadtutor.net/forum/topic/76008-auto-route-and-show-lenght-all-branch-of-tree-line/?do=findComment&comment=601097
That's all from me till now...
Regards and take care, M.R.
1,635 downloads
0 comments
Submitted
-
DrawIt.lsp
By marko_ribar
This novelty routine was written by @fuccaro and represent capeabilities of multiple various caledioscope curve creations...
All valuable info you can find at this link : https://www.cadtutor.net/forum/topic/64130-drawing-machine
I hope that you'll enjoy this one too, like snake by Lee Mac...
Regards, M.R.
1,696 downloads
0 comments
Updated
-
snake-LM.lsp
By marko_ribar
This small *.lsp file is novelty program designed to attract user...
It was posted long time ago here : https://www.cadtutor.net/forum/topic/54093-novelty-lisp-program
But my intervernition is allowing it to work and on BricsCAD...
Original Lee Mac's version was tested on AutoCAD before BricsCAD gained popularity, and now little snake works on both platforms...
Regards, M.R.
1,058 downloads
0 comments
Updated
-
TSP.ZIP (Travelling Salesman Problem) - AutoLISP
By marko_ribar
Here are 6 variants of TSP*.lsp...
First one : TSP.lsp - wrapper for grid and rnd disposition - LISP and ObjectARX...
Second one : TSP-ALL.lsp - gathered plenty of subfunctions to pull out best results by permutations of point clouds...
Third one : TSP-cheapestpath.lsp - Similar to TSP.lsp (wrapper) but without choosing for grid and rnd dispositions...
Fourth one : TSP-MMR.lsp - FAST grid and rnd disposition with Evgeniy Elpanov's optimization with 2 factor permutation...
Fifth one : TSP-MMR+ALL.lsp - combination of TSP-MMR.lsp and TSP-ALL.lsp...
Sixth one : TSP-MR-AROUND-CONCAVE.lsp - very nice little routine to make stars from radially disposition of points...
Big thanks to Daniel from www.theswamp.org for providing *.arx and *.brx files for AutoCAD 2025 and BricsCAD V25...
More info and newly added *.arx, *.brx, ... at this link : https://www.theswamp.org/index.php?topic=58049.0
HTH.
M.R.
19,961 downloads
0 comments
Updated
-
Date Picker
By Jonathan Handojo
It's been quite a while since I put up something up here, so I thought I might as well share something that could potentially be useless hours of my work, but a bit useful (hopefully). This could potentially be somewhere already that I could not find, but I'll post it here anyways.
This program would not have been possible had it not been for the function LM:GrText, therefore huge credits to Lee Mac for his amazing function to assist with this program.
For you programmers who mainly deal with dates, here's a subfunction that uses a dialog box to visualize a calendar for the selection of a specific date. Call the function JH:DatePicker to start the function. The function takes in three arguments, which could all be nil for defaults, or the following below:
The first argument takes in a string that represents the title of the dialog box to display. Supplying nil or a blank string will use "Date Picker" by default on the title. The second argument takes in a list of three integers, representing the year, month, and day respectively to highlight on initializing the dialog. Supplying nil will highlight the current date by default. The third argument takes in a function to only allow specific dates in the calendar for selection and disable others. Supplying nil will enable all dates for selection. If a function is supplied, it should comply with the following. The function should take in three integers: the year, month, and day respectively. If the function returns nil, those dates in the calendar will be disabled for selection. If the function returns a non-nil value, those dates in the calendar will be enabled for selection.
In the end, the function shall return a list of three integers, in the form of year, month, and day.
577 downloads
0 comments
Submitted
-
Table to excel.lsp
By BIGAL
This is a simple answer to export a Autocad/Bricscad table to excel, it expects a Title line as 1st line, then data etc . Simply pick the table excel will open and be auto filled, you can save then to what ever name required. Can be used as a library file just (load " Table to excel") as it will run automatically.
1,408 downloads
0 comments
Submitted
-
Multi Radio Buttons.lsp
By BIGAL
This is a dynamic dcl creator for radio button choices, a good replacement for Initget, you just make a list of the button labels, it can be vertical or horizontal. You can use the returned value or the button number for user choice.
Examples are in the top of the code, any questions info@alanh.com.au
1,141 downloads
0 comments
Submitted
-
HIPPED ROOF ROUTINES
By marko_ribar
This ZIP file contains AutoLisp routines for drawing and modelling hipped roofs solutions based on polyline shapes in AutoCAD or BricsCAD...
Basically this is collection of useful things that were already posted on www and are now improved and publiced again with authors additions - edits and new files not publiced already...
Author is not responsible for eventual bugs or failures, but all posted routines were well tested and coded so that errors can occur only very rarely...
As this topic was discussed thouroughly on www, it is considered as challenge for programming and therefore all suggestions and improvements are very welcomed and highly appriciated...
Further developments are possible, but author is not obligated to do so in any way, as this collection is free for using and editing for anyone faimiliar with AutoLisp API for AutoCAD...
In hope that coded improvements and newly coded material are useful and have practical and theoretical benefit,
author will be pleased and thankful for paying attention to this computational process that can help and give insight for better and smarter visualization in finding projecting solutions...
Author : Marko Ribar, d.i.a. (architect)
426,645 downloads
-
Import point file with N X Y Z D
By Trudy
This lisp import point from txt file with № X Y and if have (H and D).
In the lisp can add records and delete records.
command: PointIn
2,102 downloads
0 comments
Updated
-
Attribute Block Finder
By Jonathan Handojo
Have you ever wished that you had a Quick Select tool to find blocks by their attribute tags/values? Well, here you have it.
This LISP routine mimics the Quick Select behavior for the selection of the blocks. Upon issuing the command ABF, the user will be prompted a dialog for criteria inputs. The user can specify the tag/value names and add it to the list for selection. This way, the program can identify whether all the item should match the searching criteria or any one match for the block to be selected.
The searching criteria offers case-sensitivity, wildcard match, and patterns that Microsoft Office offers: equals, begins with, ends with, and contains. This can be set for tags and values alike.
Should you have any ideas, comments, and criticisms, leave them down in the comments below as I look forward to improving my codes/routines. Enjoy!
2,202 downloads
0 comments
Updated
-
Text Operation
By Jonathan Handojo
Hi guys,
Here I present a program that allows you to perform a mathematical operation between a list of numbers parsed from a string, and a user-input number. This program references two different other LISP authors (Lee Mac with "Parse Numbers" and Alan H with "MultipleToggles.lsp") for their great contribution to the community, and I thought it'd be splendid to see how their programs blossom very well in this program. However, I tweaked both functions slightly in order to suit the needs of this program.
Upon invoking the TOP command, the user is prompted for a single object selection. It can be anything that has an editable Text property (except blocks). Using Lee's Parse Numbers, it parses numbers found within that string. These list of numbers are then passed onto the MultipleToggles.lsp dialog by Alan H to prompt for the numbers the user wishes to include for calculation. This process is repeated until the user is satisfied and presses Enter or types "End".
The user is then prompted the operation to perform. I've included 7 operations (built-in AutoLISP functions): Add (+), Subtract (-), Multiply (*), Divide (/), Exponential (expt), Minimum (min), and Maximum (max). After the user selects the logical operation to perform, the user is then prompted for a second number associated with this operation. The program will proceed to evaluate every number that is checked and performs the operation. The original object will then be modified with the new result.
If you are familiar with how to use AutoLISP and defining functions, you can create your own user-defined functions to perform your own logical operation. For example, you can replace the numbers with another, or round down the numbers to some multiple.
I welcome all feedback, criticisms, opinions, and insults that you have and I'll have a look at them. Enjoy.
693 downloads
0 comments
Submitted
-
Multiline Total Length
By Jonathan Handojo
Hi guys,
This seems like it's already posted somewhere, but I'll just throw it out here anyway. This code allows you to calculate the total lengths of multilines segregated by their multiline size/scale.
In order to use the attached LISP code, initiate the APPLOAD command from AutoCAD, and load this file. Once you've done so, you'll notice that you'll have a new command TML.
To use the TML command:
Select all the multilines that you'd like to calculate for its lengths. Click a point somewhere and an MTEXT will be created with the details for the lengths of the multilines for each size.
Feel free to add any ideas, thoughts, criticisms, etc... and I'll try to modify them.
3,246 downloads
0 comments
Submitted
-
Label pline intersected point
By Trudy
This lisp label block intersect point between plines.
Date create: February 2020
Lisp start with command: Int
.
At line 103 change try2 with your block name
The lisp work only with plines,
1.Select pline
2.Write which letter is the line
3.When you are ready pres ENTER
4.Select line
5.Write which number is the line
6.When you are ready pres ENTER
1,675 downloads
-
Align To Direction
By Jonathan Handojo
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 ATD, 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. This can be in one of five ways:
Clicking two points to determine direction Typing "X" - to align direction to X axis of UCS. Typing "Y" - to align direction to Y axis of UCS. Typing "PErpendicularToCurve" - the user specifies a point on any curve, and if a curve is detected, aligns perpendicular to the curve at that point. Typing "ALongCurve" - the user specifies a point on any curve, and if a curve is detected, aligns at the direction of the curve at that point Curve detection is compatible within all sorts of complex objects, such as nested blocks (with dynamic properties), xrefs, tables, dimensions, etc. regardless of depth, and fully functional under all UCS.
Following this, the user can then specify an optional distance that would be used to align the objects, or choose the "Through" option. This makes up an exactly identical feature to the built-in AutoCAD OFFSET command. If a distance is specified, the user will also be specified a point that will be used to calculate the specified distance away from the point.
If "Through" is chosen, the user will then be prompted the point to place the objects. If the distance has been chosen and specified, the user can click on the side that the user wishes to place the objects at that distance from the point.
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.
2,832 downloads
0 comments
Updated
-
Apollonius-problem-solved.LSP
By marko_ribar
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)
881 downloads