Jump to content

Attribute edit-Rotate/Move Globally


ORgrown

Recommended Posts

I posted this earlier to the "How do I...?" and it was suggested I check here...

 

ACAD 2000 or 2002

 

Inserting a block with one constant attribute and one changeable. Block is rotated as necessary, but the text inside and outside rotate with the block...I need both to be rotated to zero and the changeable/outside text to then be repositioned (so it's not on top of the block, etc).

 

I've searched Cadalyst and also here, but have not found anything without buying another program. Is there a Lisp routine someone has for this or is there a different way to do this?

 

Reply by CarlB: "This could be handled with a lisp routine. Either one that inserts the block and repositions attributes upon insertion, or one you use to "fix" already inserted blocks to rotate attributes. If you post this to the lisp/customization forum & attach a drawing of the block you'll probably find some takers."

 

I'll try to attach the block as CarlB suggested...

Thanks!

FE.dwg

Link to comment
Share on other sites

  • Replies 25
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    6

  • ORgrown

    4

  • kpblc

    3

  • leos98

    3

Top Posters In This Topic

Try this:

(defun c:attrot (/ adoc selset)
 (vl-load-com)
 (vla-startundomark
   (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
   ) ;_ end of vla-startundomark
 (if (setq selset (ssget "_:L" '((0 . "INSERT") (66 . 1))))
   (foreach blk (mapcar 'vlax-ename->vla-object
                        (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                        ) ;_ end of mapcar
     (vl-catch-all-apply
       '(lambda ()
          (foreach att (vlax-safearray->list
                         (vlax-variant-value (vla-getattributes blk))
                         ) ;_ end of vlax-safearray->list
            (vl-catch-all-apply
              '(lambda ()
                 (vla-put-rotation att 0.)
                 ) ;_ end of lambda
              ) ;_ end of vl-catch-all-apply
            ) ;_ end of foreach
          ) ;_ end of lambda
       ) ;_ end of vl-catch-all-apply
     ) ;_ end of foreach
   ) ;_ end of if
 (vla-endundomark adoc)
 (princ)
 ) ;_ end of defun
(princ "\nType ATTROT in command line to start lisp")

Link to comment
Share on other sites

Thanks kpblc!

It mostly works...the attributes are all at zero, but I'll still need to go back and reposition the external attribute to move it "out of the way"...It definitely reduces the amount of time fixing, so many thanks to you!

Link to comment
Share on other sites

Hi beaverstate,

 

My routine is 'plain' lisp but does about the same as kpblc's. It *should* rotate to 0 and move the 'outside' attribute above the block insert.

 

(princ "\nStart with AROT")
(defun c:arot ()
  (command "_UNDO" "_BE")
  (princ "\nSelect blocks to rotate attributes: ")
  (setq Count 0)
  (setq Bset (ssget '((0 . "INSERT")(66 . 1))))
  (setq Bnum (sslength Bset))
  (repeat Bnum
     (setq Ename (ssname Bset Count)
           Att1 (entnext Ename)
           Att2 (entnext Att1)
           A1dat (entget Att1)
           A2dat (entget Att2)
           IP_Bk (cdr (assoc 10 (entget Ename)))
           IP_Att1 (cdr (assoc 11 A1dat))
           AttOff (distance IP_Bk IP_Att1)
           AttPt (mapcar '+ IP_Bk (list 0.0 AttOff 0.0))
           N_Att1 (subst '(50 . 0.0) (assoc 50 A1dat) A1dat)
           N_Att1 (subst (cons 11 AttPt) (assoc 11 N_Att1) N_Att1)
           N_Att2 (subst '(50 . 0.0) (assoc 50 A2dat) A2dat))
     (entmod N_Att1)
     (entmod N_Att2)
     (entupd Ename)
     (setq Count (1+ Count))
  )
  (command "_UNDO" "_END")
  (princ)
)

Link to comment
Share on other sites

Thanks CarlB,

I've attached another dwg as an example of what I'm working with to explain better. As you can see, simply moving the outside text above the block may not allow the text to be read as it might be in the way of other layers....

I'm hoping there is a way to actually "Pick" the location near the block for the attribute to go as its location could vary every time.

Maybe it's only possible to go as far as rotating to zero, then I'll manually ATTEDIT the Position of the attribute.

Thank you for the time you've taken on the routine...This is one reason I like this forum--everyone is so ready to help a colleague! :)

ATTROTATE0.dwg

Link to comment
Share on other sites

then I'll manually ATTEDIT the Position of the attribute

 

-Don't do that, just click the attribute to show the grips, click on a grip, then drag it. The routine could be modified for you to position the attribute of the block after rotating to 0, but it may be almost as quick to reposition afterwards.

Link to comment
Share on other sites

Orgrown,

 

This is the macro we use for some blocks (in this case a floor waste, FW.dwg).

 

It gets the ltscale and adjusts the size of the block to suit. It then pauses for the user to position it and sets the rotation to zero.

 

The block has an attribute which we force to 'FW'. It then steps through a sequence that incorporates the attedit command (prefixed with a '-'), runs through some of the defaults and uses 'L' to selct the last attribute. A few more defaults and the attribute attaches itself to the curser and allows a final reposition.

 

-INSERT FW S $M=$(/,$(getvar,ltscale),10) \0 FW;-attedit ;;;;L;;a 0 P;\;

 

When you hit the floor waste button, the floor waste appears at the right size on the curser, you position it and then the attribute FW appears on the curser waiting for you to place it.

 

There wouldn't be too much of a problem incorporating the first attribute to appear automatically at zero degrees using a similar sequence, then using the above sequence for the second attribute.

Link to comment
Share on other sites

Perhaps the better way will be manuall replace attribute by grip? It seems more comfortably (i think). But running _attsync command (or _battman) could erase all changes by attributes - be careful!

Link to comment
Share on other sites

  • 8 months later...
Try this:

(defun c:attrot (/ adoc selset)
 (vl-load-com)
 (vla-startundomark
   (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
   ) ;_ end of vla-startundomark
 (if (setq selset (ssget "_:L" '((0 . "INSERT") (66 . 1))))
   (foreach blk (mapcar 'vlax-ename->vla-object
                        (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                        ) ;_ end of mapcar
     (vl-catch-all-apply
       '(lambda ()
          (foreach att (vlax-safearray->list
                         (vlax-variant-value (vla-getattributes blk))
                         ) ;_ end of vlax-safearray->list
            (vl-catch-all-apply
              '(lambda ()
                 (vla-put-rotation att 0.)
                 ) ;_ end of lambda
              ) ;_ end of vl-catch-all-apply
            ) ;_ end of foreach
          ) ;_ end of lambda
       ) ;_ end of vl-catch-all-apply
     ) ;_ end of foreach
   ) ;_ end of if
 (vla-endundomark adoc)
 (princ)
 ) ;_ end of defun
(princ "\nType ATTROT in command line to start lisp")

 

Can this lisp be modified so I can enter a rotation angle? Right now it only rotates to angle 0. I have a whole bunch of attributes that needs to be rotated to certain angles.

Link to comment
Share on other sites

Maybe:

 

(defun c:atrot(/ blSet attLst errCount oldAng)
 (if(not atrot:rAng)(setq atrot:rAng 0))
 (setq oldAng atrot:rAng
       atrot:rAng
 (getangle
   (strcat "\nSpecify rotation angle <"(angtos atrot:rAng)">: ")))
 (if(not atrot:rAng)(setq atrot:rAng oldAng))
 (princ "<<< Select blocks to rotate attributes >>>")
 (setq errCount 0)
 (if
   (setq blSet(ssget '((0 . "INSERT")(66 . 1))))
   (progn
     (setq blSet(mapcar 'vlax-ename->vla-object 
                   (vl-remove-if 'listp 
                    (mapcar 'cadr(ssnamex blSet)))))
     (foreach itm blSet
(setq attLst
       (vlax-safearray->list
	 (vlax-variant-value
	   (vla-GetAttributes itm))))
(foreach att attLst
  (if(vl-catch-all-error-p
	   (vl-catch-all-apply
	     'vla-put-Rotation(list att atrot:rAng)))
    (setq errCount(1+ ErrCount))
	  ); end if
  ); end foreach
); end foreach
     ); end progn
   (princ ">>> Nothing selected! <<<")
   ); end if
 (if(/= 0 errCount)
   (princ
     (strcat "\n>>> "
(itoa errCount)
      " attributes or blocks were on locked layer! <<< "))
      ); end if
 (princ)
 ); end of c:atrot

 

Excuse me for XRef routine :oops: I could not participate in a forum some time, owing to illness, I shall try to write it shortly...

Link to comment
Share on other sites

Try this (i didn't test it):

(defun c:attrot2 (/ adoc selset ang *error*)
 (defun *error* (msg)
   (vla-endundomark adoc)
   (princ msg)
   (princ)
   ) ;_ end of defun
 
 (vl-load-com)
 (vla-startundomark
   (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
   ) ;_ end of vla-startundomark
 (if (and (not (vl-catch-all-error-p
                 (vl-catch-all-apply
                   '(lambda ()
                      (setq ang
                             (cond
                               ((getangle "\nEnter an angle to rotate attributes <0> : "
                                          ) ;_ end of getangle
                                )
                               (t 0.)
                               ) ;_ end of cond
                            ) ;_ end of setq
                      ) ;_ end of lambda
                   ) ;_ end of vl-catch-all-apply
                 ) ;_ end of vl-catch-all-error-p
               ) ;_ end of not
          ang
          (not (vl-catch-all-error-p
                 (vl-catch-all-apply
                   '(lambda ()
                      (setq selset (ssget "_:L" '((0 . "INSERT") (66 . 1))))
                      ) ;_ end of lambda
                   ) ;_ end of vl-catch-all-apply
                 ) ;_ end of vl-catch-all-error-p
               ) ;_ end of not
          selset
          ) ;_ end of and
   (foreach blk (mapcar 'vlax-ename->vla-object
                        (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                        ) ;_ end of mapcar
     (vl-catch-all-apply
       '(lambda ()
          (foreach att (vlax-safearray->list
                         (vlax-variant-value (vla-getattributes blk))
                         ) ;_ end of vlax-safearray->list
            (vl-catch-all-apply
              '(lambda ()
                 (vla-put-rotation att ang)
                 ) ;_ end of lambda
              ) ;_ end of vl-catch-all-apply
            ) ;_ end of foreach
          ) ;_ end of lambda
       ) ;_ end of vl-catch-all-apply
     ) ;_ end of foreach
   ) ;_ end of if
 (vla-endundomark adoc)
 (princ)
 ) ;_ end of defun

(princ "\nType ATTROT2 in command line to start lisp")

---

Edited: Oops, i'm late...

Link to comment
Share on other sites

  • 1 year later...

Hi ASMI, i use your lisp (below) a lot, thanks for that one, I'm very happy with it !

 

I think that in my case it could be modified so it saves even more time. Can it be modified like this? :

(i mean can 'you' do it...? For i can't..:oops:)

 

1. after command "atrot" it acad promts for the rotation angle of the attibutes. I would like to skip that question and use 0 (zero) degrees. I never use other values. This one i guess is not too hard for you guys.

 

2. After entering the desired degree it propmts to select the blocks. It then use 0 degrees to all attributes. That should not happen: i would like to specify a certain TAG to be set to zero. Since various blocks of mine have the same TAGs it will do exactly what i want.

 

The original lisp I will keep unmodified in my menu for it might come in handy sometime.

Link to comment
Share on other sites

Give this a go:

 

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:atrot  [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] blSet attLst errCount tmp[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] atrot:tag [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] atrot:tag [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tmp [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\nSpecify Tag to be Rotated <"[/color][/b]
                              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] atrot:tag[b][color=RED])[/color][/b] [b][color=#ff00ff]"*all*"[/color][/b] atrot:tag[b][color=RED])[/color][/b] [b][color=#ff00ff]">: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] tmp[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] atrot:tag tmp[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"<<< Select blocks to rotate attributes >>>"[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] errCount [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] blSet [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] blSet [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
                          [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]listp[/color][/b]
                            [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] blSet[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
      [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] itm  blSet
        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] attLst
               [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b]
                 [b][color=RED]([/color][/b][b][color=BLUE]vlax-variant-value[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]vla-GetAttributes[/color][/b] itm[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] att  attLst
          [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] atrot:tag[b][color=RED])[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] att[b][color=RED])[/color][/b] atrot:tag[b][color=RED])[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] att[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-error-p[/color][/b]
                [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-apply[/color][/b]
                  [b][color=DARKRED]'[/color][/b][b][color=BLUE]vla-put-Rotation[/color][/b]
                    [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] att [b][color=#009999]0.0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
            [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] errCount [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] ErrCount[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]">>> Nothing selected! <<<"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/=[/color][/b] [b][color=#009900]0[/color][/b] errCount[b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n>>> "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] errCount[b][color=RED])[/color][/b]
             [b][color=#ff00ff]" attributes or blocks were on locked layer! <<< "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 

 

Tag is case-sensitive

Link to comment
Share on other sites

Lee Mac: jawohl ... I mean, yes it works very good.

Made a few macro's in the "edit" menu and I'm very happy !!

 

This saves me a lot of time...

 

My problem is that i have ideas enough but i can't write vba or lisp allthough i read and try allmost every evening..

 

Thank you for helping me out.

Link to comment
Share on other sites

Lee Mac: jawohl ... I mean, yes it works very good.

Made a few macro's in the "edit" menu and I'm very happy !!

 

This saves me a lot of time...

 

My problem is that i have ideas enough but i can't write vba or lisp allthough i read and try allmost every evening..

 

Thank you for helping me out.

 

 

No worries.

 

My problem is that I don't have enough ideas for LISP programs, as I don't use CAD... I just do the coding

Link to comment
Share on other sites

Hi, thanks for this really great comand!!!

 

The angel 0 in this comand is relative to ucs world, even if my drawing uses a diffrent ucs... is it posible to change the angel to be relative to the current ucs instead?

 

(sorry for my bad english - i hope you understand me anyway...)

Link to comment
Share on other sites

  • 3 weeks later...

Hello guys!

I have not been able to get this lisp to work and I really need it!

When I call the ATROT command, I get the propmt for the tag to be rotated. What am I suppose to type here? What "all" does? I have tryed typing the name of any of the attribute tags on the block I would like to rotate to zero but no luck. This is what I keep getting:

 

Command: ATROT

Specify Tag to be Rotated : S

>>

Select objects: 1 found

Select objects:

; error: no function definition: nil

 

Please Help!:(

 

Give this a go:

 

[b][color=red]([/color][/b][b][color=blue]defun[/color][/b] c:atrot  [b][color=red]([/color][/b][b][color=blue]/[/color][/b] blSet attLst errCount tmp[b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]or[/color][/b] atrot:tag [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] atrot:tag [b][color=#ff00ff]""[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] tmp [b][color=red]([/color][/b][b][color=blue]getstring[/color][/b] [b][color=red]([/color][/b][b][color=blue]strcat[/color][/b] [b][color=#ff00ff]"\nSpecify Tag to be Rotated <"[/color][/b]
                              [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] atrot:tag[b][color=red])[/color][/b] [b][color=#ff00ff]"*all*"[/color][/b] atrot:tag[b][color=red])[/color][/b] [b][color=#ff00ff]">: "[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]or[/color][/b] [b][color=red]([/color][/b][b][color=blue]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] tmp[b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] atrot:tag tmp[b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]princ[/color][/b] [b][color=#ff00ff]"<<< Select blocks to rotate attributes >>>"[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] errCount [b][color=#009900]0[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]if[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] blSet [b][color=red]([/color][/b][b][color=blue]ssget[/color][/b] [b][color=darkred]'[/color][/b][b][color=red]([/color][/b][b][color=red]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
    [b][color=red]([/color][/b][b][color=blue]progn[/color][/b]
      [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] blSet [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]vlax-ename->vla-object[/color][/b]
                          [b][color=red]([/color][/b][b][color=blue]vl-remove-if[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]listp[/color][/b]
                            [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]cadr[/color][/b] [b][color=red]([/color][/b][b][color=blue]ssnamex[/color][/b] blSet[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
      [b][color=red]([/color][/b][b][color=blue]foreach[/color][/b] itm  blSet
        [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] attLst
               [b][color=red]([/color][/b][b][color=blue]vlax-safearray->list[/color][/b]
                 [b][color=red]([/color][/b][b][color=blue]vlax-variant-value[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]vla-GetAttributes[/color][/b] itm[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
        [b][color=red]([/color][/b][b][color=blue]foreach[/color][/b] att  attLst
          [b][color=red]([/color][/b][b][color=blue]and[/color][/b] [b][color=red]([/color][/b][b][color=blue]eq[/color][/b] [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] atrot:tag[b][color=red])[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] att[b][color=red])[/color][/b] atrot:tag[b][color=red])[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] att[b][color=red])[/color][/b][b][color=red])[/color][/b]
          [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]vl-catch-all-error-p[/color][/b]
                [b][color=red]([/color][/b][b][color=blue]vl-catch-all-apply[/color][/b]
                  [b][color=darkred]'[/color][/b][b][color=blue]vla-put-Rotation[/color][/b]
                    [b][color=red]([/color][/b][b][color=blue]list[/color][/b] att [b][color=#009999]0.0[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
            [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] errCount [b][color=red]([/color][/b][b][color=blue]1+[/color][/b] ErrCount[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
    [b][color=red]([/color][/b][b][color=blue]princ[/color][/b] [b][color=#ff00ff]">>> Nothing selected! <<<"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]/=[/color][/b] [b][color=#009900]0[/color][/b] errCount[b][color=red])[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]princ[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]strcat[/color][/b] [b][color=#ff00ff]"\n>>> "[/color][/b] [b][color=red]([/color][/b][b][color=blue]itoa[/color][/b] errCount[b][color=red])[/color][/b]
             [b][color=#ff00ff]" attributes or blocks were on locked layer! <<< "[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]princ[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]

 

 

Tag is case-sensitive

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...