28.05.2017 14:57    

yasinkaratas01
Merhaba;

Örneğin 100 br 100 br bir rectangle var bunu içine block haline getirdiğim bir resmi yerleştirmek istiyorum öreneğin resmin boyutları da 100 br 50 br olsun scale yaparak veya referance noktası kullanarak bahsettiğim örneği karenin içine nasıl yerleştirebilirim

Şimdiden Teşekkürler

28.05.2017 20:28    

alumina
Alıntı
yasinkaratas01 :

Kod:

;Secilen image (resim) nesnesini secilen polyline nesnenin icerisine yerlestirir.

;Image nesnesi bloksa;
(defun c:bl (/ dc pl bl bn mz my mn mx) (vl-load-com)
  (defun m1 (p1 p2 /) (vla-put-XScaleFactor bn p1) (vla-put-YScaleFactor bn p2))
  (if (setq dc (vlax-get (vlax-get-acad-object) 'activedocument)
            bl (ssget ":s" '((0 . "insert"))))
    (progn (redraw (ssname bl 0) 3)
      (if (setq pl (ssget ":s" '((0 . "lwpolyline"))))
        (progn (vla-startundomark dc)
          (setq bn (vlax-ename->vla-object (ssname bl 0))) (m1 1 1)
          (vla-getboundingbox bn 'mn 'mx)
          (vla-getboundingbox (vlax-ename->vla-object (ssname pl 0)) 'my 'mz)
          (m1 (/ (- (car (setq mz (vlax-safearray->list mz))) (car (setq my
            (vlax-safearray->list my)))) (- (car (setq mx (vlax-safearray->list mx)))
              (car (setq mn (vlax-safearray->list mn))))) (/ (- (cadr mz) (cadr my))
                (- (cadr mx) (cadr mn))))
          (vlax-invoke bn 'move mn my) (vla-endundomark dc)
        )
      ) (redraw (ssname bl 0) 4)
    )
  ) (prin1)
)


;Image nesnesi blok degilse;
(defun c:im (/ dc pl bl bn mz my) (vl-load-com)
  (if (setq dc (vlax-get (vlax-get-acad-object) 'activedocument)
            bl (ssget ":s" '((0 . "image"))))
    (progn (redraw (ssname bl 0) 3)
      (if (setq pl (ssget ":s" '((0 . "lwpolyline"))))
        (progn
          (vla-getboundingbox (setq bn (vlax-ename->vla-object (ssname bl 0))) 'mn 'mx)
          (vla-getboundingbox (vlax-ename->vla-object (ssname pl 0)) 'my 'mz)
          (vla-startundomark dc)
          (vla-put-ImageWidth bn (- (car (setq mz (vlax-safearray->list mz)))
            (car (setq my (vlax-safearray->list my)))))
          (vla-put-ImageHeight bn (- (cadr mz) (cadr my)))
          (vlax-invoke bn 'move (vlax-safearray->list mn) my) (vla-endundomark dc)
        )
      ) (redraw (ssname bl 0) 4)
    )
  ) (prin1)
)

31.05.2017 17:45    

yasinkaratas01
Kısa Yolu Nedir ?

31.05.2017 20:48    

alumina
"Kisa yolu nedir" sorundan lisp kodlarinin nasil kullanildigini bilmediginiz dusunulerek;

yukarda yazan kodlarin tamamini kopyalayip notepad e yapistirin ve kaydedin. bu kaydettiginiz dosyayi autocad e surukleyin ve;

- eger image (resim) nesnesi bloksa "bl" komutunu calistirip once image nesnesini sonra polyline nesneyi secin. image nesnesi polyline nesnenin olculerine gore duzenlenip polyline nesnenin icerisine yerlestrilecektir.

- eger image (resim) nesnesi blok degilse bu sefer "im" komutunu calistirip ayni islemleri yapin, ayni sonucu elde edeceksiniz.

> 1 <
Copyright © 2004-2022 SQL: 0.971 saniye - Sorgu: 53 - Ortalama: 0.01832 saniye