Discussion:
Mirroring Attributed Blocks
(too old to reply)
Michael Viscetto
2005-02-17 17:02:26 UTC
Permalink
I am running ADT 2004 on W2K XP Pro.
This is something that is occuring more and more often.

I have multiple attributed blocks in a house plan.
The client needs to mirror it. :-)

When I mirror the plan I need to go back and re-mirror all of my attributed blocks that are now backwards.

Does anyone have solution?

Maybe a LISP routine that will mirror an object (a block in this case).

for example:

Start the routine,

It asks to select an object,

then asks to select a point to mirror about (the middle of the block)

and it mirrors it over the "Y" plane.

Then lets you select objects one right after the other mirroring happiliy until you hit escape.

Any such animal?



Thanks

Michael
Jesse_Pickrum
2005-02-17 19:51:49 UTC
Permalink
Set the variable MIRRTEXT to 0 befor doing the mirror.

Jesse
Jesse_Pickrum
2005-02-17 20:39:58 UTC
Permalink
The design of your window tag is the problem, you have 5 tags but only 2 lines and each line is represented by multiple attributes in various locations. The mirrored text reads correctly but is in effect backwards as a result.

The room tag has 4 lines and 4 tags with each tag representing a line and works as designed.

Jesse
Michael Viscetto
2005-02-17 21:01:16 UTC
Permalink
Is there a way to get this type of attribute to mirror?
If not,
I'm back to my origional posted message.
Thanks
Jesse_Pickrum
2005-02-17 21:31:28 UTC
Permalink
Unfortunately no, or at least not to my knowledge.

Even conventional text formatted this way will not mirror the way you want. Understand, each piece of test or attribute is handled as a separate item (line) and is mirrored as such.

Jesse
Michael Viscetto
2005-02-17 20:46:47 UTC
Permalink
Thank you.

The door tag and window tags are the only things I have not re-created.
I will work on them.

I do appreciate your time.
Herman Mayfarth
2005-02-18 00:01:08 UTC
Permalink
Try this:

;;;******************************FLIPSS.lsp***************************
;;;
;;; Purpose: Mirrors a selection set of INSERTs about their respective
;;; Y axes & deletes original entities.
;;;
;;;********************************************************************

(defun C:FLIPSS ( / ss1 i pt1 pt2 rtd)
(defun rtd (ang) (* ang (/ 180 pi)))
(command "_.UNDO" "BEGIN")
(princ "\nSelect Blocks to Mirror: ")
(while (null ss1)
(setq ss1 (ssget '((0 . "INSERT"))))
)
(setq i 0)
(setvar "OSMODE" (logior (getvar "OSMODE") 16384))
(repeat (sslength ss1)
(setq ent (ssname ss1 i)
pt1 (trans (cdr (assoc 10 (entget ent))) 0 1)
pt2 (subst (+ 10 (cadr pt1)) (cadr pt1) pt1)
)
(command "_.MIRROR" ent "" pt1 pt2 "YES")
(setq i (1+ i))
);repeat
(setvar "OSMODE" (logand (getvar "OSMODE") 16383))
(command "_.UNDO" "END")
(princ)
);defun

Continue reading on narkive:
Loading...