04.02.2009 21:21    

starkopf
yol enkesitlerinde referans noktayı baz alarak enkesitte istenilen noktanın kot/mesafe degerlerini yazdıran bir lisp bulabilirmiyiz.

12.02.2009 16:41    

MSucullu
exel dosyasında hazırlanan verileri kullanarak yol enkesiti çıkaran bi lispim var. kotuda mesafeside yazılıo. ama tabi işine yararmı bilmiom. lazımsa gonderiim. [E-MAIL YASAK]

ehya (13.02.2009 06:57 GMT)

14.02.2009 20:24    

Harbi65
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 ]"
)

25.08.2010 09:32    

beynur
İyi gunler oncelikle paylaşım için teşekurler guzel bir lisp... olmuş ama benim istediğim

Ornek referans noktamın kotu 653.50
aradaki mesafe 50mm bunu eklerken 703.5 oalrak çeviyor bana gerekli olan
50mm değerini 0.50 gibi baz alıp 654 değerini bulmam gerekiyor
bu işlemi bu lispte yaptırma imaknımız var mı?


X değerini vermesini istemiyorrum... Yardimci olursanız sevinirimmm...

> 1 <
Copyright © 2004-2022 SQL: 0.935 saniye - Sorgu: 51 - Ortalama: 0.01833 saniye