16.07.2014 10:46    

alfaoz
Merhaba arkadaşlar;
yine prohibit hocanın hazırladığı çok kıymetli bir lisp olan polyline çizimlerin alan ve çevresini yazan lispi kullanıyorum. yanlız autocadle ilgili olduğunu düşündüğüm bi sıkıntım var alanları yazdırırken m2 olarak yazdırdığımda sayıları tam sayıya yuvarlayarak yazıyor. örneğin cm2 olarak 47560 gelen bi alanı m2 olarak yazdırdığımda 4 m2 olarak yazıyor ben bunu 4,76 m2 olarak virgülden sonra iki basamak içerecek şekilde yazmasını istiyorum. aynı şey uzunluk için de geçerli 178 cm ölçüyü 2 m yazmasın 1,78 m yazsın.

16.07.2014 11:38    

Travaci
Kullandığınız lispte "Ondalık basamak sayısı" hücresi yokmu ?

16.07.2014 11:47    

alfaoz
lispte bir sorun olduğunu düşünmüyor çünkü daha önce sorunsuz kullanıyordum. lisp bu;
Kod:

;|===========================================================================|;
;| aC: PoLyLine ALan Çevre                                                 |;
;| Seçilen LwPolyline objelerinin Alanı ve Çevresi, geometrik merkezine,     |;
;| Field olarak yazılır. Yazı Yüksekliği olarak TextSize, ondalık basamak    |;
;| sayısı olarak Luprec değişkenlerinin değeri alınır.                       |;
;|          Hayırlayan: M. Şahin Güvercin - www.autocadokulu.com             |;
;|---------------------------------------------------------------------------|;
(defun c:aC (/ *error* pLns Fob n PvT vLo oID x y z PnT m TxH pR pA pC)
  (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
  (defun *error* (/ er) (princ (strcat "\n" er)) (command "_.undo" "e")(prin1))
  (if (not oFc) (setq oFc 1))
  (setq FaC (getreal (strcat "\nÇizim Birimi/Hesap Birimi <"(rtos oFc)">: ")))
  (if (not FaC) (setq Fac oFc) (setq oFc FaC))
  (princ "\nAlanı ve Çevresi yazılacak LwPolyline objelerini seçiniz: ")
  (setq pLns (ssget (list (cons 0 "LwPoLyLine")))
        Fob (ssadd) n (sslength pLns))
  (while (not (minusp (setq n (1- n))))
    (setq PvT (ssname pLns n) vLo (vlax-ename->vla-object PvT)
          oID (itoa (vla-get-ObjectID vLo)) x 0 y 0 z (getvar "elevation")
          PnT (vlax-safearray->list (vlax-variant-value
                (vlax-get-property vLo 'Coordinates))) m (length PnT))
    (while (not (minusp (setq m (- m 2))))
      (setq x (+ x (nth m PnT)) y (+ y (nth (1+ m) PnT))))
    (setq x (/ x (/ (length PnT) 2)) y (/ y (/ (length PnT) 2))
          TxH (getvar "TextSize") pR (getvar "Luprec")
          pA (polar (list x y z) (/ pi 2.0) (* 0.833333 TxH))
          pC (polar (list x y z) (* pi 1.5) (* 0.833333 TxH)))
    (entmake (list (cons 0 "Text") (cons 10 pA) (cons 40 TxH)
                   (cons 1 (strcat "%<\\AcObjProp Object(%<\\_ObjId " oID
                                   ">%).Area \\f "%lu2%pr" (itoa pR)
                                   "%ps[A=,]%ct8["(rtos(* FaC FaC)2 8)"]">%"))
                 (cons 50 0.0) (cons 72 1) (cons 11 pA))) (ssadd (entlast) Fob)
    (entmake (list (cons 0 "Text") (cons 10 pC) (cons 40 TxH)
                   (cons 1 (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " oID
                                   ">%).Length \\f "%lu2%pr" (itoa pR)
                                   "%ps[C=,]%ct8[" (rtos FaC 2 8) "]">%"))
                (cons 50 0.0) (cons 72 1) (cons 11 pC))) (ssadd (entlast) Fob))
  (command "_.UpdateFieLd" Fob "") (command "_.undo" "e") (prin1))

16.07.2014 11:49    

Travaci
Açıklamada da yazıyor "Ondalık basamak sayısı olarak Luprec değişkenlerinin değeri alınır"
Komut satırına luprec yazın basamak sayısını girin.

16.07.2014 12:06    

alfaoz
sn travaci tşkler bugün çok yardımcı oldunuz bana. nasıl ayarlandığını öğrenmek de güzel oldu bilmiyordum gerçekten saygılar...

> 1 <
Copyright © 2004-2022 SQL: 0.87 saniye - Sorgu: 56 - Ortalama: 0.01553 saniye