Jump to content

Lisp to run a calculation


jpruessner

Recommended Posts

3 hours ago, shadi said:

good afternoon there 😇 , here is the cad file saved in earlier version than 2012 .. , that problem just appeared in mtext summing , not with texts ..  anyway , the most important to me is not to select text twice because really i could forget which one i select and that will affect the result ... thank u once again for ur care 

cad.dwg 178.84 kB · 2 downloads

 

Many thanks for the drawing, it was a big help. The problem was with the text width. It was picking up the width of the MTEXT text box, which I though I had accounted for. This should now work correctly. I was previously storing all the selected entities in a list to make deleting them easier. The lisp now checks any selected entity against the list. If you have already selected it a pop up alert will tell you it has already been selected. Hope this now works as you require.

(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* ent elst el num xsf tot nlst sel pt txt)

  (defun *error* ( msg )
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (setq elst (entget (setq ent (car sel))))
    (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
            (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                  (t (setq num (atof (getpropertyvalue ent "Text"))))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
          )
          ( (vl-position ent nlst) (alert "Already Selected"))
          (t (alert "Not a Text Entity"))
    );end_cond
    (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
  );end_while

  (cond (tot
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (princ)
);end_defun

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

6 hours ago, dlanorh said:

 

Many thanks for the drawing, it was a big help. The problem was with the text width. It was picking up the width of the MTEXT text box, which I though I had accounted for. This should now work correctly. I was previously storing all the selected entities in a list to make deleting them easier. The lisp now checks any selected entity against the list. If you have already selected it a pop up alert will tell you it has already been selected. Hope this now works as you require.


(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* ent elst el num xsf tot nlst sel pt txt)

  (defun *error* ( msg )
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (setq elst (entget (setq ent (car sel))))
    (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
            (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                  (t (setq num (atof (getpropertyvalue ent "Text"))))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
          )
          ( (vl-position ent nlst) (alert "Already Selected"))
          (t (alert "Not a Text Entity"))
    );end_cond
    (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
  );end_while

  (cond (tot
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (princ)
);end_defun

 

i really cann't find words to thank u for ur help 😍🌹 , it is exactly what i wanted 🤗 ... i have another challenges in case u interested in 😁🙏

Link to comment
Share on other sites

6 hours ago, dlanorh said:

 

Many thanks for the drawing, it was a big help. The problem was with the text width. It was picking up the width of the MTEXT text box, which I though I had accounted for. This should now work correctly. I was previously storing all the selected entities in a list to make deleting them easier. The lisp now checks any selected entity against the list. If you have already selected it a pop up alert will tell you it has already been selected. Hope this now works as you require.


(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* ent elst el num xsf tot nlst sel pt txt)

  (defun *error* ( msg )
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (setq elst (entget (setq ent (car sel))))
    (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
            (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                  (t (setq num (atof (getpropertyvalue ent "Text"))))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
          )
          ( (vl-position ent nlst) (alert "Already Selected"))
          (t (alert "Not a Text Entity"))
    );end_cond
    (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
  );end_while

  (cond (tot
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (princ)
);end_defun

 

sorry for that , but just for more enhancement..  i noticed that when i select entities , if i clicked around the text , the selection choice ended and the lisp start to ask me for insertion location for the sum .. so please if u could change it to be in way when click around , gives message (it even could be in command line) about no text selected and asks for select another entity instead of abort selection ... sorry many words 😁, i hope u got me 🙏

Link to comment
Share on other sites

It's currently setup so that if you select a blank area of the screen this is deemed the end of selection. This is the easiest way to control and exit the loop so you have to ensure the required text is inside the pick box. There are three options :

 

1. Increase the size of the pickbox and reset it on exit. (find a size that suits and eliminates miss picks)

2. Have it ask a "Select Another" question on every iteration of the loop.

3. Change the selection process completely to a selection set pick. This would work if all the TEXT or MTEXT you want to select were on the same layer and would also aleviate the need to check for duplicate entries, but could result in missed items with no way to check.

 

I leave the decision up to you. It's late here so I'm off to bed, ansd will make any changes when I have time tomorrow morning.

  • Like 1
Link to comment
Share on other sites

3 minutes ago, dlanorh said:

It's currently setup so that if you select a blank area of the screen this is deemed the end of selection. This is the easiest way to control and exit the loop so you have to ensure the required text is inside the pick box. There are three options :

 

1. Increase the size of the pickbox and reset it on exit. (find a size that suits and eliminates miss picks)

2. Have it ask a "Select Another" question on every iteration of the loop.

3. Change the selection process completely to a selection set pick. This would work if all the TEXT or MTEXT you want to select were on the same layer and would also aleviate the need to check for duplicate entries, but could result in missed items with no way to check.

 

I leave the decision up to you. It's late here so I'm off to bed, ansd will make any changes when I have time tomorrow morning.

sounds it is hard to change that selection of blank .. but may be it could ended with press space or ctrl or anything else if there is a way to program it 

 anyway , thanks for u much , and good night for u there 😇

Link to comment
Share on other sites

@shadi I've thought of another way. This asks if you have finished when you make a blank selection. "Yes" will calculate and insert total "No" will allow further selections. Default (press return or right click mouse) is "No"

 

(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* sv_lst sv_vals ent elst el num xsf ans tot qflg nlst sel pt txt)

  (defun *error* ( msg )
    (mapcar 'setvar sv_lst sv_vals)
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (setq sv_lst (list 'cmdecho 'osmode 'dynmode 'dynprompt)
        sv_vals (mapcar 'getvar sv_lst)
  );end_setq

  (mapcar 'setvar sv_lst '(0 0 3 1))

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (not qflg)
    (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (cond ( (not sel)
            (initget "Yes No")
            (setq ans (cond ( (getkword "\nSelection Finished [Yes/No] <No>")) ("No")))
            (if (= ans "Yes") (setq qflg T))
          )
    );end_cond
    (cond ( (and (not qflg) sel)
            (setq elst (entget (setq ent (car sel))))
            (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
                    (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                          (t (setq num (atof (getpropertyvalue ent "Text"))))
                    );end_cond
                    (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
                  )
                  ( (vl-position ent nlst) (alert "Already Selected"))
                  (t (alert "Not a Text Entity"))
            );end_cond
            (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
          )
    );end_cond
  );end_while

  (cond ( (and tot qflg)
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (mapcar 'setvar sv_lst sv_vals)
  (princ)
);end_defun

 

  • Thanks 1
Link to comment
Share on other sites

5 hours ago, dlanorh said:

@shadi I've thought of another way. This asks if you have finished when you make a blank selection. "Yes" will calculate and insert total "No" will allow further selections. Default (press return or right click mouse) is "No"

 


(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* sv_lst sv_vals ent elst el num xsf ans tot qflg nlst sel pt txt)

  (defun *error* ( msg )
    (mapcar 'setvar sv_lst sv_vals)
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (setq sv_lst (list 'cmdecho 'osmode 'dynmode 'dynprompt)
        sv_vals (mapcar 'getvar sv_lst)
  );end_setq

  (mapcar 'setvar sv_lst '(0 0 3 1))

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (not qflg)
    (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (cond ( (not sel)
            (initget "Yes No")
            (setq ans (cond ( (getkword "\nSelection Finished [Yes/No] <No>")) ("No")))
            (if (= ans "Yes") (setq qflg T))
          )
    );end_cond
    (cond ( (and (not qflg) sel)
            (setq elst (entget (setq ent (car sel))))
            (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
                    (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                          (t (setq num (atof (getpropertyvalue ent "Text"))))
                    );end_cond
                    (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
                  )
                  ( (vl-position ent nlst) (alert "Already Selected"))
                  (t (alert "Not a Text Entity"))
            );end_cond
            (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
          )
    );end_cond
  );end_while

  (cond ( (and tot qflg)
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (mapcar 'setvar sv_lst sv_vals)
  (princ)
);end_defun

 

this is amazing perfect to me 😍🤗 ,  thank u a lot for ur help @dlanorh .. to be honest , i am new in lisp programming and i was trying to do such lisp , i spent days to adjust the first lisp to make it be in the way i wanted but it was complicated to me to do , as u see in the attachment( desktop full of lisps try & error 😁).. then u finally did it to me like superman 😇... so thank u once again dear sir for ur help , ur time and ur patience🌹

try and error.png

Link to comment
Share on other sites

  • 2 weeks later...
On 8/31/2020 at 1:34 PM, dlanorh said:

@shadi I've thought of another way. This asks if you have finished when you make a blank selection. "Yes" will calculate and insert total "No" will allow further selections. Default (press return or right click mouse) is "No"

 


(defun rh:em_txt ( pt txt lyr sty tht xsf)
  (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText")
                  (cons 10 pt) (cons 1 txt) (if lyr (cons 8 lyr)) (if sty (cons 7 sty)) (if tht (cons 40 tht)) (if xsf (cons 41 xsf))
            );end_list
  );end_entmakex
);end_defun

(vl-load-com)

(defun c:t+ ( / *error* sv_lst sv_vals ent elst el num xsf ans tot qflg nlst sel pt txt)

  (defun *error* ( msg )
    (mapcar 'setvar sv_lst sv_vals)
    (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
    (princ)
  );end_defun

  (setq sv_lst (list 'cmdecho 'osmode 'dynmode 'dynprompt)
        sv_vals (mapcar 'getvar sv_lst)
  );end_setq

  (mapcar 'setvar sv_lst '(0 0 3 1))

  (while (not tot)
    (setq el (entget (setq ent (car (entsel "\Select First Text Number Entity : ")))))
    (cond ( (wcmatch (cdr (assoc 0 el)) "*TEXT")
            (cond ( (= (cdr (assoc 0 el)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString")) xsf (cdr (assoc 41 el))))
                  (t (setq num (atof (getpropertyvalue ent "Text")) xsf 1.0))
            );end_cond
            (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")) (t (setq tot num)))
          )
          (t (alert "Not a Text Entity"))
    );end_cond
    (cond (num (setq nlst (cons ent nlst))))
  );end_while

  (while (not qflg)
    (setq sel (entsel "\nSelect Next Text Number Entity : "))
    (cond ( (not sel)
            (initget "Yes No")
            (setq ans (cond ( (getkword "\nSelection Finished [Yes/No] <No>")) ("No")))
            (if (= ans "Yes") (setq qflg T))
          )
    );end_cond
    (cond ( (and (not qflg) sel)
            (setq elst (entget (setq ent (car sel))))
            (cond ( (and (wcmatch (cdr (assoc 0 elst)) "*TEXT") (not (vl-position ent nlst)))
                    (cond ( (= (cdr (assoc 0 elst)) "TEXT") (setq num (atof (getpropertyvalue ent "TextString"))))
                          (t (setq num (atof (getpropertyvalue ent "Text"))))
                    );end_cond
                    (cond ( (zerop num) (setq num nil) (alert "Text Entity NOT a number")))
                  )
                  ( (vl-position ent nlst) (alert "Already Selected"))
                  (t (alert "Not a Text Entity"))
            );end_cond
            (if num (setq tot (+ tot num) nlst (cons ent nlst) num nil))
          )
    );end_cond
  );end_while

  (cond ( (and tot qflg)
          (setq pt (getpoint "\nSelect Total Insertion Point : ")
                txt (if (zerop (rem tot 1.0)) (rtos tot 2 0) (rtos tot 2 3))
          );end_setq
          (rh:em_txt pt txt (cdr (assoc 8 el)) (cdr (assoc 7 el)) (cdr (assoc 40 el)) xsf)
          (if nlst (foreach o (mapcar 'vlax-ename->vla-object nlst) (vla-delete o)))
        )
  );end_cond

  (mapcar 'setvar sv_lst sv_vals)
  (princ)
);end_defun

 

good evening @dlanorh .. hope u doing great .. i find that when i click text entity twice , the sum will be double the text number and alerted that this text already selected  although i want the lisp to pass the wrong 2nd selection without adding it to the sum .. may u help me please in that ?🙏

Link to comment
Share on other sites

1 hour ago, shadi said:

good evening @dlanorh .. hope u doing great .. i find that when i click text entity twice , the sum will be double the text number and alerted that this text already selected  although i want the lisp to pass the wrong 2nd selection without adding it to the sum .. may u help me please in that ?🙏

 

Quick fix. Find this

 

( (vl-position ent nlst) (alert "Already Selected"))

 

and change to this

 

( (vl-position ent nlst) (alert "Already Selected") (setq num nil))

I should have spotted this. :cry:

  • Thanks 1
Link to comment
Share on other sites

24 minutes ago, dlanorh said:

 

Quick fix. Find this

 


( (vl-position ent nlst) (alert "Already Selected"))

 

and change to this

 


( (vl-position ent nlst) (alert "Already Selected") (setq num nil))

I should have spotted this. :cry:

🤗🤗🤗...thank u tooo much for ur help 🌹.. it works well now with me 😊

Link to comment
Share on other sites

Re all your lisp you can make a custom menu very easy that will have all your lisps ready to use. 1st step is to save all your lisps in a common directory then they wont clutter your desktop.

You just need to add a support and trusted path for the location of the lisps.

 

You just use notepad save as say SHADI.MNU and use menuload to load it.

***MENUGROUP=SHADI

***POP20
**SHADILIB
             [LIBRARY]
             [1/4 POINTS]^C^C(LOAD "1-4 POINTS")
             [Add 2 Level]^C^C(LOAD "add-to-levels")
             [Add-pits-drain]^C^C(LOAD"Add-pits-drain")
             [Allbylayer]^C^C(LOAD "Allbylayer")
             [Channel Flow]^c^c^p(load "channel flow")
             [Chevron lines]^c^c^p(load "chevron") chevron
             [Color2layer]^C^C^p(LOAD "color2layer")

 

 

screenshot229.png

  • Like 1
Link to comment
Share on other sites

On 9/14/2020 at 2:39 AM, BIGAL said:

Re all your lisp you can make a custom menu very easy that will have all your lisps ready to use. 1st step is to save all your lisps in a common directory then they wont clutter your desktop.

You just need to add a support and trusted path for the location of the lisps.

 

You just use notepad save as say SHADI.MNU and use menuload to load it.


***MENUGROUP=SHADI

***POP20
**SHADILIB
             [LIBRARY]
             [1/4 POINTS]^C^C(LOAD "1-4 POINTS")
             [Add 2 Level]^C^C(LOAD "add-to-levels")
             [Add-pits-drain]^C^C(LOAD"Add-pits-drain")
             [Allbylayer]^C^C(LOAD "Allbylayer")
             [Channel Flow]^c^c^p(load "channel flow")
             [Chevron lines]^c^c^p(load "chevron") chevron
             [Color2layer]^C^C^p(LOAD "color2layer")

 

 

screenshot229.png

i tried it and loaded it in cad but error loading in lisps , the following file is what i did 

shadi.mnu

Link to comment
Share on other sites

You need to set up where the lisp's are located as a search path in Autocad. Then you can use just the name, else need say  [combineshadi]^C^C(LOAD "c:\\mylisp\\combineshadi") with full path to file.

 

TYPE OPTIONS

Add where the lisps are and also do Trusted paths, use the  Add then browse.

 

image.thumb.png.5862d34c1615554709ee9753986cbaa6.png

 

 

Edited by BIGAL
  • Like 1
Link to comment
Share on other sites

1 hour ago, BIGAL said:

You need to set up where the lisp's are located as a search path in Autocad. Then you can use just the name, else need say  [combineshadi]^C^C(LOAD "c:\\mylisp\\combineshadi") with full path to file.

 

TYPE OPTIONS

Add where the lisps are and also do Trusted paths, use the  Add then browse.

 

image.thumb.png.5862d34c1615554709ee9753986cbaa6.png

 

 

i got it , so thank u for ur help , i will try it in morning , now it is too late for me here and so sleepy .. good times for u there 🌹

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...