Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/21/2026 in Posts

  1. 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.
    3 points
  2. 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
    1 point
  3. ;;------------------------------------------------------------------------- ;; 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)
    1 point
  4. ;;------------------------------------------------------------------------- ;; 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)
    1 point
  5. 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.
    1 point
  6. 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).
    1 point
×
×
  • Create New...