20.07.2010 08:07    

stormy85
arkadaşlar öncelikle merhaba,

aranıza yeni katıldım. bu lisp işinde biraz yeniyim. siteden bi lisp buldum ama tam olarak istediğim gibi kot ve mesafeyi ekrana yazdıramıyor. şu şekilde yazdırsın istiyorum noktanın kotu arada kesir çizgisi altınada mesafesi. bide sürekli osnap modunu kapatıyor. bu konuda yardımcı olabilecek bir arkadaş varsa çok minnettar olurum.

Şimdiden teşekkürler...

lisp şu;

Kod:

(defun ykot_hata (s)
  (if (/= s "Function cancelled")
    (princ (strcat "\nError: " s))
  )
  (setvar "CMDECHO" yko_cmd)
  (setvar "OSMODE" yko_osm)
  (setvar "DIMZIN" yko_dzn)
  (setq *error* ykoerr)
  (princ)
)
(DEFUN C:YKO (/)
  (setq ykoerr *error*
*error* ykot_hata
  )
  (grtext -1 "< Harbi65 Design by © 2009 >")
  (princ "\n Harbi65 Design by © - Kastamonu  / 1993-2009 / harbi65@gmail.com")
  (setq yko_cmd (getvar "CMDECHO")
yko_osm (getvar "OSMODE")
yko_dzn (getvar "DIMZIN")
  )
  (setvar "CMDECHO" 0)
  (setvar "DIMZIN" 0)
  (if (= yyuk nil)
    (setq yyuk 15)
  )
  (setq
    yyk (getreal
  (strcat "\nYazı yüksekliğini girin <" (rtos yyuk 2 0) ">:")
)
  )
  (if (= yyk nil)
    (setq yyk yyuk)
  )
  (setq yyuk yyk)
  (setq smh "Mahal")
  (if (not (tblsearch "style" "Kot-Mes" "STANDARD"))
    (command "STYLE" "Kot-Mes" "ISOCPEUR" "" "1" "" "" "")
  )
(setvar "OSMODE" 32)
  (if
    (setq p1 (getpoint "\n Referans noktayı gösterin: "))
     (progn
       (setq nn nil)
       (while (= nn nil)
(if
   (setq p2 (getpoint p1 "\nKot verilecek nokta: "))
    (progn
      (setq mes1 (distance p1 p2)
    aci (angle p1 p2)
      )
      (setvar "OSMODE" 0)

      (cond
((or (= aci pi) (= aci (- pi pi)))
(setq ang1 aci)
(setq str "%%P")
)
((<= aci (/ pi 2))
(setq ang1 aci)
(setq str "+")
)
((and (> aci (/ pi 2)) (< aci pi))
(setq ang1 (- pi aci))
(setq str "+")
)
((and (> aci pi) (< aci (* pi 1.5)))
(setq ang1 (- aci pi))
(setq str "-")
)
((or (>= aci (* pi 1.5)) (< aci (* pi 2)))
(setq ang1 (- (* pi 2) aci))
(setq str "-")
)
      )
      (if (= ang1 pi)
(setq ang1 (+ ang1 pi))
      )
      (if (or (/= aci (/ pi 2)) (/= aci (* pi 1.5)))
(setq nkot (* mes1 (cos ang1)))
(setq nkot mes1)
      )
      (if (/= aci pi)
(setq kot (* mes1 (sin ang1)))
(setq kot (- mes1 mes1))
      )
      (setq ynok (polar p2 (/ pi 2) yyuk))
      (princ (strcat "\nMesafe: " (rtos nkot)))
      (princ (strcat "\nKot   : " (rtos kot)))

      (entmake (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(cons 8 "Mesafe")
(cons 10 ynok)
(cons 11 ynok)
(cons 40 yyuk)
(cons 50 (/ pi 2))
(cons 1 (rtos nkot 2 2))
(cons 7 "Kot-Mes")
(cons 73 1)

       )
      )
      (entmake (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(cons 8 "Kot")
(cons 10 p2)
(cons 11 p2)
(cons 40 yyuk)
(cons 50 0)
(cons 1 (strcat str (rtos kot 2 2)))
(cons 7 "Kot-Mes")
(cons 73 1)
       )
      )
      (setvar "OSMODE" 32)
    )
    (setq nn T)
)
       )
     )
  )
  (setvar "DIMZIN" yko_dzn)
  (setvar "CMDECHO" yko_cmd)
  (setvar "OSMODE" yko_osm)
  (princ)
)
(princ
  "\nReferans Noktaya Göre Gösteriler Noktanın Koordianatı-Mesafesini Yazar        Çalıştırmak için: [ YKO ]"
)

ehya (20.07.2010 08:31 GMT)

02.08.2010 13:28    

ProhibiT
KoMe, xy ve Koor isimli fonksiyonlar paylaşmıştım sitede arasanız bulabilirsiniz.
"Kot Mesafe" şeklinde ararırsanız, bu konuyla ilgili paylaşılan pek çok AutoLisp fonksiyon bulabilirsiniz burada...

19.10.2018 10:41    

mesuttasar
Alıntı
stormy85 :
arkadaşlar öncelikle merhaba,

aranıza yeni katıldım. bu lisp işinde biraz yeniyim. siteden bi lisp buldum ama tam olarak istediğim gibi kot ve mesafeyi ekrana yazdıramıyor. şu şekilde yazdırsın istiyorum noktanın kotu arada kesir çizgisi altınada mesafesi. bide sürekli osnap modunu kapatıyor. bu konuda yardımcı olabilecek bir arkadaş varsa çok minnettar olurum.

Şimdiden teşekkürler...

lisp şu;

Kod:

