14.02.2011 16:01    

SENDUR
Arkadaşlar elimde bir blok vardı ( harita). ben bunu mirror yaptıktan sonra patlattım ve yazılar hali ile aynalanmış şekilde duruyor. ( çeşitli açılarlarda bir sürü yazı var) ben geri dönüşü çok uzun bir yola girdim en başa dönmek istemiyorum. bu aynalanmı yazıları tekrar normal hale getirmenin kolay bir yolu varmı acaba
saygılar.

14.02.2011 20:01    

ProhibiT
Kod:

(defun c:rmtxt ()
  (setq txts (ssget "x" (list (cons 0 "text")))
        l (sslength txts) n -1)
  (while (< (setq n (1+ n)) l)
    (setq pvt (entget (ssname txts n)))
    (if (> (cdr (assoc 71 pvt)) 0)
      (progn
        (setq pvt (subst (cons 71 0) (assoc 71 pvt) pvt))
        (entmod pvt)
        (entupd (cdr (assoc -1 pvt))))))
)
text generation flag'ı (assoc 71 ...) 0 dan büyük olan text objeleri ele alır.
text generation flags (optional, default = 0):
2 = text is backward (mirrored in x)
4 = text is upside down (mirrored in y)

bu fonksiyon, x eksenine göre mirror edilmiş objeleri düzeltemez. çünki bu tür text objelerinde, assoc 70 => 0 dır ve text açısı ile döndürülmüştür. bunun mirror edilmektenmi yoksa text'in gerçekten o doğrultuda mı yazıldığı bilinenemeyeceğinden. değişiklik yapamaz.

bu fonksiyonu bir deneyin, bahsettiğim türden objeler yoksa, probleminizi çözmüş olacaktır.

kolay gelsin.

15.02.2011 07:50    

SENDUR
Hocam çok teşekürler ilk önce yazdıklarında anlamadım yerler vardı ama lispi çalıştırıp yaptıklarını görünce herşey yerine oturdu. yazı y eksinine göre mirror ise hemen düzeliyor ama yazı x eksenine göre mirror ise 180%%d çevirmek gerekiyor. gerçekten çok güzel bir lisp eline sağlık.

> 1 <
Copyright © 2004-2022 SQL: 0.89 saniye - Sorgu: 49 - Ortalama: 0.01816 saniye