All Activity
- Today
-
cilemac joined the community
-
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
Thanks for the example, BIGAL! Nested/child DCLs (like the one in image_4483c9.png) are a great, proven way to handle multi-level configurations without cluttering the main screen. Regarding Excel as a database—you're absolutely right that 99% of users know how to use it, and using a text file for user-defined layers is an excellent way to keep things flexible. However, for a complex parametric generator, I heavily lean towards SQLite over Excel for a few critical reasons: Performance & Overhead: Reading/writing heavy datasets via COM (vlax-get-or-create-object) creates noticeable lag, especially when querying "zillions" of hardware parameters in real-time. SQLite executes queries in milliseconds completely in-memory or via a tiny local file. Zero Dependencies: Using Excel via ActiveX means the user must have Microsoft Excel installed. If they use LibreOffice, Google Sheets, or a different CAD platform setup, the COM links break or require entirely different codebases (as you mentioned having separate LibreOffice code). SQLite runs natively inside the LISP environment without caring what office suite is installed. Stability: We've all experienced ghost EXCEL.EXE processes hanging in the Windows Task Manager when a LISP routine crashes or fails to unallocate the object properly. SQLite avoids that entirely. That being said, I am planning an "Export to Excel/CSV" feature for BOMs (Bill of Materials) and cutting lists, because as you perfectly pointed out, Excel is the universal language for production managers and workshop staff! Thanks for the snippet and the food for thought! Zen -
Thanks for the replies. It seems that, despite the passage of time, this is still a very rarely discussed topic. I have only found one very old thread dealing with this issue, but it approaches it from VBA and does not appear to reach a solution: https://forums.autodesk.com/t5/autocad-map-3d-developer-forum/reading-gps-output-on-a-serial-port-with-vba/td-p/624634&ved=2ahUKEwif9v7MqpqVAxWuHDQIHXXNAncQFnoECCQQAQ&usg=AOvVaw2qjyYBboSx0JnXyKbmPsbU� I suppose this is not something that is easy to achieve from Lisp. I’m not sure I fully understand the @BIGAL idea of using an external program: do you mean a program that does all the work from outside AutoCAD? (I may not have understood correctly.) Thanks, @Danielm103. I’ve never used Python with AutoCAD before. Perhaps this is the right time to start doing so I really think this topic deserves a thread that finally results in the solution that nobody has managed to find so far.
-
A toolkit is designed to streamline the conversion of raw survey texts ,and markers into professional MLeaders
ketxu replied to darshjalal's topic in AutoLISP, Visual LISP & DCL
Nice work my friend. I will add Y - Sorted to String and i think it more easily to use ^^ -
prym joined the community
-
Ali Jalloul joined the community
-
Help to Modify Existing Line Annotation LISP
BIGAL replied to KraZeyMike's topic in AutoLISP, Visual LISP & DCL
I could be wrong only glanced at code. (if (and (>= l_ang (* pi 0.5)) (< l_ang (* pi 1.5))) (setq i_ang (- l_ang pi) d_pt (polar m_pt (- i_ang (* pi 0.5)) (* tht 0.3))) (setq d_pt (polar m_pt (- i_ang (* pi 0.5)) (* tht 0.3))) );end_if ; needs a another if here (If (= ?????) (rh:em_txt m_pt a_txt b_lyr i_ang tht 1 1) (rh:em_txt d_pt l_txt d_lyr i_ang tht 1 3) );end_if Or do you need a (progn so can add in more lines to the IF is true. maybe this I don't know. Not sure about i_ang and l_ang. (if (and (>= l_ang (* pi 0.5)) (< l_ang (* pi 1.5))) (progn (setq i_ang (- l_ang pi) d_pt (polar m_pt (- i_ang (* pi 0.5)) (* tht 0.3))) (rh:em_txt m_pt a_txt b_lyr i_ang tht 1 1) ) (progn (setq d_pt (polar m_pt (- i_ang (* pi 0.5)) (* tht 0.3))) (rh:em_txt d_pt l_txt d_lyr i_ang tht 1 3) ) );end_if -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
BIGAL replied to zenmar's topic in BricsCAD
This is just a simple example of the way you can use child dcl's to set values as your hinting about sheet thickness, material etc. Obviously it would match your requirements. Maybe even a 2nd child, pick size -> Pick outside material -> laminate plastic none etc. Using some form of data base sounds like a good idea, we had a text file for the layer names used in the code so a user could set up their preferred layer naming not ours. Have you though about using Excel as the info database ? You can read and write to Excel, have the Excel displayed or just behind the scenes read the Excel without a visual display. Note LT2024+ does not support Excel link. Works with Bricscad not tested with Intellicad but I think should work. There are a couple of other CAD programs as well. The nice thing about Excel is that 99% of people know how to use it. Obviously there is so much help about making macros for Excel if needed. In case you don't have it a simple test for Intellicad. ;; Try to get or create Excel instance (setq myxl (vl-catch-all-apply 'vlax-get-or-create-object '("Excel.Application"))) Ps yes have Libre Office code as well. - Yesterday
-
Help to Modify Existing Line Annotation LISP
KraZeyMike replied to KraZeyMike's topic in AutoLISP, Visual LISP & DCL
Thankyou with the quick responses. Apologies for my late reply. I had a play with the code from "mhupp" and using: (defun rh:em_mtxt (pt txt lyr ang hgt) (entmakex (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(100 . "AcDbMText") (cons 8 lyr) (cons 50 ang) (cons 7 (getvar 'TEXTSTYLE)) (cons 1 txt) (cons 10 pt) (cons 40 hgt) (cons 50 ang) '(71 . 5) ) ) );end_defun Gives the error: no function definition: RH:EM_TXT occurred Makes sense because I need to add "(rh:em_mtxt '(0 0 0) "71" "0" 0 0.5)" After which it seems to run the routine with no errors but also no text displayed? I have uploaded a sample drawing using the original Lisp to annotate the linework. Thanks again for your help I feel like something is wrong here on line 107: (rh:em_txt m_pt a_txt b_lyr i_ang tht 1 1) (rh:em_txt d_pt l_txt d_lyr i_ang tht 1 3) );end_repeat ) );end_cond ...and that I'm not implementing (rh:em_mtxt '(0 0 0) "71" "0" 0 0.5) properly Annotate Sample.dwg -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
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, Zen -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
Danielm103 replied to zenmar's topic in BricsCAD
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 though -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
That is exactly why I ended up developing a custom SQLite implementation for AutoLisp! Managing the zillions of parameters required for dynamic cabinetry and hardware logic became impossible with standard lists or light dictionaries. SQLite handles it like a breeze. I used that database to automatically select the correct drawer hardware based on dimensions. Back then, both Grass and Blum sent me their complete block libraries, which allowed the system to automatically drop those components into detailed section views. It’s a shame I didn't back up absolutely everything from that setup, but the core architectural logic is what I'm reviving now. Building it as an integrated package from day one—just like you mentioned—is the only way to survive a project of this scale! -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
hanks for sharing your experience! Hearing that your system took 12 months confirms that building a solid foundation from day one is the only right way. I completely agree on using common naming conventions and a master library—it's the only way to keep the codebase maintainable and scalable. Also, thank you for the tip on Ldata. I am definitely steering clear of USER variables to avoid any conflicts with other plugins or user setups. Ldata is exactly what I'm utilizing to keep the drawing data clean and robust. Much appreciated! Zeno -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
Danielm103 replied to zenmar's topic in BricsCAD
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 stuff -
Danielm103 started following GNSS on AutoCAD and Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
-
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
Danielm103 replied to zenmar's topic in BricsCAD
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 depth -
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
BIGAL replied to zenmar's topic in BricsCAD
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. - Last week
-
RKN Porfirio joined the community
-
Thegoodnessinme joined the community
-
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.
-
ness_smiley joined the community
-
Whim joined the community
-
ow yeah, I disabled all notifications in my profile. Too many people assumed I have nothing else to do so I got a lot of personal requests this way and though I love to help other humans it soon became a full time job and consumed all of my spare time. I'll send you my adres.
-
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.txt
-
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
hank you for your interest. Yes — kitchen cabinets and other furniture types are planned as future directions for the project. The current work is focused on a lightweight parametric CAD/CAM engine for fast rebuilding of furniture layouts after changes from an architect or client. The goal is not to create heavy 3D models with every fitting fully modelled. Instead, the system is intended to control construction, dimensions, divisions, fronts, drawers, shelves, fitting rules, and automatic updates of layouts, sections and dimensions. For kitchens, the direction would be similar: base units, wall units, tall units, fronts, drawers, shelves, plinths, fillers and technical fitting rules. The main benefit is that after another design change, you do not need to redraw the entire project from scratch or manually check whether all drawings still match the model. We have posted early concept boards of the parameter panel and engine workflow here on the forum. Since publishing them, we have already received useful feedback and implemented some corrections. The long-term goal is for the solution to work not only in BricsCAD, but also in AutoCAD. Please send me a private message with the type of kitchen or furniture workflow you are interested in and what you would expect from such a system. It would be useful to compare requirements and continue the discussion there. -
amdaprstn514 joined the community
-
GeorgeLucian joined the community
-
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
BIGAL replied to zenmar's topic in BricsCAD
What about kitchen cupboards do you have those as well ? Indicative cost ? -
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.
-
@rlx tried sending you a pm "I am trying to create a dcl editor. " I have something that takes a dwg with say blocks in it representing dcl objects Radio Edit Toggles and writes the DCL code. I got an error message when trying to send PM. If you have my email send me a message and will send you the dwg and lsp. I am happy to provide source code to people like yourself who help others. I will probably do a FAS and a DES of code.
-
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.
-
Parametric wardrobe, kitchen & cabinet automation in AutoLISP — anyone working on similar?
zenmar replied to zenmar's topic in BricsCAD
Sorry for the double post, thanks for cleaning it up! To answer your question: No, this is not a free/open-source tool. It’s a commercial-grade automation system. However, I’m open to discussing the architecture here, sharing a demo, or working with manufacturers who need a custom, paid implementation tailored to their specific production standards." -
mhupp started following GNSS on AutoCAD
-
Would need a Reactor and connect to some type of database.
-
Least started following AI taking over
-
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...
-
I don’t really understand how a GNSS receiver works. It seems that most of them operate by sending data to a port. The receiver is a u-blox device.
