Anuncios

The Autodesk Community Forums has a new look. Read more about what's changed on the Community Announcements board.

mirror objects over arc

prestin_unique
Community Visitor

mirror objects over arc

prestin_unique
Community Visitor
Community Visitor

Is it possible to mirror objects over arc or circle (I want to mirror the objects from inside to outside the circle)

0 Me gusta
Responder
468 Vistas
5 Respuestas
Respuestas (5)

cadffm
Consultant
Consultant

Hi,

 

no, butween is regular, or?

it's easy to create by using ARRAY or ARRAYCLASSIC

 

 

 
 

 

 

Sebastian

0 Me gusta

Valentin-WSP
Mentor
Mentor

@prestin_unique ,

 

Might want to take a look at @Kent1Cooper suggestion here:

 

 

Use APPLOAD to load the attached LSP, then type MAO - see sample:

ValentinWSP_0-1711102247339.png

 



Please select the "Accept as Solution" button if my post solves your issue or answers your question.


Emilio Valentin
0 Me gusta

EnM4st3r
Advocate
Advocate

i also tried to change Lee Macs Quick Mirror to do that

;; Original code by Lee Mac: https://www.lee-mac.com/quickmirror.html
;;
;; Changed to try mirroring objects along a curve 



;; Mirror SelectionSet about selected object
(defun c:QM   nil (QuickMirror nil nil))

(defun QuickMirror ( single delete / *error* _StartUndo _EndUndo doc ent ss sscount sel p1 p2 o ) (vl-load-com)
  ;; © Lee Mac 2011

  (defun *error* ( msg )
    (if doc (_EndUndo doc))
    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
        (princ (strcat "\n** Error: " msg " **")))
    (princ)
  )

  (defun _StartUndo ( doc ) (_EndUndo doc)
    (vla-StartUndoMark doc)
  )

  (defun _EndUndo ( doc )
    (if (= 8 (logand 8 (getvar 'UNDOCTL)))
      (vla-EndUndoMark doc)
    )
  )
  (setq sscount 0)
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

  (if (or single (setq ss (ssget "_:L" '((0 . "INSERT")))))
    (progn
      (while (not ent)
        (setq ent (car (setq sel (entsel "\nSelect Mirror Object: "))))
      )
      (while (< sscount (sslength ss))
        (cond
          (
            (and sel
              (not
                (vl-catch-all-error-p
                  (setq p1
                    (vl-catch-all-apply 'vlax-curve-getClosestPointto
                      (list (car sel) (trans (cdr (assoc 10 (entget (ssname ss sscount)))) 1 0))
                    )
                  )
                )
              )
            )

            (setq p2
              (polar p1
                (angle '(0. 0. 0.)
                  (vlax-curve-getFirstDeriv (car sel)
                    (vlax-curve-getParamatPoint (car sel) p1)
                  )
                )
                1.
              )
            )

            (setq p1 (vlax-3D-point p1) p2 (vlax-3D-point p2))

            (_StartUndo doc)
            (if ss
              (progn
                (vla-mirror (setq o (vlax-ename->vla-object (ssname ss sscount))) p1 p2)
                (if delete  (vla-delete o))
              )
              (progn
                (vla-mirror (setq o (vlax-ename->vla-object (car sel))) p1 p2)
                (if delete  (vla-delete o))
              )
            )
            (setq sscount (1+ sscount))
            (_EndUndo doc)
          )
        ) 
      )
    )
  )
  (princ)
)
0 Me gusta

Kent1Cooper
Consultant
Consultant

You can use the MAO command in MirrorAcrossObject.lsp, >here<.  [Oops -- someone beat me to it....]

Kent Cooper, AIA
0 Me gusta

illusionistNUGXG
Advocate
Advocate

It can be done with ease, if you redraw them this way:

 

Create a block with one of these arrow-things. The attachment point of the arrow are 0.0 coordinates in the block.

The arrow should face up or down.

 

Place the block along the circle with DIVIDE - select block (and write the name of the block) - allign yes - type in the amount of arrows you want.

 

Now you can change the direction of the arrows by opening the block and rotate all by 180°.

(Just be careful if you have this setting multiple times. Rotating the arrows this way will affect all circles.)

 

EDIT: oh...if the arrows (or whatever objects you drew in the block) are not symmetrical, you might need to mirror them in the block, not rotate.

0 Me gusta