Leaderboard
Popular Content
Showing content with the highest reputation since 06/17/2026 in Posts
-
Hi All, apologies for arriving late to this discussion. @SLW210 is right about the decline in forums before AI. There was a big shift away from forums like this one towards social media platforms and it does seem that most of us left here are Boomers. However, despite the decline, I have noticed that in recent years, it has plateaued and although number of visitors are significantly lower than they were (say) 15 years ago, they are no longer declining but seem stable. Traffic here is probably around 10% of what it was back in the day. Currently, new sign-ups to the forum average around 100 per month and that has been pretty stable for the past few years. So that's the background picture. AI has made a difference only in that all the data on this forum and others has now been well and truly scraped and is still being scraped by more and more bots. The graph below shows traffic to this site since January. You can see three massive spikes - those are all bots, scraping content. The result is that most people don't need to visit the site because the scraped content is being provided to them via AI agents. You might think that would result in even lower traffic to the site but that's not what I'm seeing. My guess is that the sort of visitors who prefer to use AI results rather than going to source are the same ones that stopped visiting forums and shifted to social media. So what remains is a solid core of Boomers who genuinely care about community and respect the skill and experience of others. Fortunately, there's enough of us around to keep things going. The future? It's very difficult to predict but my view is that most people are becoming tired of the toxic nature of social media and will likely learn to value the genuine human interactions and sense of community that forums can provide once they realise that AI is just another tool and not a friend that can't always be relied upon. So I'm predicting a return of popularity in forums for special interest groups. As for AutoCAD, I don't really have a good understanding of its popularity any more. It's a long time since I used it professionally (almost 10 years) but I'm not aware that it's being replaced by anything else. Gemini tells me that AutoCAD retains a 38% global market share, so I guess it's still relevant and that this forum is therefore still relevant.5 points
-
Here's a simple Lisp routine for obtaining data from an integrated GNSS receiver. It works by sending a small script to PowerShell, which writes the data to a file named 'pos.txt' saved in the Documents folder. I've only tested it on a single device, but it should work on any device equipped with an integrated GNSS receiver. The data is stored in latitude/longitude format, so each user will need to transform those coordinates into the desired coordinate reference system. To stop logging the data, simply close the PowerShell window This is just a starting point for anyone who wants to adapt it to their own needs. ;************************ G L A V C V S ************************* ;************************** F E C I T *************************** ;;;THIS CODE STARTS GNSS RECEIVER AND WRITES DATA TO A FILE CALLED 'pos.txt' IN THE My Docments FOLDER (defun startGNSS (/ cmd sh dir cad ur) (setq dir (VL-REGISTRY-READ "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" "Personal" ) ) (if (setq sh (vlax-create-object "WScript.Shell")) (progn (if (and (or (setq ur (getint "\nUpdate rate (milliseconds) <1000>/2000/3000/5000 : ")) (not ur)) (member ur '(nil 1000 2000 3000 5000))) (progn (setq cad (strcat "Add-Type -AssemblyName System.Device" (chr 13) (chr 10) "# 1) Conectar con AutoCAD abierto" (chr 13) (chr 10) "$outFile = \'" dir "\\pos.txt\'" (chr 13) (chr 10) "try {" (chr 13) (chr 10) " $acad = [Runtime.InteropServices.Marshal]::GetActiveObject(\'AutoCAD.Application." (itoa (atoi (getvar "ACADVER"))) "\')" (chr 13) (chr 10) "}" (chr 13) (chr 10) "catch {" (chr 13) (chr 10) " Add-Type -AssemblyName System.Windows.Forms" (chr 13) (chr 10) " [System.Windows.Forms.MessageBox]::Show(" (chr 13) (chr 10) " \'Por alguna razón no se pudo conectar con AutoCAD mediante COM.\' + [Environment]::NewLine + $_.Exception.Message," (chr 13) (chr 10) " \'GNSS-}AutoCAD: Error de conexión\'," (chr 13) (chr 10) " [System.Windows.Forms.MessageBoxButtons]::OK," (chr 13) (chr 10) " [System.Windows.Forms.MessageBoxIcon]::Error" (chr 13) (chr 10) " )" (chr 13) (chr 10) " exit" (chr 13) (chr 10) "}" (chr 13) (chr 10) "# 2) Crear y arrancar receptor de ubicación Windows/GNSS" (chr 13) (chr 10) "$w = New-Object System.Device.Location.GeoCoordinateWatcher" (chr 13) (chr 10) "$w.Start()" (chr 13) (chr 10) "# 3) Bucle continuo: comprobar estado, obtener posición y escribir en USERS5" (chr 13) (chr 10) "while ($true) {" (chr 13) (chr 10) " $doc = $acad.ActiveDocument" (chr 13) (chr 10) " $status = $w.Status" (chr 13) (chr 10) " $p = $w.Position.Location" (chr 13) (chr 10) " $time = Get-Date -Format \'dd-MM-yyyy HH:mm:ss\'" (chr 13) (chr 10) " if ($status -eq \'Disabled\') {" (chr 13) (chr 10) " $line = \'*** GNSS ERROR: GNSS disabled ***\';;;;;;\"" (chr 13) (chr 10) " }" (chr 13) (chr 10) " elseif ($status -eq \'Initializing\') {" (chr 13) (chr 10) " $line = \'*** GNSS ERROR: Searching... ***\';;;;;;\"" (chr 13) (chr 10) " }" (chr 13) (chr 10) " elseif ($status -eq \'NoData\') {" (chr 13) (chr 10) " $line = \'*** GNSS ERROR: Without data ***\';;;;;;\"" (chr 13) (chr 10) " }" (chr 13) (chr 10) " elseif ($p.IsUnknown) {" (chr 13) (chr 10) " $line = \'*** ERROR GNSS: Unknown position ***\';;;;;;\"" (chr 13) (chr 10) " }" " else {" (chr 13) (chr 10) " $line = $p.Latitude + ';' + $p.Longitude + ';' + $p.Altitude + ';' + $p.HorizontalAccuracy + ';' + $p.VerticalAccuracy" (chr 13) (chr 10) " }" (chr 13) (chr 10) " try {" (chr 13) (chr 10) " Set-Content -Path $outFile -Value $line" (chr 13) (chr 10) " }" (chr 13) (chr 10) ;;; " catch {" ;;; (chr 13) ;;; (chr 10) ;;; " Write-Host 'ERROR escribiendo...: $($_.Exception.Message)'" ;;; (chr 13) ;;; (chr 10) ;;; " }" (chr 13) (chr 10) (strcat " Start-Sleep -Milliseconds " (if ur (itoa ur) "1000")) (chr 13) (chr 10) "}" ) cmd (strcat "powershell.exe -NoProfile -ExecutionPolicy Bypass -NoExit -Command \"" cad "\"" ) ) (vlax-invoke-method sh 'Run cmd 1 :vlax-false) (grtext -1 "*** GNSS writing file \'pos.txt\' ***") ) (alert "ERROR: \nUpdate rate should be 1000, 2000, 3000 or 5000\n\nExiting...") ) (vlax-release-object sh) ) ) )4 points
-
@masao_8 Here is a solution for a simple single selection add and SHIFT-Select to remove. Perhaps this will give you a basis for starting: ;; Function to do a simple Select/Deselect using grread. ;; By PJK - 6/16/2026 (defun pjk-grread-Select (/ done en grl grc grv ss) (if acet-load-expresstools (acet-load-expresstools)) (setq ss (ssadd)) (princ "\nSelect to add objects or SHIFT+Select to remove from selection set: ") (while (not done) (setq grl (grread T 15 2) grc (car grl) grv (cadr grl) ) (cond ((= grc 3) (if (setq en (car (nentselp grv))) (if (acet-sys-shift-down) (progn (if (ssmemb en ss)(ssdel en ss)) (redraw en 4) ) (progn (ssadd en ss) (redraw en 3) ) ) ) ) ((= grc 2) (setq done (if (vl-position grv '(13 32)) T nil)) ) ((= grc 25)(setq done T)) ) ) (if (> (sslength ss) 0) (progn (foreach i (mapcar 'cadr (ssnamex ss))(redraw i 4)) ss ) nil ) )4 points
-
The lat long convert is out there I have used one for here in AUS, the formula behind it is the same I think for any where in the world, but inside it is numerous values that depend on your location in the world, something like 8. values can be like 0.9987999 scale factor. So we need @PGia to tell us where she/he is in the world and what zones are relevant. Will do a quick look for the formula.3 points
-
Thanks, @BIGAL You're right: it's probably necessary to solve the problem of transforming latitude/longitude to UTM. I might review the code to publish a more complete version. Or maybe someone else will do it before me3 points
-
What are you trying to accomplish with this code? First and foremost vla-CopyObjects doesn't support Layouts in the manner you are attempting, AFAIK. You need to use -LAYOUT command or pretty much need to use LeeMac's Steal or at least determine the method he uses for Layouts, which if I am looking at it correctly uses the Block Table record maybe more as I quickly glanced at it.3 points
-
I think there’s other reasons too! CAD, VisualLISP, have been around for more than a quarter century, AutoLISP, like 40 years, either people have moved on to other software packages, or use an already existing solution People at stack overflow started to complain about it being toxic, people downvote legitimate questions where the question was a bit hard to understand, i.e. where the OP’s first language isn’t English. I use the heck out of AI though; I even run local models. The issue is, people expect LLMs to “one shot” solutions, it’s unlikely to happen. If you spend time and find a system to work with the models, they are amazing.3 points
-
I have noticed the drop in posts in forums like Lisp, here, Autodesk and Theswamp, I think it's because people are using AI more to write code. Even I try AI now and again when stuck, it is successful some times. The most obvious here is when the AI code does not work help is asked for here. Maybe Admin could comment about number of posts say compared to 1 or 2 years ago ? Or is it that a lot of new users just don't ask for help ? I know I push for process improvement and have often tried to influence people into saving time but the majority just don't care. Any body else want to comment ?2 points
-
Good suggestion @Koz, I thought you or one of the better LISPers here might throw out something. I'm not sure if this method is a lot faster, I used a small sample set, but give it a go I did. New territory for me. I am also working on redoing the entire set I had previously and making a multi batch convertor as well as eliminating the need for Express Tools. Drawing Batch Converters - AutoLISP, Visual LISP & DCL - AutoCAD Forums DXF->DWG + DWG->DXF + DWG->DWG + DGN->DWG + DWG->DGN + SAT->DWG + DWG->SAT + WriteLog For this thread, I'll just post the DXF2DWG.lsp. Works on my small sample set in AutoCAD 2026. ;;; Batch Convert a folder of DXFs to DWGs using DBX. | ;;; | ;;; https://www.cadtutor.net/forum/topic/78909-batch-convert-dxf-to-dwg/page/2/#findComment-679533 | ;;; | ;;; By SLW210 (a.k.a. Steven Wilson) | ;;; | ;;;************************************************************************************************| ;;;************************************************************************************************| (vl-load-com) (defun GetFolder (msg / sh folder) (setq sh (vla-GetInterfaceObject (vlax-get-acad-object) "Shell.Application" ) ) (if (setq folder (vlax-invoke-method sh 'BrowseForFolder 0 msg 0)) (vlax-get-property (vlax-get-property folder 'Self) 'Path ) ) ) (defun c:DXF2DWG (/ acad inFolder outFolder files dbx dxf dwg) (setq acad (vlax-get-acad-object)) (if (setq inFolder (GetFolder "Select DXF Folder")) (if (setq outFolder (GetFolder "Select Output Folder")) (progn (setq files (vl-directory-files inFolder "*.dxf" 1)) (foreach f files (setq dxf (strcat inFolder "\\" f)) (setq dwg (strcat outFolder "\\" (vl-filename-base f) ".dwg" ) ) (setq dbx (vla-GetInterfaceObject acad (strcat "ObjectDBX.AxDbDocument." (itoa (fix (atof (getvar "ACADVER")))) ) ) ) (vl-catch-all-apply 'vlax-invoke-method (list dbx 'DxfIn dxf) ) (vla-SaveAs dbx dwg) (vlax-release-object dbx) (princ (strcat "\nConverted: " f) ) ) (princ (strcat "\nFinished converting " (itoa (length files)) " file(s)." ) ) ) ) ) (princ) )2 points
-
If you know how to use AI it can be beneficial, I just wonder what adverse effects the unlearned masses are having on the future results. Lately on social media, forums etc. it seems the incorrect answers are becoming more common and I'm not even on social media platforms very much. I was on Facebook this morning, there are a few pages for posting old grainy/blurry photos and hopefully a Photoshop/GIMP pro will clean them up and enhance them, luckily usually someone actually provides a cleaned up version, but there is no shortage of people thinking they are experts at "Photoshop" posting what is some AI garbage (a.k.a. Photoslop). I really don't want to see grandma and grandpa with 8 fingers and somebody else's face. Most get called out, but it is becoming prolific. Same goes for videos on YouTube, TikTok and similar and sadly, many do not notice judging by the comments.2 points
-
You need to post a true copy of what ever your starting with as you hinted a csv or a pdf. There is nom problem reading a csv and inserting all the borehole blocks at correct location, yes can look at other details so can insert different blocks when required, That is the sort of information you are not providing. eg a csv file like this. I can see need to compare your look up table that you previously provided. Once this sort of information is posted then a complete solution can be provided. Not just questions. Bore 1 X,Y 0.5,Green dirt 1.2,Black dirt 2.4,Blue dirt Bore 2 X,Y 1.3,Green Dirt 2.2,Black dirt Bore 3 and so on2 points
-
Hello, I'm back here once again to bring up a very interesting topic: How can AutoCAD (installed on a Windows 10 tablet with an integrated GNSS receiver) be made to display its real-time UTM position (or latitude/longitude), for example through a block? Is this possible? Are there any Lisp routines capable of achieving this?2 points
-
@tombu Ive had contact with AutoDesk: Hello Michel, I am writing to confirm that I have reviewed the issue you reported and replicated the results you described (see this video:https://go.screenpal.com/watch/cOieX2nU2gH ). I want to assure you that we've reported it to our development team, and they're currently investigating it. The resulting internal development ticket is linked to this technical support case and has the following Issue ID/subject: "CPR-2262 Reloading complex linetype without SHX shape does not update line display". AutoCAD confirmed that this issue is present since AutoCAD 2025 version.2 points
-
@masao_8 The Express tools must be installed with AutoCAD. If you mean just loading it, it's in my code above: (if acet-load-expresstools (acet-load-expresstools)) To make a grread loop work exactly like ssget. it's a huge ask. There is a ton of options to emulate. Could you explain EXACTLY what you want the function to do? What you're asking for has seemed to shift, or you weren't explaining it well enough. Below is an update to my code to add just the auto window and crossing selection: ;; Function to do a simple Select/Deselect using grread. ;; By PJK - 6/16/2026 ;; Updated 6/29/2026 to add window selection emulation (defun pjk-grread-Select (/ done en grl grc grv ss ss->elst sx wp1 wp2) (defun ss->elst (ss / i r) (if ss (repeat (setq i (sslength ss))(setq r (cons (ssname ss (setq i (1- i))) r))) ) ) (if acet-load-expresstools (acet-load-expresstools)) (setq ss (ssadd)) (princ "\nSelect to add objects or SHIFT+Select to remove from selection set: ") (while (not done) (setq grl (grread T 15 (if wp1 0 2)) grc (car grl) grv (cadr grl) ) (cond ((= grc 5) (redraw) (if wp1 (progn (grdraw wp1 (list (car grv) (cadr wp1) (caddr wp1)) -1 (if (< (car grv) (car wp1)) 1 0)) (grdraw wp1 (list (car wp1) (cadr grv) (caddr wp1)) -1 (if (< (car grv) (car wp1)) 1 0)) ) ) ) ((= grc 3) (if (acet-sys-shift-down) (if (setq en (car (nentselp grv))) (progn (if (ssmemb en ss)(ssdel en ss)) (redraw en 4) ) (if (not wp1) (progn (setq wp1 grv) (princ "\rSelect opp corner: ") ) (progn (redraw) (setq wp2 grv) (if (< (car wp2) (car wp1)) (mapcar '(lambda (a)(ssdel a ss)(redraw a 4)) (setq sx (ss->elst (ssget "C" wp1 wp2))) ) (mapcar '(lambda (a)(ssdel a ss)(redraw a 4)) (setq sx (ss->elst (ssget "W" wp1 wp2))) ) ) (princ (strcat "\n(" (itoa (length sx) ) ") Objects found and Removed from selection. " ) ) (setq wp1 nil wp2 nil) ) ) ) (if (setq en (car (nentselp grv))) (progn (ssadd en ss) (redraw en 3) ) (if (not wp1) (progn (setq wp1 grv) (princ "\rSelect opp corner: ") ) (progn (redraw) (setq wp2 grv) (if (< (car wp2) (car wp1)) (mapcar '(lambda (a)(ssadd a ss)(redraw a 3)) (setq sx (ss->elst (ssget "C" wp1 wp2))) ) (mapcar '(lambda (a)(ssadd a ss)(redraw a 3)) (setq sx (ss->elst (ssget "W" wp1 wp2))) ) ) (princ (strcat "\n(" (itoa (length sx)) ") Objects found and added to selection. " ) ) (setq wp1 nil wp2 nil) ) ) ) ) ) ((= grc 2) (setq done (if (vl-position kcode '(13 32)) T nil)) ) ((= grc 25)(setq done T)) ) ) (if (> (sslength ss) 0) (progn (foreach i (mapcar 'cadr (ssnamex ss))(redraw i 4)) ss ) nil ) )2 points
-
Perhaps it's easier than it seems. If it is an integrated receiver and Windows is able to obtain location data from it, then you should be able to access that data through the 'Windows Location API'. In that case, it should be possible to write a script to be executed from PowerShell that creates a loop to poll the receiver and write the data to a file. That loop would run in parallel with AutoCAD, allowing Lisp to read the new data as it is written. This method would be "intrusive", since it would occupy AutoCAD's command stream for as long as the command is running. However, there is another, less intrusive option that could operate in the "background": write the data to a system variable ('USERS#') and create a reactor that responds to changes in that variable: 'vlr-sysvar-reactor'. If the script is executed in a background PowerShell instance, you would also need to write a Lisp command capable of closing that instance when necessary. Once the script has been debugged, it could be incorporated into the Lisp code itself, making the whole solution completely self-contained. I haven't had much free time lately, but I'll try to investigate all of this a bit further.2 points
-
I worry that information will become like entertainment. We used to have a few TV channels, they were free, and we trusted their information. Then came cable, which grew into a mess of garbage that came through one provider, so you paid for things you mostly didn't want. Then came streaming, which is turning into a handful of providers with even more garbage, and you pay for each provider. AI may turn out like that: a few providers, with answers of questionable quality, at prices we can't afford. What would make sense to me is to create repositories of knowledge, curated by an AI. As it is, you have to ask similar questions, and the AI starts from scratch every time. Wouldn't it make more sense to treat the AI like someone with institutional knowledge? If you had a repository for AutoLISP code, for instance, all of us could contribute to it and maintain it. You might have to pay for your answer, but you would know it was correct and useful.2 points
-
Like @Steven P How do you look at the data now ? Is it just displayed when you run a program ? If so what is the program ? Some one must have written it.2 points
-
I think you would need Python, .NET, or ObjectARX as Autolisp does not have an on idle event that I can see. According to AI, you can read the input stream in a background thread, then use AutoCAD’s on idle event to update geometry in AutoCAD. I asked AI about using PyRx and it spit out a bunch of code converting $GPGGA $GNGGA to Lat/Log and stuff, I attached it. scratch.txt2 points
-
Like @mhupp may need to run an external program that writes current location to a file, then you can read that file and update say text. Depending on the program may run a BAT file or run the program or use powershell to run. I think can look at a file date has changed via reactor but manual much easier. I did a Google and did start to find hints of save to a txt or csv file but that is as far as I went. It is something you need to do, yje googling. Talk to who you bought the device from they may have something.2 points
-
2 points
-
Not sure, can the GNSS write / overwrite or updated a text file continuously? Reading a text file is easy with CAD, copy that to a block and the rest is all possible - not sure the interface yet. BigAl might know something later today.2 points
-
I think the issue is more generational than anything else. In the forums I keep up with, including here, theswamp.org, and MikeHolt.com, I've noticed that most of the core group have been Boomers. As a whole, younger generations have seemed to visit to get help, but not stay to help others. [There are notable exceptions like Lee.] AI is being oversold. I've tried both Claude and ChatGPT for programming help with LISP. Neither has produced code that worked on the first pass for anything more than a trivial case. We're about even on times when I've had to point out syntax errors in AI code and times AI has found syntax errors in my code. AI is a great replacement for most search engines, but it is not all that great at writing code, at least on the free tiers. AI output is only as good as the instructions it is given. Writing good instructions is hard. AI and the dot com bubble have a lot in common. In five years I expect we will have fewer AI companies, mostly paid tiers, and lots of empty data centers.2 points
-
I have mixed feelings about Clippy the AI , at least the one from Google , sure its fast and it can give some relevant answers but you have to double check everything. I am trying to create a dcl editor. Wasn't sure where to start so asked Clippy and it gave me some good ideas on where to begin. But as things got complexer it really started to mess things up. And every time you use it you need to explain every thing all over again because at least the free / unregistered version remembers (saves) nothing . But I learned from my mistakes and started to write a very extensive manual so next time I can upload that so we can better pick up from where we started. My biggest concern is that it creates a black box. You ask something , it gives you something back and you paste and test the code , great , moving on to next part. After a while you end up with a bunch of working code until it doesn't any more and that's where the trouble begins and you notice you have lost your grip on the code because Clippy did it all for you. Like your daddy did all your homework for you and you have to take the exam and ...oops , daddy aint around now is he?2 points
-
There is no doubt that AI is replacing (and will do so even more in the future) the need to interact with something or someone in order to find ideas and the motivation to pursue them. I don’t know which AI tools are the best for programming (I’ve only used Chatgpt so far), but my experience has been positive in terms of how stimulating it is to have someone to discuss ideas with and refine them while solving problems. This was something that, in the past, could only be found in forums like this one. However, the code suggested by Chatgpt is almost always lengthy and often fails. I suppose that will change over time.2 points
-
2 points
-
Back to your code, using OBDX you get the layout list like this. ; example code by AlanH June 2026 (setq fname (getfiled "Select dwt File" "D:\\alan" "dwt" 16)) (setq impdoc (vla-getinterfaceobject (vlax-get-acad-object) (strcat "ObjectDBX.AxDbDocument." (itoa (atoi (getvar 'acadver)))) ) ) (vl-catch-all-apply 'vla-open (list impdoc impdwg)) (setq layout (vlax-get-property impdoc 'layouts)) (setq lst '()) (vlax-for lname layout (setq lst (cons (vlax-get lname 'name) lst)) ) (if (not AH:Butts)(load "Multi Radio buttons.lsp")) (if (= but nil)(setq but 1)) (setq ans (ah:butts but "V" (cons "Please choose" lst))) (command "layout" "T" lname ans) You can then feed that lst to say a dcl and choose, this is using a library function that returns the layout name, save multi radio buttons in a support path or edit the (load to full path where saved. It will work for up to about 20 layout names, a screen limitation. Give it a try let me know how it works, Multi radio buttons.lsp1 point
-
Hello. You might have to code a listener on COM or TCP/IP to read nmea stream (depending how you cast your GNSS stream). It is possible with .net to code a plugin that read a com port or TCP/IP stream and then follow the GNSS position in many ways. Inserting Block to the last position Drawing any entities following the GNSS position. Soeren Le Berre1 point
-
Why not just use "Layout T" Template it asks for the dwg and which layout i have always used it and no problems. Can run as a (command1 point
-
https://www.lee-mac.com/steal.html (Steal "C:\\My Folder\\MyDrawing.dwg" '(("Layouts" ("Page1" "Page2"))))1 point
-
Are you able to dive into Windows itself a little - been a while since I needed to do anything similar though so this might not be possible. Close everything and set the receiver going, record some data, say 5 mins or something. Windows of old let you search the whole system for every file... might be able to limit that to 'modified in last hour' (or whatever). This might bring up the saved data, might be able to open in notepad and see if it is encrypted / compressed (all the weird characters) or raw data. If is is raw data then you are away and running able to read and modify as you want. Think you would need to show hidden and system files to get the best chance of finding the data. Might work.1 point
-
As an dilettante, I want to say that AI exists only thanks to professionals like you. All the training materials and a lot of codes are written by real people. Therefore, all the applause is for you and only for you!!!1 point
-
Some suggestions. Go back to who you bought the device from, they may have something. If it was say Amazon not sure. Look on the manufacturers web site for more info contact them. Brand, model etc ?1 point
-
In real time? I think is saw one for like $300 will post later tonight. -edit I can't find it was like dtool or something1 point
-
Yeah, my thought would be to use an external app to talk to the receiver, save the coordinates to a text file somewhere continuously - probably by overwriting a simple text file 'X-Coord Y-Coord Z-Coord Description' - same format all the time - all done outside of CAD. Have CAD running and using a delay (https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/using-delay-command-in-scripts/td-p/5497881 for an example) get CAD to read this file as necessary, plot the point1 point
-
Your trying to talk to an external device, something that Autocad was never really designed to do out of the box.. Other than say a Digitiser. Yes in survey software including CIV3D there are programs that talk to survey instruments, but some one has writen say a .NET interface to do the talking part. So you need a external program Python may do it for you, Lisp is a pretty low level language when it comes to interfaces. You need functions that do that and they are probably not built into the Lisp interpreter. Bricscad has added lisp functions to its software they are not available to say Acad as improvements. In the case of mobile phone photos I used a 3rd part program to read the details from the jpg images so could get the lat and long and insert in a dwg at correct location. Using lisp could call the other external program. look at Startapp can call a bat file. "Need a thread" then why not talk to hand held distance measures, I am sure others would come up with other devices also that they would like plug and play.1 point
-
Hi Daniel (Its_Alive) and everyone in this thread, I have been analyzing this project thoroughly, and the architectural concept behind your SQLiteLsp extension is brilliant. Having a dedicated BRX module with an embedded SQLite engine that exposes clean AutoLISP functions like (DSQL_OPEN), (DSQL_ASSOCQUERY), and (DSQL_CLOSE) is exactly how professional data-driven CAD/CAM applications should be built. However, after running a deep compatibility check for our current enterprise furniture design engine (project ZEN PRACA V2B34), we hit a classic deployment bottleneck. The original module was compiled for BricsCAD V12 around 2011. Even looking at later iterations for IntelliCAD, relying on a pre-compiled binary extension (.brx / .irx) creates a heavy production risk regarding x64 architecture alignment, modern compiler library dependencies, and strict binary compatibility with newer host CAD versions. Because we are currently stabilizing our central parametric engine, we have made a strategic decision not to plug the old V12 BRX module as a production dependency right now. Introducing an external binary at this critical stage could create a second "source of truth" and lead to dependency hell, distracting us from core geometric validation. That being said, the SQLite philosophy is absolutely a GO for our next development phase, but as a clean data persistence layer structured into a strict three-tier architecture: Data Layer (SQLite): To store externalized project profiles, global cabinet variables (PARAMETRY_SZAF), construction tolerances (PROFILE_KORPUSU), zoning maps (MODULE_MAP), internal equipment payloads (shelves, rods, drawers), and manufacturing logs (BUILD_MANIFEST, BOM). SQLite is the perfect serverless, file-based standard for this, especially with the engine being actively developed (up to version 3.53.2 in mid-2026). Logic Layer (Central LISP Engine): Our pure AutoLISP core that reads these parameters, validates manufacturing constraints, and calculates the exact spatial coordinate plans. Presentation Layer (DWG): The clean, visual 3D output generated by a fully controlled and audited geometry builder. Our Roadmap: We are first finalizing the central engine and rule registry using native, structured LISP association lists (which perfectly mimic the flat row-and-column layout of a relational database). Once the geometry is 100% robust, we plan to write a lean, modern SQLite adapter tailored specifically for our V2B34 schema, completely free of legacy binary dependencies. Thank you for this thread—it completely validated our choice to move towards a relational database structure for complex parametric wood-engineering projects! Best regards, Zen1 point
-
Did you have a look at this? SQLite for AutoLisp https://www.theswamp.org/index.php?topic=28286.0 I haven't updated it in a while though1 point
-
Also, this work was the whole reason I made SQLite for Autolisp, to handle the zillions of parameters. Could automatically select the correct drawer hardware, I only had Grass and Blum though, they both sent me all the blocks too so I could use them in sections, I should have saved all that stuff1 point
-
I think you’ll get into trouble with the way your parameters are laid out. Example, the user may not have access to vertical grade laminate, or may wish to use cabinet liner, or just melamine. These thickness changes will have a big impact. You will need parameters for the possible, inside, inside finished, outside, outside finished T_SIDE, the left might have a finished end while the right might not. MAT_OUTSIDE_FINISHED + T_LEFT_SIDE + MAT_OUTSIDE_UNFINISHED Edging is another item, i.e. 0.5mm vs 3mm banding will affect the overall depth1 point
-
I personally do not need any software, as Cabinets etc are not in my usual skill set, but keep working on it. Just a comment the house package that I worked on took 12 months to develop. We worked out from day one had to have an integrated package with every module having links to master defuns. Using common variable names throughout code then others can add to code. In one of your other posts you have hinted that is the way you are approaching the task which is good. If you need to save values in the dwg avoid the USER?? variables. I use Ldata it seems to work well.1 point
-
AI really is helpful but often takes re.ques. Without having been so inspired and learning from y'all, I would have no language to com with. One recent review wow for me is HATCHB.lsp. Without it (JTB) ..I'd Not be able to get a hatch boundary period.1 point
-
What about kitchen cupboards do you have those as well ? Indicative cost ?1 point
-
Wow thank you everyone for the comments, general consensus is AI is still not getting close to 100% solutions or when solving very complex task. Yes part of the answer may be that there is just so much code out there now, so a search finds an existing answer.1 point
-
AI is a mixed bag for me. Copilot can be infuriating at times — it keeps using LISP functions that aren’t supported in AutoLISP, or ACAD‑only functions that don’t work in BCAD. It can wander off into rabbit holes even after you’ve told it not to, and sometimes it changes working code for no reason and breaks it. But with some persistence and back‑and‑forth, it can produce really good functions. I’ve also tried Claude, which is much better in lots of ways — the code tends to run first time. If i run out of credits then I continue on with co-pilot. I used Fable just before it was banned, and that was pretty amazing too. AI still needs a lot of guidance to produce anything worthwhile. It can be overconfident, sometimes it doesn’t listen and it doesn’t always think clearly about the end goal. I’m currently updating a lot of routines I’ve cobbled together over the years, and AI is helping polish them and fix issues I’d hit a wall with. It’s here now, and it’s not going anywhere. Can forums embrace it? I’m not sure. With the amount of knowledge stored on these pages, maybe CADTutor could even build its own AI. No idea how easy or expensive that would be, mind you...1 point
-
For Al, I always assume it is nothing more than google on a few steroids, not a lot more. For LISPs - like google, if you ask it for snippets where you are stuck it will get something that works, but something more complex not really. Then you have to break it down get the snippets and sew them together. Anything new or novel that isn't out there is won't cope. So for my work it might help with a few LISPs to improve accuracy or efficiency but the actually money maker and drawing stuff, not seen anything close yet. Made me think though, SLW210, have we actually worked out all (or nearly all) the LISPs we need and just need to find them? (apart from the very specific ones). Last comment - RLX, very true, if I pass anything around the company I need to be able to maintain it, an undocumented 'black box' solution still needs time to make it work.1 point
-
To be fair Soildworks Forum layout/search is trash. I have never started from the forums to find something its usually a link from a search engine to there. The search engines like google are in a fight right now with AI chatbots and in the end content creators/websites are being affected. going to get worse before it gets better. I genially like AI but its a tool not a solution. but most people unfortunately are ok with "good enough". AI companies are claiming 100x efficiency that is impossible. I liken it to a side scroller game like the dino chrome 404. play that 100x speed and see how far you get.1 point
-
Posts are one thing, but what about the actual traffic? Like I stated, most fora already have the answers to questions, so often no need to interact and make a post. CADTutor shows most online 9,928 April 2nd 2026, which was probably a lot of AI bots, etc.1 point
-
;;;You can call Master Leemac's code, but do not modify it (defun c:ttt(/ CPB NEW-PT OBJ PT) (c:cb) (setq cpb (entlast)) (setq pt (cdr(assoc 10 (entget cpb)))) (setq obj (vlax-ename->vla-object cpb)) (setq new-pt (vlax-3d-point (getpoint pt "\n Specify the new location"))) (vla-move obj (vlax-3d-point pt) new-pt) (princ) )1 point
-
Hi, everyone, My name is Lĩnh, from Vietnam. I've done the initial release of an app to unfold a Solid to paper layout. I am waiting the Autodesk App Store to publish it but these days the store takes very long to review anything. It is a free app. Purposes to create it are to master the polyline and 3d geometry programming technique in AutoCAD, and to promote my custom programming service. I will be very happy if someone like it, use it, or point out the direction for it progress futher. Currently I see I can use it to make some toy in paper for my son Also, I see I can make an web app out from it via Forge: you upload your drawing with the 3D model to the web then the web return the unfold layouts for you to process further. Anyway, currently, it is only available as a bundle to install to your local desktop PC. The 7cad 3D Unfold.bundle.zip download link is here: https://1drv.ms/u/s!ArVZkS2ji0h0yoIU9FPZCKVnXfOSUA?e=g6KjRa --------------------- To install, just unzip it to the C:\ProgramData\Autodesk\ApplicationPlugins folder. That is one of default locations for all addin for AutoCAD. 1st Command: 7cad_Unfold: It has 2 tabs. The General Tab is for general shape. The second tab is for revolve shape which the unfold layout should be arrange smarter. 2 other commands are 7cad_FoldUp and 7cad_CutOut. FoldUp is just a demonstration command, animate the Unfold-FoldUp routine to check if everything are fit as expect. CutOut command is to join pieces together, like union command in AutoCAD, so you have cutout polylines ready for print. Thank you, Lĩnh The General Unfold routine is like this:1 point
-
Consider the following example - the selection could be automated if the target block/attribute tag is known, or alternatively, it could search every block attribute for the target field expression and perform a replacement: (defun c:test ( / e n x ) (setq n "$(substr,$(getvar,dwgname),1,3)") (while (progn (setvar 'errno 0) (setq e (car (nentsel "\nSelect field: "))) (cond ( (= 7 (getvar 'errno)) (princ "\nMissed, try again.") ) ( (null e) nil ) ( (not (wcmatch (cdr (assoc 0 (setq x (entget e)))) "TEXT,MTEXT,ATTRIB,MULTILEADER,*DIMENSION")) (princ "\nInvalid object selected.") ) ( (not (and (setq x (cdr (assoc 360 x))) (setq x (dictsearch x "ACAD_FIELD")) (setq x (dictsearch (cdr (assoc -1 x)) "TEXT")) (setq x (cdr (assoc 360 x))) (setq x (entget x)) (= "FIELD" (cdr (assoc 0 x))) (= "AcDiesel" (cdr (assoc 1 x))) ) ) (princ "\nThe selected object does not contain a DIESEL field expression.") ) ( (entmod (subst (cons 2 (strcat "\\AcDiesel " n)) (assoc 2 x) (subst (cons 1 n) (assoc 1 (member (assoc 6 x) x)) x) ) ) (command "_.regenall") ) ) ) ) (princ) )1 point
