15.03.2008 17:45    

rdx
mrb arkadaşlar iki parcayı tek tıkla 10 mm lik kopru atan Lisp lazım ilgilenirseniz sevinirim

ProhibiT (20.06.2012 08:18 GMT)

31.03.2008 12:30    

Kaya WiCAM
bizim firmanin WiCAMin programinda köprüde mevcuttur cad cam yazilim nc lazerlemek punch 10 tane dil icinde türkcede var eger ilgini cekmisse bana msj atman yeterlidir ya buraya yada firma mailime E-mail Yasak iyi günler

Mustafa Kaya
WiCAM

ehya (31.03.2008 17:41 GMT)

19.06.2012 08:33    

yilmazakifemre
ya şu köprü atma lispi banada lazım. elinde hazır olan kimse yokmu kardeşlerim.
yardımcı olunuz lütfen

20.06.2012 05:45    

yilmazakifemre
Allah rızası için biri yardım etsin. ben her akşam kendim uğraşıp yazacam diye niyet ediyorum ama. çok profesyonel olmadığım için çok vaktimi alıyor ve benimde vaktim olmuyor malesef. İşten çıktıktan sonra evde de boş vaktim olamıyor.

Bir arkadaşım el atsa şu köprü atma lispini hayrına paylaşsa duacısı olurum.

20.06.2012 06:16    

Travaci
Arkadaşlar nedir bu köprü yaa : ) biri resim paylaşsın.

20.06.2012 07:02    

yilmazakifemre
Travaci kardeşim. öncelikle ilgin için Allah senden razı olsun.

ben resim paylaşayım diye uğraşıyorum ama bir sorun var sanırım bir türlü resim yükleyemedim.

yazarak tarif etmeye çalışayım

iki tane bir birinin aynı kare çizimi düşünelim. örnek 100mmX100mm kare
bu iki kare yan yana aynı hizada duruyorlar ve aralarında 10mm aralık var.
bu 10mm aralığa bakan iki karenin kenarları ( yani birbirine bakan iki kenar) bir köprü ile bağlanacak.
kareleri iki ayrı ada düşünürsek bu iki ada arasında geçiş için bir boğaz köprüsü yapmak istediğimizi hayal edelim.

köprü 10mm yada 12mm genişliğinde olacak. 10mm aralıktaki iki kareyi bağlayacak.

İnşallah bu şekilde tarif edebilmişimdir.

20.06.2012 22:30    

Travaci
Birşeyler yapmaya çalıştım, herelde böyle birşey isteğinizi umuyorum, doğru bir şekilde çalışması için köprü yapılacak yüzeylerin birbirine paralel olması gerekiyor.Seçim soldan sağa tıklandığında köprüyü alta sağdan sola seçildiğinde ise yukarı çizer.
Kod:

(defun c:kPr (/)
    (setvar "cmdecho" 0)
    (command "_.undo" "group")
    (setq oosm (getvar "osmode"))
    (defun *error* (princ) (command "_.undo" "e") (setvar "osmode" oosm))
    (if (not ekpr) (setq ekpr 10))
    (if (setq kpr (getreal (strcat "\nKöprü genişliğini giriniz:<" (rtos ekpr) ">"))) (setq ekpr kpr) (setq kpr ekpr))
    (setq n1 (getpoint "\nBirinci noktayı tanımlayınız."))
    (setvar "osmode" 128)
    (setq n2 (getpoint n1 "\nİkinci noktayı tanımlayınız."))
    (setq a4 (/ (* 3 pi) 2)
        ac (angle n1 n2)
        n3 (polar n1 (+ ac a4)  kpr)
        n4 (polar n2 (+ ac a4)  kpr)
        n5 (polar n1 ac (- kpr))
        n6 (polar n5 (+ ac a4) (/ 2 kpr))
        n9 (polar n4 ac kpr)
        n10 (polar n9 (+ ac pi) (/ 2 kpr))
    )
    (setvar "osmode" 0)
    (entmake (list (cons 0 "Line") (cons 10 n1) (cons 11 n2)))
    (entmake (list (cons 0 "Line") (cons 10 n3) (cons 11 n4)))
    (command "trim" "" "f"  n6 n10 "" "")(princ)
    (setvar "osmode" oosm)
    (command "_.undo" "e")
    (princ)
)

21.06.2012 05:32    

yilmazakifemre
kardeşim ellerine sağlık. uğraşmış yazmışsın. Allah razı olsun.

ben lispi hemen denedim. bir sorun var ki o da köprüyü dik açı haricinde açılı atmak istediğimde olmuyor.

yani yine iki kareyi örnek verirsek. birinin merkezinden notkatı yakaladım diğerinide merkezin biraz aşağısından noktayı işaretlediğimde işlemi tam yapamıyor.

ama çok iyi anlamış ve tam istediğim yolda bir lisp yazmışsın. Allah herşeyi gönlüne göre versin kardeşim.

bahsettiğim soruna göre düzenleme yapabilirmisin peki. :blush

emeğine sağlık

21.06.2012 06:29    

Travaci
Dediğim gibi çizgilerin birbirine paralel olması gerekiyor. Daha fazlasını yazabilecek seviyede değilim : ) umarım birileri sorununu halleder.

21.06.2012 08:11    

yilmazakifemre
eyvallah kardeşim. emeğine sağlık. :)

21.06.2012 19:32    

ProhibiT
Video için tıklayınız
Kod:

