14.02.2024 10:50    

ProhibiT
Merhaba arkadaşlar.
Bu Başlık altında halilözcakir arkadaşımızın güzel sorusuna alumina arkadaşımızın yazdığı bir o kadar güzel cevap için, sevgi saygı ile arkadaşlarımı kutlar, teşekkür ederim.

Kitabımızda ve forumlarda pek çok mesajımızda Transformation Matrix konusunun önemine değinip epeyce detay paylaşmıştım. Hem yazar arkadaşlarımıza konuyu örnek üzerinden açıklamak, hemde arkadaşlarımızın keyifle kullanabilecekleri bir fonksiyon olur düşüncesiyle açık kaynak kod paylaşıyorum.
Kod:

;| Flipping a Block about X or Y axis                                         |
|    Prepared By: M. Sahin Guvercin (ProhibiT)                               |
|                    14.02.2024 cizimokulu.com                               |;
(defun c:fLbL (/ NsN BsP oOm AnG OmD fLL)
  (while (not NsN) (princ "\nSelect Block...")
    (setq NsN (vlax-ename->vla-object
                (ssname (ssget "+.:s" (list (cons 0 "INSERT"))) 0))))
  (setq BsP (vlax-get NsN 'InsertionPoint)
        oOm (getvar "orthomode") OmD (setvar "orthomode" 1)
        AnG (getorient BsP) OmD (setvar "orthomode" oOm))
  (if (or (= AnG 0.0) (= AnG pi)) (setq fLL T))
  (vla-transformby Nsn
    (vlax-tmatrix (list (list 1 0 0 (-(car BsP))) (list 0 1 0 (-(cadr BsP)))
                        (list 0 0 1 (-(caddr BsP))) (list 0 0 0 1))))
  (if fLL
    (vla-transformby NsN (vlax-tmatrix (list (list 1 0 0 0) (list 0 -1 0 0)
                           (list 0 0 1 0) (list 0 0 0 1))))
    (vla-transformby NsN (vlax-tmatrix (list (list -1 0 0 0) (list 0 1 0 0)
                           (list 0 0 1 0) (list 0 0 0 1)))))
  (vla-transformby Nsn (vlax-tmatrix (list (list 1 0 0 (car BsP))
                         (list 0 1 0 (cadr BsP)) (list 0 0 1 (caddr BsP))
                           (list 0 0 0 1)))) (princ))

Selam ve saygılarımla herkese kolaylıklar dilerim.

Açıklama: Transformation Matrix kullanılınca, Mirrtext sistem değişkeninden bağımsız olarak, Text ve Attribute'ler de dönüyor. Block altında Text ve Attribute'ler var ise bunların açıları düzenlenmelidir. Bu haliyle istenmeyen sonuçlarla karşılaşılabilir.

ProhibiT (14.02.2024 12:47 GMT)

> 1 <
Copyright © 2004-2022 SQL: 0.96 saniye - Sorgu: 51 - Ortalama: 0.01882 saniye