06.01.2011 11:47    

arif_kose
poz numaralarını verebilmek için ;

2.komuttan çıkana kadar numaralandırmaya devam etmeli
3.yanlışlıkla çıkıldığı taktirde ek özellik olarak kaldığı yerden devam edebilmeli
4.pozun bir ucu dot diğer ucu yukarlak ve içerisinde rakam olmalı.

bu ihticları karşılayacak bir lisp oluşturabilirmiyiz.

06.01.2011 12:01    

ProhibiT
Burada, buna benzer o kadar çok Lisp paylaşıldı ki; yenisini yazmanın kimse için bir sanat değeri olmasa gerek. :)


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




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

06.01.2011 12:51    

arif_kose
2 nide denedim ama isteklerimle kısmen örtüşüyor.ben isteklerimi tam karşılayabilecek bişey arıyorum :))

06.01.2011 14:05    

ProhibiT
Take it easy my friend :)

Deyip geçmeyi çok isterdim aslında.
Kod:

(defun C:PNo ()
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by:M.S. Güvercin")
  (if (= eyuk nil) (setq eyuk (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq yyuk (getreal (strcat "\nYazi yuksekligi <" (rtos eyuk) "> :")))
  (if (= yyuk nil) (setq yyuk eyuk)) (if (= esayi nil) (setq esayi 1))
  (setq sayi (getint (strcat "\nBaslangic sayisi <" (itoa esayi) "> :")))
  (if (= sayi nil) (setq sayi esayi))
  (while (setq ynok (getpoint "\nNoktayı seçiniz..."))
    (setq yynok (getpoint ynok "\nNumaranın yerini seçiniz..."))
    (entmake (list
      (cons 0 "TEXT") (cons 10 yynok) (cons 40 yyuk) (cons 11 yynok)
      (cons 1 (itoa sayi)) (cons 50 0) (cons 72 4)))
    (setq kutu (textbox (entget (entlast)))
          ycap (* 0.625 (distance (car kutu) (cadr kutu)))
          aci (angle ynok yynok) len (- (distance ynok yynok) ycap)
          p2  (polar ynok aci len)
          p3  (polar ynok 0 (/ yyuk 20)) p3 (list (car p3) (cadr p3))
          p4  (polar ynok pi (/ yyuk 20)) p4 (list (car p4) (cadr p4)))
    (entmake (list (cons 0 "CIRCLE") (cons 10 yynok) (cons 40 ycap)))
    (entmake (list (cons 0 "LINE") (cons 10 ynok) (cons 11 p2)))
    (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity")
                   '(100 . "AcDbPolyline") '(90 . 2) '(70 . 1) '(43 . 1.0)
                   (cons 10 p3) '(40 . 1.0) '(41 . 1.0) '(42 . 1.0)
                   (cons 10 p4) '(40 . 1.0) '(41 . 1.0) '(42 . 1.0)))
    (setq sayi (1+ sayi)))
  (setq eyuk yyuk esayi sayi)
  (setvar "modemacro" "") (command "undo" "e") (prin1)
)

Şaka bir yana, ilgi duyan arkadaşlarımız için, entmake ile Donut nasıl yapılır konusuna örnek olması bakımından ilginç geldi...

ProhibiT (06.01.2011 15:52 GMT)

06.05.2011 07:16    

skrn
Prohobit hocam yazmış olduğunuz "pno" lispini çok çok kullanıyorum. ben bu lispi uygularken bazı sıkıntılarla karşılaşıyorum bu konuda yardımcı olurmusunuz.
lisp uygularken:
-noktayı seçiniz...
-numaranın yerini seçiniz...
1-)ben bunları yaptıktan sonra belirlediğim yerin çok dışına bir noktaya atmaktadır.
2-)birde yazı tipi standart değilde seçme imkanımız olsa çok daha iyi olacağı kanısındayım.
saygılarımla...

06.05.2011 10:16    

ProhibiT
ProhibiT
Burada, buna benzer o kadar çok Lisp paylaşıldı ki; yenisini yazmanın kimse için bir sanat değeri olmasa gerek.


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




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



buradaki fonksiyon, poz numarası verme fonksiyonlarının özel bir halidir. diğer linklere de bir bakmanızı tavsiye ederim. son bir versiyon daha paylaşmıştım;

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



- belirlenen yerin dışında bir noktaya yazması için hiç bir sebep yok? sisteminizden veya sizin kullanımınızdan kaynaklanan bir şey olabilir.
- yazdığım fonksiyon text style seçmez, o anda geçerli olan (current text style) neyse onu kullanır. istediğiniz yazı sitilini seçip "set current" uygularsanız yazılarınız o stilde yazılacaktır.

kolay gelsin.

> 1 <
Copyright © 2004-2022 SQL: 1.498 saniye - Sorgu: 56 - Ortalama: 0.02674 saniye