(defun ykot_hata (s)
  (if (/= s "Function cancelled")
    (princ (strcat "\nError: " s))
  )
  (setvar "CMDECHO" yko_cmd)
  (setvar "OSMODE" yko_osm)
  (setvar "DIMZIN" yko_dzn)
  (setq *error* ykoerr)
  (princ)
)
(DEFUN C:YKO (/)
  (setq ykoerr *error*
*error* ykot_hata
  )
  (grtext -1 "< Harbi65 Design by © 2009 >")
  (princ "\n Harbi65 Design by © - Kastamonu  / 1993-2009 / harbi65@gmail.com")
  (setq yko_cmd (getvar "CMDECHO")
yko_osm (getvar "OSMODE")
yko_dzn (getvar "DIMZIN")
  )
  (setvar "CMDECHO" 0)
  (setvar "DIMZIN" 0)
  (if (= yyuk nil)
    (setq yyuk 15)
  )
  (setq
    yyk (getreal
  (strcat "\nYazı yüksekliğini girin <" (rtos yyuk 2 0) ">:")
)
  )
  (if (= yyk nil)
    (setq yyk yyuk)
  )
  (setq yyuk yyk)
  (setq smh "Mahal")
  (if (not (tblsearch "style" "Kot-Mes" "STANDARD"))
    (command "STYLE" "Kot-Mes" "ISOCPEUR" "" "1" "" "" "")
  )
(setvar "OSMODE" 32)
  (if
    (setq p1 (getpoint "\n Referans noktayı gösterin: "))
     (progn
       (setq nn nil)
       (while (= nn nil)
(if
   (setq p2 (getpoint p1 "\nKot verilecek nokta: "))
    (progn
      (setq mes1 (distance p1 p2)
    aci (angle p1 p2)
      )
      (setvar "OSMODE" 0)

      (cond
((or (= aci pi) (= aci (- pi pi)))
(setq ang1 aci)
(setq str "%%P")
)
((<= aci (/ pi 2))
(setq ang1 aci)
(setq str "+")
)
((and (> aci (/ pi 2)) (< aci pi))
(setq ang1 (- pi aci))
(setq str "+")
)
((and (> aci pi) (< aci (* pi 1.5)))
(setq ang1 (- aci pi))
(setq str "-")
)
((or (>= aci (* pi 1.5)) (< aci (* pi 2)))
(setq ang1 (- (* pi 2) aci))
(setq str "-")
)
      )
      (if (= ang1 pi)
(setq ang1 (+ ang1 pi))
      )
      (if (or (/= aci (/ pi 2)) (/= aci (* pi 1.5)))
(setq nkot (* mes1 (cos ang1)))
(setq nkot mes1)
      )
      (if (/= aci pi)
(setq kot (* mes1 (sin ang1)))
(setq kot (- mes1 mes1))
      )
      (setq ynok (polar p2 (/ pi 2) yyuk))
      (princ (strcat "\nMesafe: " (rtos nkot)))
      (princ (strcat "\nKot   : " (rtos kot)))

      (entmake (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(cons 8 "Mesafe")
(cons 10 ynok)
(cons 11 ynok)
(cons 40 yyuk)
(cons 50 (/ pi 2))
(cons 1 (rtos nkot 2 2))
(cons 7 "Kot-Mes")
(cons 73 1)

       )
      )
      (entmake (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(cons 8 "Kot")
(cons 10 p2)
(cons 11 p2)
(cons 40 yyuk)
(cons 50 0)
(cons 1 (strcat str (rtos kot 2 2)))
(cons 7 "Kot-Mes")
(cons 73 1)
       )
      )
      (setvar "OSMODE" 32)
    )
    (setq nn T)
)
       )
     )
  )
  (setvar "DIMZIN" yko_dzn)
  (setvar "CMDECHO" yko_cmd)
  (setvar "OSMODE" yko_osm)
  (princ)
)
(princ
  "\nReferans Noktaya Göre Gösteriler Noktanın Koordianatı-Mesafesini Yazar        Çalıştırmak için: [ YKO ]"
)




Merhaba, istediğin işlemi yapacak kodlar aşağıdadır.

Kod:

(defun c:kotmesafe()
(setvar "osmode" 33)
(setq eksen (getpoint "\nEksen Noktasını Seçiniz.."))
(setq eksenkot (getreal "\nEksen Kotunu Giriniz.."))

(setq eksenmesafe 0)
(setq eksenkotu eksenkot)
(setq eksx (car eksen))
(setq eksz (cadr eksen))
 
(while
  (setvar "osmode" 33)
(setq yeninokta (getpoint "\nMesafe ve Kotu Yazdırılacak Noktayı Seçiniz.."))
(setq yeninoktax (car yeninokta))
(setq yeninoktaz (cadr yeninokta))

(setq yazix (- yeninoktax eksx))
(setq yaziy (+ (- yeninoktaz eksz) eksenkotu))

(setvar "osmode" 0) 

(command "text" "j" "tl" yeninokta "0.2" "0" (rtos yaziy 2 2))
 
(setq ynalt (polar yeninokta (* (/ pi  2) 3) 0.3))
(setq cizgibas (polar yeninokta (* (/ pi  2) 3) 0.25))
(setq cizgison (polar cizgibas 0 0.75))
(command "_.line"  cizgibas cizgison "")
 
(command "text" "j" "tl" ynalt "0.2" "0" (rtos yazix 2 2))
)
)

17.06.2019 14:59    

ozlmrtsn
merhaba toplama lispi arıyorum yardımcı olabilirmisiniz acaba metraj tablosunu toplamam lazım autocad 2019 kullanıyorum olan lisplerim garip bi şekilde çalışmıyor

> 1 <
Copyright © 2004-2022 SQL: 0.849 saniye - Sorgu: 52 - Ortalama: 0.01633 saniye