Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

unable to complete code

9 REPLIES 9
SOLVED
Reply
Message 1 of 10
olbapxpablo
485 Views, 9 Replies

unable to complete code

guys can you please update this code and make the text output in leader format

 

 and also this one is note working on dynamic block with strech and rotate parameter it display different name

 

 

; places name of block as text via pick (but i want it in leader format)
 
(defun C:blockn()
 
(setvar "cmdecho" 0)
 
(setq pt(cadr(entsel"\nSelect Block:")))
 
(setq e1(ssget pt))
 
(setq e2 (entget (ssname e1 0)))
 
(setq blname (cdr(assoc 2 e2)))
 
(setq pt1 (getpoint"\nSelect point for block title:"))
 
(command "text" pt1 "" 0 blname)
 
)

9 REPLIES 9
Message 2 of 10
hmsilva
in reply to: olbapxpablo

Hi olbapxpablo,

 

maybe something like this:

 

(defun c:demo (/ *error* echo name obj osm pt pt1 ss)

  (defun *error* (msg)
    (if echo (setvar 'CMDECHO echo))
    (if osm (setvar 'OSMODE osm))
    (cond ((not msg))
          ((member msg '("Function cancelled" "quit / exit abort")))
          ((princ (strcat "\n** Error: " msg " ** ")))
    )
    (princ)
  )

  (if (and (setq echo (getvar 'CMDECHO))
           (setvar 'CMDECHO 0)
           (setq osm (getvar 'OSMODE))
           (setvar 'OSMODE 512)
           (setq pt (getpoint "\nSelect a Block to put name in a Leader: "))
           (setvar 'OSMODE osm)
           (setq ss (ssget pt '((0 . "INSERT"))))
           (setq obj (vlax-ename->vla-object (ssname ss 0)))
           (setq pt1 (getpoint pt "\nPosition of Leader text: "))
      )
    (progn
      (setq name (if (vlax-property-available-p obj 'effectivename)
                   (vla-get-effectivename obj)
                   (vla-get-name obj)
                 )
      )
      (command "_.leader" "_NONE" pt "_NONE" pt1 "" name "")
    )
    (prompt "\nNot a Block!")
  )
  (*error* nil)
  (princ)
)

 

Hope that helps

Henrique

EESignature

Message 3 of 10
olbapxpablo
in reply to: hmsilva

this is what i wanted , thank you hmsilva

 

adding 2nd pickpoint in leader is possible?

Message 4 of 10
hmsilva
in reply to: olbapxpablo

You're welcome, olbapxpablo!

Try

 

(defun c:demo (/ *error* echo name obj osm pt pt1 pt2 ss)

  (defun *error* (msg)
    (if echo (setvar 'CMDECHO echo))
    (if osm (setvar 'OSMODE osm))
    (cond ((not msg))
          ((member msg '("Function cancelled" "quit / exit abort")))
          ((princ (strcat "\n** Error: " msg " ** ")))
    )
    (princ)
  )

  (if (and (setq echo (getvar 'CMDECHO))
           (setvar 'CMDECHO 0)
           (setq osm (getvar 'OSMODE))
           (setvar 'OSMODE 512)
           (setq pt (getpoint "\nSelect a Block to put name in a Leader: "))
           (setvar 'OSMODE osm)
           (setq ss (ssget pt '((0 . "INSERT"))))
           (setq obj (vlax-ename->vla-object (ssname ss 0)))
           (setq pt1 (getpoint pt "\nSecond leader point: "))
           (setq pt2 (getpoint pt1 "\nPosition of Leader text: "))
      )
    (progn
      (setq name (if (vlax-property-available-p obj 'effectivename)
                   (vla-get-effectivename obj)
                   (vla-get-name obj)
                 )
      )
      (command "_.leader" "_NONE" pt "_NONE" pt1 "_NONE" pt2 "" name "")
    )
    (prompt "\nNot a Block!")
  )
  (*error* nil)
  (princ)
)

 

 

Henrique

EESignature

Message 5 of 10
olbapxpablo
in reply to: hmsilva

sorry for too much request
can you please also do a same concept but instead of block name it take the att def ?
thank you very much in advance
Message 6 of 10
hmsilva
in reply to: olbapxpablo


@olbapxpablo wrote:
sorry for too much request
can you please also do a same concept but instead of block name it take the att def ?
thank you very much in advance

You're welcome, olbapxpablo.

 

Attribute TAG or VALUE?

 

Henrique

EESignature

Message 7 of 10
olbapxpablo
in reply to: hmsilva

Sir Value
Message 8 of 10
hmsilva
in reply to: olbapxpablo

Try:

(defun c:demo (/ *error* atts echo obj osm pt pt1 pt2 ss val)

  (defun *error* (msg)
    (if echo (setvar 'CMDECHO echo))
    (if osm (setvar 'OSMODE osm))
    (cond ((not msg))
          ((member msg '("Function cancelled" "quit / exit abort")))
          ((princ (strcat "\n** Error: " msg " ** ")))
    )
    (princ)
  )

  (if (and (setq echo (getvar 'CMDECHO))
           (setvar 'CMDECHO 0)
           (setq osm (getvar 'OSMODE))
           (setvar 'OSMODE 512)
           (setq pt (getpoint "\nSelect a Block to put Attribute Value in a Leader: "))
           (setvar 'OSMODE osm)
           (setq ss (ssget pt '((0 . "INSERT")(66 . 1))))
           (setq obj (vlax-ename->vla-object (ssname ss 0)))
           (vlax-property-available-p obj 'Hasattributes)
           (setq pt1 (getpoint pt "\nSecond leader point: "))
           (setq pt2 (getpoint pt1 "\nPosition of Leader text: "))
      )
    (progn
      (setq atts (vlax-invoke obj 'Getattributes))
      (setq val (vla-get-TextString (car atts)))
      (command "_.leader" "_NONE" pt "_NONE" pt1 "_NONE" pt2 "" val "")
    )
    (prompt "\nNot a Block with Attributes!")
  )
  (*error* nil)
  (princ)
)

 

 

Henrique

EESignature

Message 9 of 10
olbapxpablo
in reply to: hmsilva

again thank you very much
Message 10 of 10
hmsilva
in reply to: olbapxpablo

You're welcome!
Glad I could help

Henrique

EESignature

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost