Jump to content

Search the Community

Showing results for tags 'lsp'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • CADTutor
    • News, Announcements & FAQ
    • Feedback
  • AutoCAD
    • AutoCAD Beginners' Area
    • AutoCAD 2D Drafting, Object Properties & Interface
    • AutoCAD Drawing Management & Output
    • AutoCAD 3D Modelling & Rendering
    • AutoCAD Vertical Products
    • AutoCAD LT
    • CAD Management
    • AutoCAD Bugs, Error Messages & Quirks
    • AutoCAD General
    • AutoCAD Blogs
  • AutoCAD Customization
    • The CUI, Hatches, Linetypes, Scripts & Macros
    • AutoLISP, Visual LISP & DCL
    • .NET, ObjectARX & VBA
    • Application Beta Testing
    • Application Archive
  • Other Autodesk Products
    • Autodesk 3ds Max
    • Autodesk Revit
    • Autodesk Inventor
    • Autodesk Software General
  • Other CAD Products
    • BricsCAD
    • SketchUp
    • Rhino
    • SolidWorks
    • MicroStation
    • Design Software
    • Catch All
  • Resources
    • Tutorials & Tips'n'Tricks
    • AutoCAD Museum
    • Blocks, Images, Models & Materials
    • Useful Links
  • Community
    • Introduce Yourself
    • Showcase
    • Work In Progress
    • Jobs & Training
    • Chat
    • Competitions


  • Programs and Scripts
  • 2D AutoCAD Blocks
  • 3D AutoCAD Blocks
  • Images
    • Backgrounds

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...

  1. Hi, I have thousands of drawings. They are all similar to This.dwg one. My final goal is to merge them into one kml file.. This would take months to do it one by one. If I have the right lisp to automate this in one drawing, then I can use script to run that lisp over other drawings. To reduce the result file size, I decided to keep only the green polyline in the center of the drawing(which matters the most): (defun C:foo ( / varf ins str) ; Selecting Polyline (setq varf (list '(-4 . "<OR") '(0 . "LWPOLYLINE") '(-4 . "<AND") '(0 . "POLYLINE") '(-4 . "<NOT") '(-4 . "&") '(70 . 80) '(-4 . "NOT>") '(-4 . "AND>") '(-4 . "OR>") (cons 62 3) ) ) (sssetfirst nil (ssget "_X" varf)) ; Inverting selection (if (ssget "_I") (progn; then (sssetfirst nil) (command "_.select" "_all" "_remove" (ssget "_p") "") (sssetfirst nil (ssget "_p")) ) (prompt "\nRequires pre-selection."); else ) ; Delete Selection (command "_.erase") ; And This is how I insert Drawing Name (and (or (> (getvar 'DWGTITLED) 0) (alert "Save the drawing then try again!") ) (setq ins (getpoint "\nChoose Insertion Point: ")) (setq str (entmakex (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(100 . "AcDbMText") (cons 10 (trans ins 1 0)) (cons 40 0.8);Text height (cons 7 "STANDARD");Text style '(1 . "") ) ) ) (vla-put-textstring (vlax-ename->vla-object str) "%<\\AcVar Filename \\f \"%tc4%fn2\">%}" ) ) ) Now these are what I'm looking for: - I don't want to pick the insertion point manually, need to insert field inside or over selected polyline - after inserting field text, I want to explode the text. to maintain drawing name after merge. - adding a condition to check the process, if anything goes wrong, insert that drawing name at (0,0,0). this way I can track that file to check it manually. Thank you in Advanced.
  2. Hi guys i need some help i am trying to find the actual value of a dimension. for example i have a line at 0 deg and a line at 32 deg. i create a angular dimension between them which will read 32 deg in the dimension. i am trying to get the actual "32" value from the dxf data but cant seem to find it,all i am getting is the return of (2 . "*D285"). am i looking at this wrong? Here is section of my code i need help with: (while (command "_dimangular" pause pause pause)) (progn ;Start program (setq dim(ssget "_L")) (setq dimn (ssname dim 0)) (setq dimnp (entget dimn)) (setq ang (nth 16 dimnp)) ;this returns the (2 . "*D285") where i think the value should be stored or am i wrong????? the rest of the code i have already done. i did not post it here.....
  3. Eons ago I wrote some lisp programs for a MFG company with a small engineering dept. Although modern CAD programs have "replaced" most of my work they recently contacted me about a specific LISP routine I wrote to help them assign part numbers in various categories. They still maintain an OLD PC with an OLDER version of AutoCad just to use this LISP routine. Basically inside a drawing the operator selects the command "newpart" fills in the required information (9 categories) and then the LISP routine opens the "newpart.htm" located on the network and appends the data to an existing htm file so it then becomes readable by everyone in the company from marketing to purchasing... "just look at the web page" It's was a great idea at the time because anyone on the network with a browser has read access to the files. Now to meet compliance requirements with a new contract, the OLD software MUST be removed or replaced with something that meets requirements. I addition they have moved onto a new CAD package that does not support LSP I don't do programming anymore so I am looking for options be it batch, Visual Basic, that could accomplish the same end result. I am so far out of the loop I don't even know enough to even ask the rights questions concerning "new" programming languages when trying to find someone to write a "new" program for them Thanks
  4. Hello. I am using an old acad.lsp file with custom modified commands. After years of using it without any problems, it suddenly stopped working. This happened on two different computers with different versions of autocad (17 and 18) and without any software or windows updates. AutoCAD prompted me to change "command" to "command-s" in the lisp file and it resumed working. The problem now is that whenever i open a .dwg file it keeps asking me if i want to save the file on c: drive. I would like this to stop. Does anybody know if this is a lisp file issue and how to solve it?
  5. Hi all, this is a cutout of a dcl file with toggle boxes. How can I predefine the selection "lathe machine"? (So that this checkbox is always checked). Currently, the selection that was previously selected is always applied. With radio-buttons it works with "value=1", but not in this case. : toggle { key = "tool"; label = "lathe machine"; value = "1"; } Thanks so far.
  6. Lippens Infra

    Slopes for 3D model

    Hello, I have a file attached. It's the design for a yard. I want to annotate the slope of the planes. I could draw a line and annotate the slope of that line as well. Is there a lisp program able to calculate the slope for planes/lines drawn in 3D? Thanks in advance. enveloppe ontwerp met afloop naar straat1.dwg
  7. TL;DR I need to connect blocks using attribute values. I created multiple blocks and attribute with different properties (Annotative, scaled attribute text to 1:50, Upside down, Backward, Invisible, Constant, Verify, Preset, Multiple lines, Lock position, Visibility parameters) Request 1: I need to request for help to create a lisp for connect with *lines between attribute definition values since their attribute insertion point or block insertion point, ignoring all properties, included caps, but Visibility parameters not should be ignored, all this just of selected blocks (dynamic blocks, regular blocks, nested blocks). (check dwg attached for more details) Request 2: Add an option for let me choice if I need to ignore just specific attributes tag. (in the attached drawing I ignored between attributes values “tipo” and “nivel”) Request 2: Add an option for let me choice if I need connect just specific attributes tag. (in the attached drawing I connected between attributes values “codigo” and “alimentador”) Request 3: Add an option for let me choice for connect blocks insert point or attribute definitions insert point (check dwg file and images for more details) PD: attached blocks with the name “connect attributes.dwg” PD: if possible use DCL or OpenDCL for the GUI. connect attributes.dwg
  8. I've been trying to implement an error handler into the attached lisp, but i'm just too stupid to get it to work. I'm trying to get the lisp to reset the coordinate system (UCS) and Osnap setting to where they were before executing the program. If anyone could help me out with this, i would highly appreciate it. GEO9_RTOS_2dec.LSP
  9. Hello, I have this very helpful LSP that will add the current annotative scale and delete all other scales for any type of annotative object. Is it possible to modify this LSP so that all objects in the workspace can be selected and this same function can be run instad of doing each object one at a time? CH-ASC.LSP
  10. Hello, is there a way to combine the move command with the M2P or FROM command modifiers using LISP? I would want these to be two separate commands. Ideally I would like to program F1 to do _m2p during an active line command and F2 to do from during an active line command... but I'll settle for a lisp that combines each with the move command since I'll be doing that most frequently. Thank you in advance! P.S. here is code that will draw a line starting at M2P.. sort of a start.
  11. This is a very simple one.. I am so inexperienced with writing LSPs. This command adds the current annotative scale for the object. Instead of retyping it I want to assign it to a shorter keyboard shortcut such as "ASA" _AIOBJECTSCALEADD
  12. Hello, new user here! I have an old LSP that I've always run with a VBE that takes a portion of the file name and inserts it into an attributed block inside all the drawings in a directory that are named accordingly. Example file name: DCA-ABC-123456789-E001 R0 (drawing number).dwg Each set of characters in the file name will change from project to project as they are project based. We have a DCA block that is called "dca_stmp" that we use in order to create change paper for clients which they then incorporate into their drawings of record. Many times, we have hundreds of these and there are times that we have to re-number them if someone adds a drawing to the package because they're supposed to be in Alpha-Numeric order by drawing number. It is TERRIBLE to have to re-number them all manually by file name AND inside the drawing stamp, so we try to leave them as "DCA-WEH-112177115-EXXX R0 (drawing number).dwg" until the latest possible point in the project. It worked great until we jumped from AutoCAD 2012 to 2016 and now it runs as if it is making the changes, saves the drawings, but doesn't change the block. I have attached the LSP, but it will not allow me to upload the VBE... can anyone help me figure out what I need to do to make this work again?? It has been MANY years since I took classes on LSP and my knowledge is so basic that I can't figure out what is wrong much less how to fix it. FileNameToDCA.lsp
  13. Hello, Does anyone know of a LSP out there that will number the selection below properly without editing each piece of text?
  14. Hello, My manager made this LSP file for me and it doesn't work and we are both not sure why. Seems correct to me. How it works: Creates the E-Anno-Note layer, otherwise makes it current, then creates an MLeader (to avoid creating leaders on incorrect layers). (DEFUN C:NN () (setvar "cmdecho" 0) (if (not (tblsearch "layer" "E-Anno-Note")) (command "-layer" "n" "E-Anno-Note" "c" "2" "E-Anno-Note" "")) (command "-layer" "m" "E-Anno-Note") (COMMAND "mleader") (princ) ) Thanks!
  15. Okay, here's the deal. I need a LISP that calculates phase balance which is basically percent error between two numbers in the following form. However, we need it to take a selection and find the largest number, smallest number and make the following calculation, regardless of the numbers in the set. (Big - Small)/Big * 100 = X.X% Currently, we use an ADD.LSP which takes a selection and adds up the numbers. I am not familiar enough with the programming in order to take this relatively simple arithmetic and make it a working LSP. I have attached the ADD command if anyone is able to do something like this. add.LSP It should work by making a selection, then prompting the user to select where to place the phase balance (By adjusting the selected text to the updated value X.X%).
  16. Dear friend please help me. I have got XY coordinate label bt this was not dynamic and also it wat leader only and not scaled the text as required. So anybody can make it dynamic label for XY coordinate. Just like as multileader????
  17. First of me, Hi to everyone! Glad to be part of this. I am pretty new to this forum so as to AutoCad software, I am GIS maniac. Currently working on some urban plan and my company need to calculate area of existing polygons, hatches and polylines. A lot of people worked on same project and that is why we have different types of geometry. I can manually change all of this to closed polylines but there is over 2000 polygons and hatches. Is there any lsp which can calculate all types of geometry? I tried many but they are just calculating closed polylines. Thank you very much and sorry for bad english
  18. Hi All. This is my second attempt to post this since somehow I was logged out automatically. Thankfully I had most of this saved via a notepad file. Now down to business: I'm good with CAD, but when it comes to LISP, i'm a complete beginner. My boss/manager has asked me to create a LISP routine that will be run with a command from the command line and will receive user input to compare to ordinate dimensions within the drawing. I've been on this for two days, trying to wrap my head around even the basics and I can tell you my brain hurts. Programming of any sort is not my forte, i'm still struggling with getting HTML down. Anyways, the reason why my boss would like this is because sometimes our drawings have from a dozen to 50 or so ordinate dimensions and it's tedious to go and check them all against a point. My boss has given me free reign on how to design this sucker, but I'm stumped at how to program it as I'm a newbie. Below is what the lisp routine should be able to accomplish. The idea for the LISP is this: 1.) Load the lisp up and have it start with a defun C: command. 2.) have the user pick an 'origin' point for comparison (because we don't always use 0,0,0). 3.) the lisp takes this point and stores it. 4.) It scans the drawing for Ordinate Dimensions only. 5.) It compares the origin point of the user to the origin point of the ordinate dimensions. (I figure this would be the endpoint closest to 0,0,0. So for instance, if we have 15 dimensions, there are 30 endpoints. The 15 closest endpoints would be the ones that are compared to the origin point of the user.) 6.) It creates a new layer called DIM_WRONG [or whatever] and makes the layer RED. 7.) It draws attention to the incorrect ordinate dimensions (the ones scanned and compared to the user's origin point) by drawing either a red box around the dimension or a rev cloud. these rev clouds are placed on the DIM_WRONG layer, with the layer set to not plot. This way we can easily check between 15 and 30 and more ordinate dimensions with a few clicks. There would be a tolerance in the comparison, up to 1/64 of an inch tolerance. If the ordering steps needs to be adjusted because of programming structure, so be it, it just needs to compare those ordinate dimensions with a user assigned origin point, entered by keyboard or mouse. Again, I'm a beginner with Lisp and I've been trying to get segments done and have been only able to get 4 of the easy ones done (from that list). I've never been good at programming with anything. Any help would be vastly appreciated and I thank you for any advice/knowledge that you can bestow.
  19. Morning All, Habitual LT user here - so no lsp before. Been given 2 month access to a 2014 license to get this job out of the door. I'm trying to create a lsp that grabs the content of a drawing, selects objects by layer and groups them using the layer name as the group name. I've found a couple of lsps that do some of what I want so I've been pulling them to bits and trying to create what I need, but I'm stuck. I've managed to get to a point where I've got a list of the layers and start the group command but I cant get the group names to work. I'm not demanding a full lsp, but would very much appreciate some guidance on how to approach this one. I've gone through the tutorials on Afralisp and some of the other threads but I just don't seem to be making any progress. There's 41 layers in most of these drawings, I don't really fancy doing it manually... PS I cant access any of Autodesks online help as apparently our IT guys have classified it as an "unsafe site".
  20. Hi Everyone, I've been lurking here for over a year now and have found lots of useful information (thanks!), but I've finally done something that doesn't seem to have been solved before, and that there may be no easy answer to. We use a complicated system of layer states, views, and freezing and unfreezing layers to set up different print states to create a package of drawings. It is sort of a wacky use of AutoCAD, but this is due to the necessity of showing an opera as it progresses through time (Act 1, Act 2, etc.). We have hundreds of operas in our repertory and this won't be changing anytime soon. Anyway, as it stands now, there is a .txt file that lives in the same directory as the file containing the scenery that is manually created so that print scripts can work. I am attempting to turn that .txt file into something that lives in a dialog box for ease of use and cleanliness. The data will be stored in a mulitline attribute in a block. I've spent a fair amount of time creating a dialog box that changes size dynamically, allows for reordering of printouts and having multiple scenery layers appear on the same printout. My only real issue (which is of course a big one) is that if you add too many rows, the dialog box becomes too big to fit on the screen. What I would love to be able to do is to make the whole box (except the buttons at the bottom) scroll up and down so that the height of the dialog box is fixed to the smallest screen we use here (~800 pixels). I've spent a little time with OpenDCL but find it a bit byzantine, and I don't know any .NET or VBA so either of those solutions will involve me learning some new programming languages--not necessarily a deal breaker but not ideal either. I'm attaching a .dwg with the attributed block and the .lsp file for anyone who wants to take a look. The command c:met_plot_2015 will create and open the dialog box, which you can then manipulate. I appreciate anyone who read to the end of this post, and any help you can provide. Thanks, Eric P.S. The printing function doesn't actually work yet; that's next on the list once I solve this. specialblock.dwg BETTERPRINTING 5.LSP
  21. I’d like to know if you have one LSP that links points with some 3D POLY LINE between then. Something like an outline, just like this: It is link points given by coordinates. I upload from a device the coordinates and import points to AutoCAD, but I have to link them like the picture. It doesn't have an order, but the 3d lines are only the outside. It will be good if I can select them to link or even link by layer, because I work with tunnels and each point represents the edge of it.
  22. highrez2

    Lee Mac Junky

    Lee helped me out a while ago, Thanks Lee. now I find myself pushing further how do I modify or add to his code "ObjectDBXWrapper" to select sub directories?
  23. I am using ACAD 2013. I am new to using lsp files. Is it possible to combine 3 lsp routines that I regularly run to prepare files for a different software program? Is it possible to use the combined lsp routine to batch process multiple files in a folder? Is it possible to modify the 1st code to open the new file automatically? ;changes layout to model space, appends filename, option to open new file (defun c:L2M ( / BASE LST OLD_DIA) (setq old_dia (getvar 'FILEDIA) base (strcat (getvar 'DWGPREFIX) (vl-filename-base (getvar 'DWGNAME))) ) (setvar 'FILEDIA 1) (setq lst (layoutlist)) (foreach l lst (command "_.ctab" l "exportlayout" (strcat base "-" l) ) ) (setvar 'FILEDIA old_dia) (princ) ) ;Sets linework to by layer, layers to color 7 white, detaches external references (defun c:set7 () (setq uecho (getvar "cmdecho")) (setvar "cmdecho" 0) (command "setbylayer" "al" "" "n" "y") (command "-layer" "c" "7" "*") (command "-xref" "d" "*") (setvar "cmdecho" uecho) (princ) ) ;Justify text (defun c:BL (justify title / ss) (princ (strcat "\nSelect *Text to " title " justify: ")) (if (setq ss (ssget "_:L" '((0 . "ATTDEF,MTEXT,TEXT")))) (command "_.justifytext" ss "" justify) ) (princ) ) (defun c:JL (/) (_justifyIt "_ML" "Middle Left")) (defun c:JC (/) (_justifyIt "_MC" "Middle Center")) (defun c:JR (/) (_justifyIt "_MR" "Middle Right")) (defun c:BL (/) (_justifyIt "_BL" "Bottom Left")) (defun c:BC (/) (_justifyIt "_BC" "Bottom Center")) (defun c:BR (/) (_justifyIt "_BR" "Bottom Right")) (defun c:TL (/) (_justifyIt "_TL" "Top Left")) (defun c:TC (/) (_justifyIt "_TC" "Top Center")) (defun c:TR (/) (_justifyIt "_TR" "Top Right")) I don't know who the code authors are to give credit.
  • Create New...