17.04.2011 17:43    

erali
Herkese merhaba, akış şemalarında kullanmak üzere gösterdiğim yere daire içine numara yazan lispi burada buldum, kullandım, teşekkür ederim. ama problem şu ki rakam büyüklüğüne göre daire çapı değiştiği için çizimde anormal duruyor. bu lispi rectangular içine yazacak şekilde düzenleyebilirmisiniz? numara uzunluğuna göre sadece boyu değişir, yükseklik sabit kalır. şimdiden teşekkürler.

17.04.2011 18:23    

ProhibiT
Bu konuyla ilgili o kadar çok paylaşım oldu ki, lisp fonksiyon hangisidir? fonksiyon adını veya buradaki paylaşımın linkini yazarsanız, bahsettiğiniz değişiklik yazar arkadaşımız tarafından değerlendirilir sanıyorum.

17.04.2011 19:27    

erali
Alıntı
Kod:

;===============================================================
;   Seçilen bir harf veya harf gurubuyla başlayan ve artarak   
;   devam eden sırada, çember içine alınmış Poz numarası       
;   vermek için Hazırlayan: Mehmet Sahin Guvercin               
;                         sahinguvercin@hotmail.com             
;===============================================================
(defun C:POZ ()
  (setvar "cmdecho" 0) (command "undo" "group")
  (if esayi (setq sayi esayi) (setq esayi 1))
  (if (= epre nil) (setq epre "P"))
  (if (= eyuk nil) (setq eyuk (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq pre (getstring (strcat "\Poz'ların başına gelecek Harf ya da Harf Gurubu <" epre ">: ")))
  (if (= pre "") (setq pre epre)) (if (= pre "0") (setq pre ""))
  (setq sayi (getint (strcat "\nBaslangic Poz Numarası <" (itoa esayi) "> :")))
  (if (= sayi nil) (setq sayi esayi))
  (setq yyuk (getreal (strcat "\nYazi yuksekligi <" (rtos eyuk) "> :")))
  (if (= yyuk nil) (setq yyuk eyuk))
  (while (setq ynok (getpoint (strcat "\n<" pre (itoa sayi) "> Pozu için Yer seciniz...")))
    (entmake (list (cons 0 "TEXT") (cons 1 (strcat pre (itoa sayi))) (cons 10 ynok) (cons 11 ynok)
                   (cons 40 yyuk) (cons 72 4)))
    (setq a1 (entget (entlast)) p1 (car (textbox a1)) p2 (cadr (textbox a1))
          rad (* 0.575 (distance p1 p2)))
    (entmake (list (cons 0 "CIRCLE") (cons 10 ynok) (cons 40 rad)))
    (setq sayi (1+ sayi)))
  (setq eyuk yyuk esayi sayi epre pre) (command "undo" "e") (prin1)
)

Drawing dosyasından çıkılıncaya kadar,
-Poz Numarası
-Başa gelen Harf (veya Harf Gurubu)
-Yazı Yüksekliği
Unutulmaz... dosyadan çıkılınca hepsi unutulur

çizilen çember çapı sabit değildir. başa gelen harf ve poz numarasının uzunluğuna bağlı olarak çember çapı değiştirilir.

poz numaralarının başına bir harf veya seçeceğiniz karakter gurubunu girebilirsiniz.

eğer poz'un başına herhangi bir şey gelmesini istemiyorsanız bu soruya 0 (sıfır) girerek cevap veriniz.

kolay gelsin...
bu mesaj prohibit tarafından düzenlendi (14.12.2010 18:01 GMT2 saat, 124 Gün önce


Sayın ProhibiT sizin düzenlemeniz kullandığım. ama daire değilde slot içine numara koymam lazım. ilginiz için tekrar teşekkürler.

ProhibiT (17.04.2011 20:01 GMT)

17.04.2011 21:05    

ProhibiT
Kod:

;===============================================================
;   Seçilen bir harf veya harf gurubuyla başlayan ve artarak   
;   devam eden sırada, dikdörtgen içine alınmış Poz numarası   
;   vermek için Hazırlayan: Mehmet Sahin Guvercin 17-04-2011   
;===============================================================
(write-line "\nHazırlayan, M. Şahin Güvercin - www.autocadokulu.com")
(defun C:PsL (/ pre sayi yyuk ynok a1 p1 p2 ang dst p3 p4)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by: M.S Güvercin")
  (if esayi (setq sayi esayi) (setq esayi 1))
  (if (= epre nil) (setq epre "P"))
  (if (= eyuk nil) (setq eyuk (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq pre (getstring
    (strcat "\Poz'ların başına gelecek Harf ya da Harf Gurubu <" epre ">: ")))
  (if (= pre "") (setq pre epre)) (if (= pre "0") (setq pre ""))
  (setq sayi (getint (strcat "\nBaslangic Poz Numarası <" (itoa esayi) "> :")))
  (if (= sayi nil) (setq sayi esayi))
  (setq yyuk (getreal (strcat "\nYazi yuksekligi <" (rtos eyuk) "> :")))
  (if (= yyuk nil) (setq yyuk eyuk))
  (while (setq ynok (getpoint
                 (strcat "\n<" pre (itoa sayi) "> Pozu için Yer seciniz...")))
    (entmake (list (cons 0 "TEXT") (cons 1 (strcat pre (itoa sayi)))
                   (cons 10 ynok) (cons 11 ynok) (cons 40 yyuk) (cons 72 4)))
    (setq a1 (entget (entlast)) p1 (car (textbox a1)) p2 (cadr (textbox a1))
          ang (angle p1 p2) dst (/ (distance p1 p2) 1.25)
          p1 (polar ynok (+ ang pi) dst) p2 (polar ynok ang dst)
          p3 (list (car p2) (cadr p1) (caddr p1))
          p4 (list (car p1) (cadr p2) (caddr p1)))
    (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 67 0)
                   (cons 100 "AcDbPolyline") (cons 90 4) (cons 70 1)
                   (cons 43 0.0) (cons 38 0.0) (cons 39 0.0)
                   (cons 10 p1) (cons 10 p3) (cons 10 p2) (cons 10 p4)))
    (setq sayi (1+ sayi)))
  (setq eyuk yyuk esayi sayi epre pre)
  (setvar "modemacro" "") (command "undo" "e") (prin1)
)
Kolay gelsin...

17.04.2011 21:24    

erali
Teşekkürler prohibit hemen deniyecegim.

07.06.2011 14:32    

ProhibiT
Kod:

;===============================================================
;   Seçilen bir harf veya harf gurubuyla başlayan ve artarak   
;   devam eden sırada, slot içine alınmış Poz numarası vermek   
;   için Hazırlayan: Mehmet Sahin Guvercin        07-06-2011   
;===============================================================
(write-line "\nHazırlayan, M. Şahin Güvercin - www.autocadokulu.com")
(defun C:PsL (/ pre sayi yyuk ynok a1 p1 p2 ang dst p3 p4)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by: M.S Güvercin")
  (if esayi (setq sayi esayi) (setq esayi 1))
  (if (= epre nil) (setq epre "P"))
  (if (= eyuk nil) (setq eyuk (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq pre (getstring
    (strcat "\Poz'ların başına gelecek Harf ya da Harf Gurubu <" epre ">: ")))
  (if (= pre "") (setq pre epre)) (if (= pre "0") (setq pre ""))
  (setq sayi (getint (strcat "\nBaslangic Poz Numarası <" (itoa esayi) "> :")))
  (if (= sayi nil) (setq sayi esayi))
  (setq yyuk (getreal (strcat "\nYazi yuksekligi <" (rtos eyuk) "> :")))
  (if (= yyuk nil) (setq yyuk eyuk))
  (while (setq ynok (getpoint
                 (strcat "\n<" pre (itoa sayi) "> Pozu için Yer seciniz...")))
    (entmake (list (cons 0 "TEXT") (cons 1 (strcat pre (itoa sayi)))
                   (cons 10 ynok) (cons 11 ynok) (cons 40 yyuk) (cons 72 4)))
    (setq a1 (entget (entlast)) p1 (car (textbox a1)) p2 (cadr (textbox a1))
          ang (angle p1 p2) dst (* (distance p1 p2) 0.75)
          p1 (polar (polar ynok (+ ang pi) dst) 0 (/ yyuk 2))
          p2 (polar (polar ynok ang dst) pi (/ yyuk 2))
          p3 (list (car p2) (cadr p1) (caddr p1))
          p4 (list (car p1) (cadr p2) (caddr p1)))
    (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 67 0)
                   (cons 100 "AcDbPolyline") (cons 90 4) (cons 70 1)
                   (cons 43 0.0) (cons 38 0.0) (cons 39 0.0)
                   (cons 10 p1) (cons 42 0.0) (cons 10 p3) (cons 42 1.0)
   (cons 10 p2) (cons 42 0.0) (cons 10 p4)  (cons 42 1.0)))
    (setq sayi (1+ sayi)))
  (setq eyuk yyuk esayi sayi epre pre)
  (setvar "modemacro" "") (command "undo" "e") (prin1)
)

> 1 <
Copyright © 2004-2022 SQL: 0.893 saniye - Sorgu: 58 - Ortalama: 0.0154 saniye