10.10.2025 11:38    

asamet
Merhabalar
Elimde layer ve ölçüleri aynı, konumları farklı olan 500 tane circle var diyelim.
- Bunları ayrı ayrı blok yapabileceğim hızlı bir yol var mı?
- Merkez noktalarına daha önceden oluşturmuş olduğum bir bloğu toplu şekilde yerleştirmemin bir yolu var mı?

Teşekkürler
İyi çalışmalar

11.10.2025 09:41    

baha07
merhabalar


3
- Merkez noktalarına daha önceden oluşturmuş olduğum bir bloğu toplu şekilde yerleştirmemin bir yolu var mı?


bu isini gormesi gerekiyor sanirim .. kopyalamak istedigin blogu sec daha sonra cemberleri sec . otomatik tabaka ayrimi yapmadan kopyaliyor


Kod:

;___________________________________________________________________________________________________________|
; secilen blogun referans noktasindan secilen cemberlerin merkezine kopyalar
; Command Line Function to Copy a block on centers of selection set of circles
;https://forums.augi.com/showthread.php?176874-Insert-Block-on-Multiple-Circles-(Circle-Center-Point)
;peter tarafindan yazildi.
___________________________________________________________________________________________________________|
(defun C:BOC ()(C:BlockOnCircle))
(defun C:BlockOnCircle (/ lstCircleObjects objBlock ssBlock ssCircles)
(if (and (princ "\nSelect Block: ")
          (setq ssBlock    (ssget ":S:E"  (list (cons 0 "insert"))))
          (setq objBlock          (car (SelectionSetToList ssBlock)))
          (princ "\nSelect Circles: ")
          (setq ssCircles  (ssget  (list (cons 0 "circle"))))
          (setq lstCircleObjects  (SelectionSetToList ssCircles))
     )
  (CopyBlockToCircleCenters objBlock lstCircleObjects)
)
)
;___________________________________________________________________________________________________________|
;
; Function to Copy a block only centers of a list of circles objects using activeX
;___________________________________________________________________________________________________________|
(defun CopyBlockToCircleCenters (objBlock lstCircleObjects / lstCircleObjects lstInsertionPoint objCircle )
(if (setq lstInsertionPoint (vlax-get objBlock "insertionpoint"))
  (foreach objCircle lstCircleObjects
   (setq lstCircleCenterPoint (vlax-get objCircle "center"))
   (setq objBlockNew (vlax-invoke objBlock "copy"))
   (vlax-invoke objBlockNew "move" lstInsertionPoint lstCircleCenterPoint)
  )
)
)
;___________________________________________________________________________________________________________|
;
; Function to convert a lisp selection set to a list of vla objects
;___________________________________________________________________________________________________________|
(defun SelectionSetToList (ssSelections / entSelection intCount lstObjects objSelection )
(repeat (setq intCount (sslength ssSelections))
  (and
   (setq intCount     (1- intCount))
   (setq entSelection (ssname ssSelections intCount))
   (setq objSelection (vlax-ename->vla-object entSelection))
   (setq lstObjects   (cons objSelection lstObjects))
  )
)
(reverse lstObjects)
)
(vl-load-com)

> 1 <
Copyright © 2004-2022 SQL: 0.962 saniye - Sorgu: 48 - Ortalama: 0.02004 saniye