19.03.2017 12:05    

yanginkaplin
Merhaba arkadaşlar;

Excelde yapmış olduğum bir işlem için lisp yapılabilir mi?

Her seferinde autocad'den ölçü al excel işlem yap zaman kaybı oluyor.

İstediğim aslında dört işlem.

X=DIST/500
Y=YUKARIYUVARLA(X)
Z=(DIST-50)/Y

Bu konuda yarımcı olursanız çok sevinirim.

19.03.2017 16:19    

alumina
Alıntı
yanginkaplin :

Distance degerini klavyeden manuel olarak veya ekrandan iki nokta secerek girebilirsiniz.
Kod:

(defun c:ds (/ d a b)
  (if (setq d (getdist "\nDist:"))
    (alert (strcat "X= " (rtos (setq a (/ d 500)) 2 2)
      "\nY= " (rtos (setq b (1+ (fix a))) 2 2) "\nZ= " (rtos (/ (- d 50) b) 2 2)))
  ) (princ)
)

19.03.2017 18:05    

yanginkaplin
Çok teşekkür ederim.

Ellerinize ve bilginize sağlık.

Bir sorum daha olacak. Kullandığım bir lisp var aşağıda paylaşacağım.

Array yapan bir lisp olup aktif şekilde kullanıyorum.

İstediğim yukarıda yazmış olduğunuz lispin sonucunda çıkan değeri arrv.lsp komutuna girerek iş yapmaktayım.

Bu iki lispi birleştirebilir miyiz?

Yani ben ds dediğimde hem değeri bulacak bulduğu değere göre de array yapacak.

(defun c:arrv ( / ss->list copyv dx gr nl nx obs obx p0 pd pw px vx ) (vl-load-com)

;; © Lee Mac 2011 found at the swamp

(defun ss->list ( ss / i l )

(if ss

(repeat (setq i (sslength ss))

(setq l (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) l))

)

)

)

(defun copyv ( ob n v / i b l ) (setq i 1 b (vlax-3D-point '(0. 0. 0.)))

(repeat n

(foreach obj ob

(vla-move (car (setq l (cons (vla-copy obj) l))) b (vlax-3D-point (mapcar '* v (list i i i))))

)

(setq i (1+ i))

)

l

)

(if

(and

(setq obs (ss->list (ssget '((0 . "~VIEWPORT")))))

(setq p0 (getpoint "\nBase Point: "))

(setq px (getpoint "\nArray Vector: " p0))

(setq pw (trans p0 1 0)

pd (trans p0 1 3)

vx (trans (mapcar '- px p0) 1 0) dx (distance '(0. 0. 0.) vx)

)

(not (equal dx 0.0 1e-14))

(princ "\nArray Endpoint: ")

)

(while (= 5 (car (setq gr (grread 't 13 0)))) (redraw)

(setq obx (car (mapcar 'vla-delete obx))

nx (fix (setq nl (/ (caddr (trans (setq gr (mapcar '- (cadr gr) p0)) 1 vx)) dx)))

obx (copyv obs (abs nx) (mapcar (if (minusp nx) '- '+) vx))

)

(grvecs (list -3 '(0. 0. 0.) (mapcar '* (trans vx 0 3) (list nl nl nl)))

(list

(list 1. 0. 0. (car pd))

(list 0. 1. 0. (cadr pd))

(list 0. 0. 1. (caddr pd))

(list 0. 0. 0. 1.)

)

)

)

)

(redraw) (princ)

)

19.03.2017 18:54    

alumina
taksit taksit isteklere :no

19.03.2017 19:12    

yanginkaplin
Çok teşekkür ederim.
Esen Kal...

> 1 <
Copyright © 2004-2022 SQL: 0.995 saniye - Sorgu: 53 - Ortalama: 0.01877 saniye