Message 1 of 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Happy New Year everone!
I tried to uitilize LM routine into my own lisp to inert block from a slide library and auto break line on insertion point but I get these error:
Can't reenter LISP.
Invalid point.
Specify point for block:
Error: too few actual parameters
I have already added LM lisp from here
Spoiler
(defun c:test (/ slide_lst sld-lib picked path)
(setq slide_lst '("AA" "BB" "CC" "DD" "EE"
)
sld-lib "XX"
)
(setq path "C:\\Slide\\")
(while
(setq picked
(dcl_img_menu sld-lib
slide_lst
path
"-=< Test Symbols >=-"
"[ Pick image to insert: ]"
4
5
8
18
)
)
(princ (strcat "\n" picked " slide selected."))
(DRX "" "" "Layer for B" 1 "Continuous" 0.5 )
)
(princ)
)
;++++++++++++++++ DRX FUNCTION +++++++++++++++++
(defun DRX ( Pathh Block Layer / oCLAYER *error* blk dwg ins )
(defun *error* (errmsg)
(if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break,end"))
(princ (strcat "\nError: " errmsg)))
(setvar 'CLAYER oCLAYER)
(setvar 'CMDECHO 1)
; -----
(setq oCLAYER (getvar 'CLAYER))
(setvar 'CMDECHO 0)
(command "_.-LAYER" "_M" "LA_TEST" "_C" "red" "LA_TEST" "_LW" 0.5 "LA_TEST" "")
(vla-put-description (vlax-ename->vla-object (tblobjname "LAYER" "LA_TES")) "TEST ")
(setvar 'CMDECHO 1)
(defun *error* ( msg )
(LM:endundo (LM:acdoc))
(if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
(princ (strcat "\nError: " msg))
)
(princ)
)
(cond
( (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" (getvar 'clayer))))))
(princ "\nCurrent layer locked.")
)
;( (not (or (tblsearch "block" (setq dwg blk)) (setq dwg (findfile (strcat blk ".dwg")))))
; (princ (strcat "\nBlock \"" blk "\" not found."))
; )
( (setq ins (getpoint "\nSpecify point for block: "))
(LM:startundo (LM:acdoc))
(LM:AutoBlockBreak
(vlax-vla-object->ename
(vla-insertblock
(vlax-get-property (LM:acdoc) (if (= 1 (getvar 'cvport)) 'paperspace 'modelspace))
(vlax-3D-point (trans ins 1 0))
picked 1.0 1.0 1.0
(angle '(0.0 0.0 0.0) (trans (getvar 'ucsxdir) 0 (trans '(0.0 0.0 1.0) 1 0 t) t))
)
)
(= "ON" (getenv "LMac\\ABBRotation"))
)
(LM:endundo (LM:acdoc))
)
)
;; (command "_.-INSERT" (strcat pathh picked) pause 1.0 1.0 pause) ;; IT WORKS FINE WITH NORMAL INSERTION AND NOT WHEN COMBINES WITH LM LISP
(setvar 'CLAYER oCLAYER)
)
(setq slide_lst '("AA" "BB" "CC" "DD" "EE"
)
sld-lib "XX"
)
(setq path "C:\\Slide\\")
(while
(setq picked
(dcl_img_menu sld-lib
slide_lst
path
"-=< Test Symbols >=-"
"[ Pick image to insert: ]"
4
5
8
18
)
)
(princ (strcat "\n" picked " slide selected."))
(DRX "" "" "Layer for B" 1 "Continuous" 0.5 )
)
(princ)
)
;++++++++++++++++ DRX FUNCTION +++++++++++++++++
(defun DRX ( Pathh Block Layer / oCLAYER *error* blk dwg ins )
(defun *error* (errmsg)
(if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break,end"))
(princ (strcat "\nError: " errmsg)))
(setvar 'CLAYER oCLAYER)
(setvar 'CMDECHO 1)
; -----
(setq oCLAYER (getvar 'CLAYER))
(setvar 'CMDECHO 0)
(command "_.-LAYER" "_M" "LA_TEST" "_C" "red" "LA_TEST" "_LW" 0.5 "LA_TEST" "")
(vla-put-description (vlax-ename->vla-object (tblobjname "LAYER" "LA_TES")) "TEST ")
(setvar 'CMDECHO 1)
(defun *error* ( msg )
(LM:endundo (LM:acdoc))
(if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
(princ (strcat "\nError: " msg))
)
(princ)
)
(cond
( (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" (getvar 'clayer))))))
(princ "\nCurrent layer locked.")
)
;( (not (or (tblsearch "block" (setq dwg blk)) (setq dwg (findfile (strcat blk ".dwg")))))
; (princ (strcat "\nBlock \"" blk "\" not found."))
; )
( (setq ins (getpoint "\nSpecify point for block: "))
(LM:startundo (LM:acdoc))
(LM:AutoBlockBreak
(vlax-vla-object->ename
(vla-insertblock
(vlax-get-property (LM:acdoc) (if (= 1 (getvar 'cvport)) 'paperspace 'modelspace))
(vlax-3D-point (trans ins 1 0))
picked 1.0 1.0 1.0
(angle '(0.0 0.0 0.0) (trans (getvar 'ucsxdir) 0 (trans '(0.0 0.0 1.0) 1 0 t) t))
)
)
(= "ON" (getenv "LMac\\ABBRotation"))
)
(LM:endundo (LM:acdoc))
)
)
;; (command "_.-INSERT" (strcat pathh picked) pause 1.0 1.0 pause) ;; IT WORKS FINE WITH NORMAL INSERTION AND NOT WHEN COMBINES WITH LM LISP
(setvar 'CLAYER oCLAYER)
)
Thanks for your help 🙂
Solved! Go to Solution.