10.07.2008 12:33    

meteyus
arkadaslar priz blogu ile hattımızı lisp ile baglanmasını istiyorum. blok un secme noktası ile hatta 90 derece cizgi cekmesini istiyorum. nasıl olur

10.07.2008 16:41    

Harbi65
İstediğin sanırım bu...

Kod:

(defun c:bcz (/)
  (setvar "modemacro" "< Harbi65 Design 2008 © by >")
  (setq bcz_cmd (getvar "CMDECHO")
bcz_osm (getvar "OSMODE")
  )
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (if
    (setq blksec (entsel "\n Bloğu gösterin:"))
     (progn
       (redraw (car blksec) 3)
       (setq blk0 (cdr (assoc 0 (entget (car blksec)))))
       (if (/= blk0 "INSERT")
(progn
   (print "*** Seçilen nesne BLOK değil ***")
)
(progn
   (if
     (setq czgsec (entsel "\n Dik çizilecek çizgiyi seç:"))
      (progn
(setq blk10 (cdr (assoc 10 (entget (car blksec)))))
(setq czg10 (cdr (assoc 10 (entget (car czgsec))))
      czg11 (cdr (assoc 11 (entget (car czgsec))))
      czg0  (cdr (assoc 0 (entget (car czgsec))))
)
(if (/= czg0 "LINE")
  (progn
    (print "*** Seçilen nesne LINE değil ***")
  )
  (progn
    (setq czgang (angle czg10 czg11))
    (setq Bmes (distance czg10 blk10)
  Bang (angle czg10 blk10)
    )
    (setq Cang (- Bang czgang))
    (if (< cgz_ang Bang)
      (setq Cang (- czgang Bang))
    )
    (setq Daci (+ Cang (/ pi 2.0)))
    (setq Dmes (* Bmes (sin Daci)))
    (setq czg_P1 (polar czg10 czgang Dmes))
    (command "_line" blk10 czg_P1 "")
  )
)
      )
      (progn
(print " * Çizgi Seçilmedi * ")
      )
   )
)
       )
       (redraw (car blksec) 4)
     )
     (progn
       (print " * Blok Seçilmedi * ")
     )
  )
  (setvar "OSMODE" bcz_osm)
  (setvar "CMDECHO" bcz_cmd)
  (princ)
)
(princ "\n Seçilen Bloktan gösterilen çizgiye dik çizgi çizer [ BCZ ]")

10.07.2008 18:16    

meteyus
evet aynen bu patron bunun yanında sunu yapabılırmıyız. bloktan ızılen cızgı bır polylıne ıse o polylıne ile butun olsun yanı polylıne devamı olsun olurmu. bırde cızgı baglandıgı zaman fıllet radyus degerıne gore fıllet yapabılırmı

10.07.2008 18:43    

Harbi65
dik çizilen seçtiğimiz çizgiye mi pline olarak birleşecek...?
yani seçtiğimiz çizgi ile yeni çizileni pedit mi yapacak?

10.07.2008 19:08    

meteyus
evet sayılır burada blok u bagladıgın cızgı polylıne olacak (lsp te lıne olarak vermısın) bloktan cızılende cıgıde bu polylıne a bırleserek pedıt olacak ve fıllet olursa dıye dusunuyorum.

10.07.2008 19:21    

Harbi65
Yeniden düzenledim...
Dik çizlen çizgi çift olursa istediğini yapıyor ama .... çift olmasının masuru var mı bilmiyorum...
Çalıştıran kod: BPL

Kod:

(defun bpl_hata (s)
  (if (/= s "Function cancelled")
    (princ (strcat "\nError: " s))
  )
  (setvar "CMDECHO" bpl_cmd)
  (setvar "OSMODE" bpl_osm)
  (redraw (car blksec) 4)
  (setq *error* olderr)
  (princ)
)
;;;-----------------------------------------------;;;
(defun c:BPL (/)
  (setq olderr *error*
*error* bpl_hata
  )
  (setvar "modemacro" "< Harbi65 Design 2008 © by >")
  (setq bpl_cmd (getvar "CMDECHO")
bpl_osm (getvar "OSMODE")
  )
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (setq sss nil)
  (while (= sss nil)
    (setq blksec (entsel "\n Bloğu gösterin:"))
    (if (= blksec nil)
      (progn
(if (= (getvar "errno") 7)
  (progn (setq sss nil)
(setvar "errno" 0)
(print " * Blok Seçilmedi * ")
  )
)
(if (= (getvar "errno") 52)
  (progn (setq sss t)
(setvar "errno" 0)
  )
)
(if (= (getvar "errno") 87)
  (progn (setq sss t)
(setvar "errno" 0)
  )
)
      )
      (progn
(redraw (car blksec) 3)
(setq blk0 (cdr (assoc 0 (entget (car blksec)))))
(if (/= blk0 "INSERT")
  (progn
    (print "*** Seçilen nesne BLOK değil ***")
  )
  (progn
    (if
      (setq czgsec (entsel "\n Dik çizilecek çizgiyi seç:"))
       (progn
(setq blk10 (cdr (assoc 10 (entget (car blksec)))))
(setq czg0 (cdr (assoc 0 (entget (car czgsec)))))
(if (or (= czg0 "LINE")
(= czg0 "LWPOLYLINE")
(= czg0 "POLYLINE")
     )
   (progn
     (setq mpt1 (osnap (cadr czgsec) "midp"))
     (setq ept1 (osnap (cadr czgsec) "endp"))
     (setq czgang (angle ept1 mpt1))
     (setq Bmes (distance ept1 blk10)
   Bang (angle ept1 blk10)
     )
     (setq Cang (- Bang czgang))
     (if (< cgz_ang Bang)
       (setq Cang (- czgang Bang))
     )
     (setq Daci (+ Cang (/ pi 2.0)))
     (setq Dmes (* Bmes (sin Daci)))
     (setq czg_P1 (polar ept1 czgang Dmes))
     (command "_pline" blk10 czg_P1 "")
     (setq cz1 (entlast))
     (command "_break" czgsec "_f" czg_P1 czg_P1)
     (setq cz2 (entlast))
     (command "_pline" blk10 czg_P1 "")
     (setq cz3 (entlast))
     (if (= czg0 "LINE")
       (progn
(command "_pedit" czgsec "_y" "j" cz3 cz2 cz1
  "" "")
       )
       (progn
(command "_pedit" czgsec "j" cz3 cz2 cz1 "" "")
       )
     )
   )
   (progn
     (print
       "***  Dik çizilecek nesne uygun değil..!!!  ***"
     )
     (print
       "*** LINE / POLYLINE / LWPOLYLINE olmalı..! ***"
     )
   )
)
       )
       (progn
(print " * Çizgi Seçilmedi * ")
       )
    )
  )
)
(redraw (car blksec) 4)
      )
    )
  )
  (setvar "CMDECHO" bpl_cmd)
  (setvar "OSMODE" bpl_osm)
  (princ)
)
(princ
  "\n Seçilen Bloktan gösterilen çizgiye dik çizgi çizer [ BPL ]"
)

Harbi65 (11.07.2008 07:21 GMT)

11.07.2008 10:27    

meteyus
patron cok guzel oldu tabı bunda fıllet yapamıyoruz degılmı baglantı noktasını

> 1 <
Copyright © 2004-2022 SQL: 0.882 saniye - Sorgu: 60 - Ortalama: 0.01471 saniye