Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. BIGAL

    Civil 3d Plugin

    Just look at Civil Site Design, it should have everything you need, yes runs in CIV3D or Bricscad. It is ready to go, whilst I do paid fpr programming this is out of the box with years of development behind it. It handles stuff like road widening, bus bays, parking lanes, roundabouts, intersections and so on with ease. You can download a trail version, lots of Utube videos out there showing what it does. https://Civilsitedesign.com.au
  3. Not saying what you have done is not worthwhile but a search here would possibly have found this "Table to excel.lsp". I also know there are a few others out there. ; simple table to excel ; expects Title header and data ; BY Alanh Jan 2022 ; do not have excel open You may be interested in this it contains multiple Excel defuns to carry out task to do with Excel. A big help was FIXO who did some great Excel stuff but is no longer of this world. It is a work in progress as more functions are added. Just copy and paste the defun needed. Alan Excel library.lsp
  4. Today
  5. rlx

    AI taking over

    AI , I like to call it Clippy , is here to stay but you are the architect , in the driver seat. Don't blame Clippy if something goes wrong, blame yourself when blindly believing everything it says. It's just a tool but you are responsible at all times. Like guns don't kill people , its people that kill people. Clippy is very good in finding facts and patterns , but it has no real understanding. When coding something big, give total control to Clippy and for sure you end up with lots of code you don't understand nor control anymore. Just do what you always do, create a block or flow diagram and feed it little bits and test everything. Like this weekend , have a portable airco for my sweat-room. Missed (misplaced) a part so I told Clippy and behold, oh you need this and there you find it, So ordered the part (and a day later I found it in a drawer) , but then Clippy said , oh you have simple (dum) airco , would you like to be able to control it with your phone?... sure, what's on your mind?... it gave me 3 options and I went for gold (of course). Paranoid dragon as I am , did some research (after I placed the order) on how IR boosters work and downloaded the manual and found out the IR booster I just ordered only works when airco has a remote with a display and mine only has buttons. So fortunately was able to cancel the order and found another , much cheaper and works with my machine. Now I can only blame myself, not Clippy. It means well , but it can't be trusted blindly. The better the info you feed it , the better result you can get back. At this moment the term AI is found everywhere , many times as a marketing slogan, designed by AI , controlled by AI , AI knows everything... well I can say for certain there is only one person on this whole planet who knows everything and I'm married to her. ok time to for me.
  6. ;;------------------------------------------------------------------------- ;; TBL2XL.lsp | Version 1.0 ;; Date: 2026-07-20 ;; NEW TOOL - Pick one AutoCAD TABLE. Copies its full grid (all rows and ;; columns, same layout) straight into Excel - uses your open Excel if ;; there is one, otherwise opens a fresh one, starting from wherever your ;; cursor is in the sheet. ;; Changelog: ;; v1.0 - initial release ;;------------------------------------------------------------------------- (vl-load-com) ;; Returns the VLA Active Document Object (defun t2x_acdoc nil (eval (list 'defun 't2x_acdoc 'nil (vla-get-activedocument (vlax-get-acad-object)))) (t2x_acdoc) ) ;; Opens an Undo Group. (defun t2x_startundo ( doc ) (t2x_endundo doc) (vla-startundomark doc) ) ;; Closes an Undo Group. (defun t2x_endundo ( doc / tries ) (setq tries 0) (while (and (= 8 (logand 8 (getvar 'undoctl))) (< tries 5)) (vl-catch-all-apply 'vla-endundomark (list doc)) (setq tries (1+ tries)) ) ) ;; Write a value into a cell (row, col) via the Cells collection's Item property (defun t2x_write_cell ( xlCells row col val ) (vlax-put-property xlCells "Item" row col val) ) ;; Main command (defun c:TBL2XL ( / *error* xlApp xlRun xlBooks xlBook xlSheets xlSheet xlCells xlCell es ent tbl rows cols r c cellval baseRow baseCol wr skipped ) (defun *error* ( msg ) (if xlBooks (vl-catch-all-apply 'vlax-release-object (list xlBooks))) (if xlApp (vl-catch-all-apply 'vla-put-visible (list xlApp :vlax-true)) ;; leave visible so Ajmal keeps the data ) (if xlApp (vl-catch-all-apply 'vlax-release-object (list xlApp))) (t2x_endundo (t2x_acdoc)) (if (and msg (not (wcmatch (strcase msg t) "*break*,*cancel*,*exit*"))) (princ (strcat "\nError: " msg)) ) (princ) ) (t2x_startundo (t2x_acdoc)) (setq es (entsel "\nSelect the table: ")) (if (not es) (princ "\nNothing selected.") (progn (setq ent (car es)) (if (/= "ACAD_TABLE" (cdr (assoc 0 (entget ent)))) (princ "\nThat's not a table.") (progn (setq tbl (vlax-ename->vla-object ent)) (setq rows (vla-get-Rows tbl) cols (vla-get-Columns tbl) ) ;; use Excel if one is already open, otherwise open a fresh one (setq xlApp (vlax-get-or-create-object "Excel.Application") xlRun (vlax-get-property xlApp 'Visible) ) (if (= xlRun :vlax-false) (progn (setq xlBooks (vlax-get-property xlApp "Workbooks") xlBook (vlax-invoke-method xlBooks "Add") xlSheets (vlax-get-property xlBook "Sheets") xlSheet (vlax-get-property xlSheets "Item" 1) ) (vla-put-visible xlApp :vlax-true) ) (setq xlSheet (vlax-get-property xlApp 'ActiveSheet)) ) (setq xlCells (vlax-get-property xlSheet "Cells")) ;; start writing from wherever the cursor is in Excel right now (setq xlCell (vlax-get-property xlApp 'ActiveCell)) (setq baseRow (vlax-get-property xlCell 'Row) baseCol (vlax-get-property xlCell 'Column) ) (setq skipped 0) (princ (strcat "\nTable is " (itoa rows) " rows x " (itoa cols) " columns. Copying...")) (setq r 0) (repeat rows (setq c 0) (repeat cols (setq cellval (vl-catch-all-apply 'vla-GetText (list tbl r c))) (if (vl-catch-all-error-p cellval) (setq skipped (1+ skipped)) ;; likely a merged cell - leave blank (progn (setq wr (vl-catch-all-apply 't2x_write_cell (list xlCells (+ baseRow r) (+ baseCol c) cellval))) (if (vl-catch-all-error-p wr) (princ (strcat "\nExcel write error at row " (itoa r) " col " (itoa c) ": " (vl-catch-all-error-message wr))) ) ) ) (setq c (1+ c)) ) (setq r (1+ r)) ) (princ (strcat "\nDone. " (itoa rows) "x" (itoa cols) " table copied to Excel." (if (> skipped 0) (strcat " (" (itoa skipped) " merged cell(s) left blank)") ""))) ) ) ) ) (vl-catch-all-apply '*error* (list nil)) (princ) ) (princ "\n:: TBL2XL.lsp | Version 1.0 :: Type TBL2XL to run.") (princ)
  7. MSHR

    Civil 3d Plugin

    Hi, I am looking for an experienced Civil 3D .NET API developer to create a custom SubAssembly and integrated plugin for AutoCAD Civil 3D, similar to the tools provided on NTCLSoft Custom .NET SubAssemblies (specifically like the LaneInsideSuperLayerVaryingWidth_V2 module). Key Requirements: Fully Integrated (Native In-App Tool): The tool must run seamlessly directly inside the Civil 3D environment (as a native .NET C# plugin/SubAssembly), accessible through Civil 3D palettes or ribbon commands without launching external applications. Custom Geometry & Logic: Build robust, custom SubAssembly functionality tailored to my specific parametric requirements and target surfaces/alignments. Full Source Code Delivery: You must deliver the complete C# / .NET source code (Visual Studio project), compiled .dll files, .pkt files (if applicable), and clear instructions on how to compile and load it in Civil 3D. Compatibility: Must be fully compatible with modern Civil 3D versions. Please provide: Your estimated total cost (fixed price or hourly rate). Your estimated time frame / delivery schedule. Examples of previous Civil 3D .NET plugins or custom SubAssemblies you have developed. I will share the detailed geometric rules and parameter specifications once we connect. Looking forward to hearing from you! Best regards, Max
  8. Ajmal

    AutoCAD to excel

    ;;------------------------------------------------------------------------- ;; TXT2XL.lsp | Version 1.0 ;; Date: 2026-07-20 ;; NEW TOOL - Pick text entities one by one in AutoCAD. Each pick is sent ;; straight into Excel (uses your open Excel if there is one, otherwise ;; opens a fresh one), starting from wherever your cursor is in the sheet. ;; Keep picking - press ENTER or ESC to stop. ;; Changelog: ;;------------------------------------------------------------------------- (vl-load-com) ;; Returns the VLA Active Document Object (defun t2x_acdoc nil (eval (list 'defun 't2x_acdoc 'nil (vla-get-activedocument (vlax-get-acad-object)))) (t2x_acdoc) ) ;; Opens an Undo Group. (defun t2x_startundo ( doc ) (t2x_endundo doc) (vla-startundomark doc) ) ;; Closes an Undo Group. (defun t2x_endundo ( doc / tries ) (setq tries 0) (while (and (= 8 (logand 8 (getvar 'undoctl))) (< tries 5)) (vl-catch-all-apply 'vla-endundomark (list doc)) (setq tries (1+ tries)) ) ) ;; Write a value into a cell (row, col) via the Cells collection's Item property (defun t2x_write_cell ( xlCells row col val ) (vlax-put-property xlCells "Item" row col val) ) ;; Gets the clean text string from a TEXT or MTEXT entity, else nil (defun t2x_get_text_value ( ent / obj etype ) (setq etype (cdr (assoc 0 (entget ent)))) (if (member etype '("TEXT" "MTEXT")) (progn (setq obj (vlax-ename->vla-object ent)) (vla-get-textstring obj) ) ) ) ;; Main command (defun c:TXT2XL ( / *error* xlApp xlRun xlBooks xlBook xlSheets xlSheet xlCells xlCell es ent val row col wr ) (defun *error* ( msg ) (if xlBooks (vl-catch-all-apply 'vlax-release-object (list xlBooks))) (if xlApp (vl-catch-all-apply 'vla-put-visible (list xlApp :vlax-true)) ;; leave visible so Ajmal keeps the data ) (if xlApp (vl-catch-all-apply 'vlax-release-object (list xlApp))) (t2x_endundo (t2x_acdoc)) (if (and msg (not (wcmatch (strcase msg t) "*break*,*cancel*,*exit*"))) (princ (strcat "\nError: " msg)) ) (princ) ) (t2x_startundo (t2x_acdoc)) ;; use Excel if one is already open, otherwise open a fresh one (setq xlApp (vlax-get-or-create-object "Excel.Application") xlRun (vlax-get-property xlApp 'Visible) ) (if (= xlRun :vlax-false) (progn (setq xlBooks (vlax-get-property xlApp "Workbooks") xlBook (vlax-invoke-method xlBooks "Add") xlSheets (vlax-get-property xlBook "Sheets") xlSheet (vlax-get-property xlSheets "Item" 1) ) (vla-put-visible xlApp :vlax-true) ) (setq xlSheet (vlax-get-property xlApp 'ActiveSheet)) ) (setq xlCells (vlax-get-property xlSheet "Cells")) ;; start writing from wherever the cursor is in Excel right now, so an ;; existing sheet's data never gets overwritten (setq xlCell (vlax-get-property xlApp 'ActiveCell)) (setq row (vlax-get-property xlCell 'Row) col (vlax-get-property xlCell 'Column) ) (princ "\nTXT2XL running - pick text, ENTER/ESC to stop.") (while (setq es (entsel "\nSelect text: ")) (setq ent (car es)) (setq val (vl-catch-all-apply 't2x_get_text_value (list ent))) (cond ( (vl-catch-all-error-p val) (princ (strcat "\nRead error: " (vl-catch-all-error-message val))) ) ( val (setq wr (vl-catch-all-apply 't2x_write_cell (list xlCells row col val))) (if (vl-catch-all-error-p wr) (princ (strcat "\nExcel write error: " (vl-catch-all-error-message wr))) (progn (princ (strcat "\n-> Row " (itoa row) " : " val)) (setq row (1+ row)) ) ) ) ( t (princ "\nNot a TEXT/MTEXT entity - skipped.") ) ) ) (princ "\nDone. Excel left open with your data.") (vl-catch-all-apply '*error* (list nil)) (princ) ) (princ "\n:: TXT2XL.lsp | Version 1.0 :: Type TXT2XL to run.") (princ)
  9. Steven P

    AI taking over

    Spoken dialogue passes through the ears to the brain, the written word causes the eyes to glaze over... I used to know phone numbers, worked in a job where I had to phone many people up - and now with mobile phone contact list and calling over the internet using Teams or Skype contact lists... I cannot remember my home phone number! Yes there is some truth in that RLX AI everything... because it is new and trending, not because it is necessary. AI enabled fridges... because they can and not to make the milk in my morning coffee any better.
  10. rlx

    AI taking over

    a little story : This is the famous Myth of Thamus and Theuth, found in the dialogue Phaedrus by the Greek philosopher Plato (written around 370 BCE). In this text, Plato has his teacher Socrates relate an ancient Egyptian anecdote. Here is how the story unfolds: The Invention The Egyptian god Theuth (Thoth), the deity of inventions, visits Thamus, the king (pharaoh) of Egypt. Theuth presents his various creations, including arithmetic, geometry, and astronomy. Finally, he introduces the written word. Theuth is enthusiastic and claims: "This invention will make the Egyptians wiser and improve their memories. It is a potion for both memory and wisdom!" The Pharaoh's Objection King Thamus is not impressed and responds with deep skepticism. He argues that writing will have the exact opposite effect: Memory loss: People will stop training their memories. By relying on external written characters, they will no longer internalize knowledge. The illusion of wisdom: People will read quantities of information without proper instruction. As a result, they will appear knowledgeable but will actually remain ignorant, becoming conceited and difficult to get along with. The Historical Irony Socrates used this story to argue that spoken dialogue is superior to the written word. He believed text is dead; it cannot answer back or clarify itself when misunderstood. The ultimate irony is that Socrates himself never wrote anything down. The only reason we know this story today is because his student, Plato, wrote it down. This ancient debate resurfaces with every technological leap. The same anxieties were voiced about the printing press, calculators, the internet, and now, Artificial Intelligence (AI).
  11. CyberAngel

    AI taking over

    This particular issue has been in play for a long time. Have you ever gone to a food joint, the power is out, and the staff refuse to prepare food for you because they can't ring it up? Like they've never heard of pencil and paper or making change. If you can't do the basic, human version of your job, you'll be left in the dark (sometimes literally) when the AI can't do its job. Worse, you won't recognize when the AI is making a mistake. Without a real-world backup, and the sense to use it, you're at the mercy of the AI and its hallucinations. It's the height of irresponsibility to replace us with something that needs its hand held all the time in case it has a malfunction.
  12. petesperry

    Smart block - Detail Marker

    Hello all, Thanks for taking the time to respond, apologies for not coming back sooner (work got in the way). I'll try and pull together a bit more info when I am back into that project. Thanks
  13. Yesterday
  14. Danielm103

    LISP FOR BATCH OVERKILL FOR BLOCKS

    You’re going to want to use .NET or ObjectARX for something like this. - The routine would need a fast KD-tree so as not to do brute force curve evaluations - AcGeCurveCurveInt3d. This class contains query methods that return intervals of overlap between the two curves. - Other items like TEXT or MText, I would use custom hashing routine to bypass slow O(N^2) comparison loop, in theory speed would be O(1) - you would need a GUI for properties to be excluded. I.e. layer. - Attribute defs are owned by the block table record, while Attribute refs are owned by Block reference. you'll need to define the behavior - You cannot safely run this on a dynamic block, if one of the items that is deleted is part of an action, the block has undefined behavior. I did some work on comparing blocks by hash here [Python] https://www.theswamp.org/index.php?topic=60513 Actually, I would consider prototyping in Python before porting to C++. Python already has a hasher for points. .NET has some hashing stuff too, but I’ve never used it. good luck
  15. SLW210

    AI taking over

    AI has been around a long time, LLM since the 1990's, LISP was created for AI programming IIRC. It's a tool just like VLIDE, VS Code, etc. for programming. Problem, just like before, people came on to forums often demanding a code, etc. be written to make their life easier instead of learning something on their own to do it themselves. Most forums used to provide help and occasionally a custom code, etc. just like... That's a long list of requests. So now they demand AI to do their demands, those with some abilities have success, those that have great abilities have great success, etc. I know recently a man in Lee County, FL was arrested for a crime committed in or near Jacksonville, FL due to AI facial recognition, done by a third county's AI program, no second looks, no reasonable investigation, the man had never been to Jacksonville and a valid alibi for the time showing such. That's the bigger problem with AI right now, accepting the results without question. From the comments I see everywhere a great many seem tired of the AI everything.
  16. The full scope of what you are asking seems quite a lot to me. Thought, REFEDIT instead of BEDIT might be faster? I'm not sure about using BlockTableRecord, I'll have to look into that as well. How would those items be separated from what does need OVERKILL? As for the last part, nothing is really being modified except to be cleaned up, so what exactly doesn't need cleaned and improved? I think LISP might be slow using commands compared to .NET or other methods, I might look into it if that's an option. Do you have an example drawing? How far have you got on writing this code?
  17. This does blocks, but I can't remember why I stopped using it, think it was a speed thing. It BEdit each block to overkill, but since automated does it a lot quicker than manually open-close each block. Overkill settings are whatever you did last - no option to adjust settings in this script Might be a start for you to work from (defun c:OK-Ill ( / MySS) ;;Overkill by LISP (Batch processing...) (if (setq MySS (ssget "_x")) (command "-overkill" MySS "" "") ) ) (defun c:OK-BLOCKS ( / MySS acount MyEnt BlockName BlockList MyOption) (defun Blocklist (/ LL_Return) (vl-sort (vlax-for LL_Item (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))) ;; can also do get-layers etc (if (equal (substr (vla-get-Name LL_item) 1 1) "\*") (progn ) (progn (setq LL_Return (cons (vla-get-Name LL_Item) LL_Return)) ) ; end progn ) ; end if ) ; end vlax-for '< ) LL_Return ) ; end defun (defun OKBlocks (BlockList / acount) (setq acount 0) (while (< acount (length BlockList)) (command "bedit" (nth acount Blocklist) ) (c:OK-ILL) (command "bsave") (command "bclose") (setq acount (+ acount 1)) ) ; end while ) ; end defun (initget "All Space") (setq MyOption (getkword "Select All Blocks or in this space (All or Space)")) (if (equal MyOption "Space") (progn (setq MySS (ssget "_X" '((0 . "INSERT")))) (setq acount 0) (setq BlockList (list)) (while (< acount (sslength MySS)) (setq MyEnt (entget (ssname MySS acount))) (setq Blockname (cdr (assoc 2 MyEnt))) (if (member Blockname BlockList) () (setq BlockList (cons Blockname BlockList)) ) (setq acount (+ acount 1)) ) ; end while ;;DO STUFF TO BLOCK LIST (OKBlocks BlockList) ) ; end progn (progn (OKBlocks (setq BlockList (BlockList))) ) ; end progn ) ; end if space (princ "\n")(princ (length BlockList))(princ " blocks assessed") (princ) )
  18. Danielm103

    AI taking over

    I’m loving AI, it’s allowed me to do stuff that would take months to write in days. Example, this dark mode project to BricsCAD (https://github.com/CEXT-Dan/BrxDarkMenu) would have taken months to research.I had already done some win32 programming in the past, but very little. In short, you kind of have to know what you’re doing to use AI. I read about the Brown university thing where the professor made the students do their exams in class and most of the class failed. Scary! People need to at least learn foundational level stuff before using AI. What if the cloud is down, or you reach your token max, would you be able to go old school and continue? Or just sit there and twiddle your thumbs. With regards to anti-scraping, I see lots of open-source projects moving off GitHub to other places like Codeberg so their projects aren’t scraped, I guess so big companies that use AI don’t end up getting their code. I’m the opposite, I want AI to train on my code (if its open source)
  19. Last week
  20. Steven P

    AI taking over

    Couple of comments to add: MHUPP mentioned anti-scraping, years ago I had a website and would layer the important images, put together they showed correctly but a left click, copy, paste, gave something like just the yellow and a transparent colour block - had to dig a little deeper to get the original image... so it is something that has happened kind of for years. If it is out there though I don't know if you can have a true anti-scraping system and have it visible to the humans CADTutor, for the future of AutoCAD, I am not concerned - though I am also including the others such as BricsCAD and so on - many of the issues on one system are common to the others and this forum will be relevant for a while yet (15 years please, till I retire...).
  21. SLW210

    Batch convert dxf to dwg

    Due to my workload and a busy weekend, it will be sometime next week before I fix the one I have posted. I have so far a working DXF-DWG, DWG-DXF, and DWG-DWG (change the version) on the Multi-file Batch Convertor using ODBX, I plan to add DGN, SAT, PDF, and maybe more, but those aren't exposed to ODBX AFAIK, but I am not going to use Express Tools. Thanks for the inspiration and help to get back on this. Besides the original DGN batch convertor I found and adapted, I was surprised nobody ever tried to make an improved version before.
  22. It's actually acting correctly, according to Autodesk. Move in a straighter line and/or adjust precision. Better explained at Displacement Dimensions changing.
  23. Looking for a little help with something that has been frustrating me over the last few months. Started a new job, AutoCAD already configured on the laptop. For the life of me, I cant figure out why the dynamic/pointer input switches between Architectural units and Scientific units while the mouse moves. For example drawing a line, sometimes it shows the arch units (8'-9 23/64") and sometimes it shows scientific (1.074880E+02). This is the same polyline command, just moving the mouse a bit further right. Does anyone know how to fix this?
  24. Clint

    Batch convert dxf to dwg

    ODBX: The excellent and elegant solution provided here is heartening. As originator and, due to several demands being disconnected, of this important posted topic, your work is appreciated. Best regards, Clint
  25. Steven P

    Batch convert dxf to dwg

    Fair bet if BricsCAD and AutoCAD are OK then the others are not too far off either, nice work so far!
  26. Danielm103

    Batch convert dxf to dwg

    AutoCAD Command: TESTDBX Success! Total objects in Model Space: 41769 BricsCAD : TESTDBX Success! Total objects in Model Space: 41769 I didn't try ZwCAD or GstarCAD
  27. SLW210

    Batch convert dxf to dwg

    I suppose if time allows I could work out to get it working for other CAD that use ODBX. After all, that is my reasoning on eliminating the use of Express Tools, make it more universal. Without having anything else to test I would need testing volunteers with appropriate CAD platform. Maybe at some point I could download the trial version if they have them.
  28. Hello everyone, Advanced notice Every few years, the software used for this forum goes through a major point upgrade and that time has come round again. At some point in the next few days, I will close the forum for a short while, maybe 24 hours, so that the new software can be installed and the forum can be configured and themed. I'll be in touch with more details shortly.
      • 2
      • Thanks
      • Like
  29. SLW210

    Batch convert dxf to dwg

    What were the results?
  1. Load more activity
×
×
  • Create New...