;|===========================================================================|;
;|  bRdg  : Bridge - Author: M.S.Güvercin www.autocadokulu.com - 21.06.2012  |;
;|===========================================================================|;
(defun c:bRdg (/ *error* brw n1 obj1 n2 obj2 Ln1 Sp1 Ep1 DsT P1 n Ds p P2
  Ln2 Sp2 Ep2 n3 n4)(setvar "cmdecho" 0)(command "_.undo" "group")(vl-load-com)
  (defun *error* (er /) (princ er) (command "_.undo" "e"))
  (if (setq brw (getdist (strcat "\nKöprü genişliği <"
        (rtos (if (not obrw) (setq obrw 10) obrw)) ">: ")))
    (setq obrw brw) (setq brw obrw))
  (setq n1 (getpoint "\nBirinci noktayı seçiniz: ")
        obj1 (vlax-ename->vla-object (ssname (ssget "c" n1 n1) 0))
        n2 (getpoint n1 "\nİkinci noktayı seçiniz: ")
        obj2 (vlax-ename->vla-object (ssname (ssget"c"n2 n2)0))ac(angle n1 n2))
  (entmake(list(cons 0 "Line")(cons 10(polar n1(+ ac(/ pi 2.0))(/ brw 2.0)))
                              (cons 11(polar n2(+ ac(/ pi 2.0))(/ brw 2.0)))))
  (setq Ln1 (vlax-ename->vla-object (entlast))
        Sp1 (vlax-safearray->list (vlax-variant-value
              (vla-intersectwith Ln1 obj1 AcExtendBoth)))
        Ep1 (vlax-safearray->list (vlax-variant-value
              (vla-intersectwith Ln1 obj2 AcExtendBoth)))
        DsT (distance n1(setq P1(list(nth 0 Sp1)(nth 1 Sp1)(nth 2 Sp1)))) n 2)
  (while (< (setq n (1+ n)) (- (length Sp1) 2))
    (if (< (setq Ds (distance n1 (setq p (list (nth n Sp1)
     (nth(setq n(1+ n))Sp1)(nth(setq n(1+ n))Sp1)))))DsT) (setq DsT Ds P1 p)))
  (setq DsT (distance n2(setq P2(list(nth 0 Ep1)(nth 1 Ep1)(nth 2 Ep1)))) n 2)
  (while (< (setq n (1+ n)) (- (length Ep1) 2))
    (if (< (setq Ds (distance n2 (setq p (list (nth n Ep1)
      (nth(setq n(1+ n))Ep1)(nth(setq n(1+ n))Ep1)))))DsT)(setq DsT Ds P2 p)))
  (entmake(list(cons 0 "Line")(cons 10(polar n1(- ac(/ pi 2.0))(/ brw 2.0)))
                              (cons 11(polar n2(- ac(/ pi 2.0))(/ brw 2.0)))))
  (setq Ln2 (vlax-ename->vla-object (entlast))
        Sp2 (vlax-safearray->list (vlax-variant-value
              (vla-intersectwith Ln2 obj1 AcExtendBoth)))
        Ep2 (vlax-safearray->list (vlax-variant-value
              (vla-intersectwith Ln2 obj2 AcExtendBoth)))
        DsT (distance n1(setq P3(list(nth 0 Sp2)(nth 1 Sp2)(nth 2 Sp2)))) n 2)
  (while (< (setq n (1+ n)) (- (length Sp2) 2))
    (if (< (setq Ds (distance n1 (setq p (list (nth n Sp2)
      (nth(setq n(1+ n))Sp2)(nth(setq n(1+ n))Sp2)))))DsT)(setq DsT Ds P3 p)))
  (setq DsT (distance n2(setq P4(list(nth 0 Ep2)(nth 1 Ep2)(nth 2 Ep2)))) n 2)
  (while (< (setq n (1+ n)) (- (length Ep2) 2))
    (if (< (setq Ds (distance n2 (setq p (list (nth n Ep2)
      (nth(setq n(1+ n))Ep2)(nth(setq n(1+ n))Ep2)))))DsT)(setq DsT Ds P4 p)))
  (vlax-put-property Ln1 'StartPoint (vlax-3d-point P1))
  (vlax-put-property Ln1 'EndPoint (vlax-3d-point P2))
  (vlax-put-property Ln2 'StartPoint (vlax-3d-point P3))
  (vlax-put-property Ln2 'EndPoint (vlax-3d-point P4))
  (setq os (getvar "osmode")) (setvar "osmode" 0)
  (command "_.Break" (vlax-vla-object->ename obj1) p3 p1)
  (command "_.Break" (vlax-vla-object->ename obj2) p4 p2)
  (setvar "osmode" os) (command "_.undo" "e") (princ))

- Köprü genişliğini klavyeden sayısal değer olarak, veya çizim üzerinde iki nokta seçerek girebilirsiniz.
- Bağlanacak objeler, Line, PolyLine, SPLine, Circle, Ellipse,.. gibi 2 boyutlu AutoCAD objelerinden biri olabilir.
- Bağlanacak objelerin türleri biribirinden farklı olabilir. Bir Circle ile bir PolyLine'ı köprüleyebilirsiniz.
- Birinci ve İkinci noktaları seçerken, ObjectSnap'in açık olması, ve ilgili obje üzerinde seçmeniz doğru olur.

22.06.2012 05:41    

yilmazakifemre
Allah razı olsun kardeşim. O kadar yardımcı oldunki sana ne kadar dua etsem azdır.

ProhibiT
ve
travaci kardeşlerime çok teşekkür ederim.

Allah işllerinizi hayırlı etsin. Her istediğinizi gönlünüze göre versin.

> 1 <
Copyright © 2004-2022 SQL: 1.327 saniye - Sorgu: 78 - Ortalama: 0.01702 saniye