01.10.2014 12:20    

ertinuviel
Merhaba, umarım konuyu doğru yere açıyorumdur.

Mekanik olarak şaft isteklerimizi belirtmek için mimari planlara şaft yerlerini belirten delikler ve bu deliklerin içine delik işareti koyuyoruz (Resimde Görebilirsiniz). Bazen çok fazla delik koymamız ve şaftın boyutuna göre bu işaretlerle uğraşmamız gerekiyor.

Autocad'de etkin olan 'layer'da bir kutu çizdiğim zaman içine delik işaretini otomatik olarak koyan ve bu işaretin 'layer'ını benim belirlediğim ya da buna benzer bir Lisp var mıdır?



Resimde yeşil dikdörtgenler delik, içindeki kırmızılar ise delik işareti

01.10.2014 12:55    

ehya


Linkleri görebilmek için ÜYE olmalısınız.

01.10.2014 13:15    

ertinuviel
Cevap için teşekkür ederim. Bu işareti solid olarak değil de pline olarak çizebilmesi için ne yapmamız gerekir.

01.10.2014 14:23    

ehya
Yeniden düzenlenmesi gerekir. Yazan kişi şuan şehir dışında. Vakti olan birisi olursa gerekli düzenlemeleri yapabilir.

02.10.2014 06:36    

Travaci
Kod:

(defun c:sp3 (/ An Ds n1 n2 p1 p2)
  (setq p1 (getpoint "\nFirst corner: ") p2 (getcorner p1 "\nOther corner: ")
    An (cond ((< (setq An (angle p1 p2)) (/ pi 2.0)) (* pi 0.25))
       ((and (> An (/ pi 2.0)) (< An Pi)) (* pi 0.75))
       ((and (> An pi) (< An (* pi 1.5))) (* pi 1.25))
             ((> An (* pi 1.5)) (* pi 1.75)))
    Ds (/ (if (< (setq n1 (distance p1 (list (car p1) (cadr p2))))
     (setq n2 (distance p1 (list (car p2) (cadr p1))))) n1 n2) 20.0)
           p1 (list (+ (car p1) (* Ds (cos An))) (+ (cadr p1) (* Ds (sin An))))
           p2 (list (- (car p2) (* Ds (cos An))) (- (cadr p2) (* Ds (sin An)))))
  (setvar "cmdecho" 0) (command "_.undo" "be")
  (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity")
    (cons 100 "AcDbPolyline") (cons 90 5) (cons 10 (list (car p1)(cadr p2)))
    (cons 10 p1) (cons 10 (list (car p2) (cadr p1)))
    (cons 10 (mapcar '(lambda (n1 n2) (+ n1 n2)) p1 (list (* Ds 4.0 (cos An))
    (* Ds 4.0 (sin An))))) (cons 10 (list (car p1)(cadr p2))) (cons 70 1)))
  (command "_.undo" "e") (setvar "cmdecho" 1) (prin1)
)

> 1 <
Copyright © 2004-2022 SQL: 1.329 saniye - Sorgu: 59 - Ortalama: 0.02253 saniye