Place Text At Block

Place Text At Block

HR2323
Advocate Advocate
473 Views
4 Replies
Message 1 of 5

Place Text At Block

HR2323
Advocate
Advocate

I need lisp to keep place text where block. Place text select option two type, first layer wise and second block name wise.

0 Likes
Accepted solutions (1)
474 Views
4 Replies
Replies (4)
Message 2 of 5

ВeekeeCZ
Consultant
Consultant

Try this...

 

(defun C:BlkLayLabel ( / ss ts n)
  (if (and (princ "\nNeed blocks,")
	   (setq ss (ssget '((0 . "INSERT"))))
	   (setq ts (getvar 'TEXTSIZE)))
    (repeat (setq n (sslength ss))
      (entmakex (list (cons 0 "TEXT")
		      (assoc 10 (entget (ssname ss (setq n (1- n)))))
		      (cons 40 ts)
		      (cons 1 (cdr (assoc 8 (entget (ssname ss n)))))
		      ))))
  (princ)
)

(defun C:BlkNameLabel ( / ss ts n)
  (if (and (princ "\nNeed blocks,")
	   (setq ss (ssget '((0 . "INSERT"))))
	   (setq ts (getvar 'TEXTSIZE)))
    (repeat (setq n (sslength ss))
      (entmakex (list (cons 0 "TEXT")
		      (assoc 10 (entget (ssname ss (setq n (1- n)))))
		      (cons 40 ts)
		      (cons 1 (cdr (assoc 2 (entget (ssname ss n)))))
		      ))))
  (princ)
)
Message 3 of 5

HR2323
Advocate
Advocate

Thank you sir its work, can you add little bit more changes, text height "2", and text justification middle center.

0 Likes
Message 4 of 5

ВeekeeCZ
Consultant
Consultant
Accepted solution

Ok, then try this code.

 

Spoiler
(defun C:BlkLayLabel ( / ss en n)
  (if (and (princ "\nNeed blocks,")
	   (setq ss (ssget '((0 . "INSERT")))))
    (repeat (setq n (sslength ss))
      (setq en (entget (ssname ss (setq n (1- n)))))
      (entmakex (list (cons   0 "TEXT")
		      (assoc 10 en)
		      (cons  11 (cdr (assoc 10 en)))
		      (cons  40 2)
		      (cons   1 (cdr (assoc 8 en)))
		      (cons  72 1)
		      (cons  73 2)
		      ))))
  (princ)
)

(defun C:BlkNameLabel ( / ss en n)
  (if (and (princ "\nNeed blocks,")
	   (setq ss (ssget '((0 . "INSERT")))))
    (repeat (setq n (sslength ss))
      (setq en (entget (ssname ss (setq n (1- n)))))
      (entmakex (list (cons   0 "TEXT")
		      (assoc 10 en)
		      (cons  11 (cdr (assoc 10 en)))
		      (cons  40 2)
		      (cons   1 (cdr (assoc 2 en)))
		      (cons  72 1)
		      (cons  73 2)
		      ))))
  (princ)
)
Message 5 of 5

HR2323
Advocate
Advocate

Thank you very much, This time lisp has perfectly work.

 

0 Likes