Jump to content

Block into multileader text


Recommended Posts

  • Replies 26
  • Created
  • Last Reply

Top Posters In This Topic

  • alanjt

    7

  • stevsmith

    4

  • seapea

    2

  • janickovic

    2

Top Posters In This Topic

Posted Images

have a look at this code snippet should help

 

(foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 0 )) 'getattributes)
       (if (= oldtag1 (strcase ([color="red"]vla-get-tagstring[/color] att)))

Link to post
Share on other sites
  • 6 months later...

I get the same thing.

 

Have you managed to get the Lisp to copy/paste the Block Description on the Multileader?

 

This is what happens when using the Lisp:

 

Command: TEST

Select block:

Specify leader landing location: _.mleader

Specify leader arrowhead location or [leader Landing first/Content first/Options] : _non

Specify leader landing location: _non

Specify landing distance : *Description of Block appears in command line*

Specify landing distance :

 

And then it disappears - Opens an empty Text box for me to write a Text on the MLeader..

 

The BNameLabel seems to work though

Link to post
Share on other sites
  • 9 months later...
On 6/12/2013 at 12:15 AM, alanjt said:

 

 

 

 


(defun c:BNameLabel (/ ent entl obj)
 (cond ((not (setq ent (car (entsel "\nSelect block: ")))))
       ((not (eq (cdr (assoc 0 (entget ent))) "INSERT")) (princ "\nInvalid object!"))
       ((setq pt (getpoint "\nSpecify first point: "))
        (setq entl (entlast))
        (vl-cmdf "_.mleader" "_non" pt "\\")
        (while (eq (logand 1 (getvar 'CMDACTIVE)) 1) (vl-cmdf ""))
        (if (not (equal entl (setq entl (entlast))))
          (vla-put-textstring
            (vlax-ename->vla-object entl)
            (vlax-get-property
              (setq obj (vlax-ename->vla-object ent))
              (if (vlax-property-available-p obj 'EffectiveName)
                'EffectiveName
                'Name
              )
            )
          )
        )
       )
 )
 (princ)
)
(vl-load-com)
(princ)
 

 

 

This is great, but someone can do the same as this, but to get the layer name?

Many Thanks

Link to post
Share on other sites
  • 2 weeks later...
On 5/6/2019 at 3:57 AM, m1r said:

 

This is great, but someone can do the same as this, but to get the layer name?

Many Thanks

 

Replace:

            (vlax-get-property
              (setq obj (vlax-ename->vla-object ent))
              (if (vlax-property-available-p obj 'EffectiveName)
                'EffectiveName
                'Name
              )
            )

 

with:

(cdr (assoc 8 (entget ent)))

 

Link to post
Share on other sites
  • 7 months later...

Hi...I've been trying to use the lisp codes in this conversation to automatically label a block with its name, description or, better yet, its defined attribute. So far, I've only been able to get a multileader with a text field that prompts me to enter the tag number manually. I'm wanting it to read the blocks information and automatically output this in the text field. What am I doing wrong?

 

Link to post
Share on other sites
  • 1 year later...
whysoserious

Can somebody modify this code so that it reads a certain attribute in the block? And if possible, the text height of the multileader to be chosen by the user? I tried modify this myself but with no luck even though so much material can be found, I get all sorts of errors which I have no idea how to fix them. 😒 Thank you

Link to post
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
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...