[Auto Lisp / Excel / ±âŸ °ÇÃà°ú ÄÄÇ»ÅÍ¿¡ °ü·ÃµÈ »çÇ×]

    1  2    ·Î±×ÀÎ  °¡ÀÔ
°£´ÜÇÑ Ã¢¹®À» ±×¸®´Â ÇÁ·Î±×·¥
ÀÌ ¸§ °­»ç  
Á¶ ȸ 5,916
¹Þ ±â #2 WINDOW.LSP(5.4 KB), Download : 113
±ÛÀÚÅ©±â
(defun *ERROR* (st)
       (COMMAND "LAYER" "S" Q:LAINIT "")
       (SETVAR "BLIPMODE" 1)
       (setvar "OSMODE" 0)
       (terpri)
       (princ "\nerror: ")
       (princ st)
       (prin1)
)

(defun win1 (pt1 pt2 pt3 wid pwin just / angh angv p1 p2 p3 p4 p5 p6 p7 p8 p9
             p10 sp pp jambdist len width)
       (setq angh (angle pt1 pt2))
       (setq angv (angle pt1 pt3))
       (setq width (distance pt1 pt3))
       (if (> width wid)
           (setq jambdist (/ (- width wid) 2.0))
           (setq jambdist (/ (- wid width) 2.0))
       )
   ; left jamb draw
       (command "LAYER" "m" "apmull" "c" "green" "" "")
       (if (= just "C")
         (progn
           (if (> width wid)
               (setq p1 (polar pt1 angv jambdist))
               (setq p1 (polar pt1 (+ angv pi) jambdist))
           )
         )
         (setq p1 (polar pt1 (+ angv pi) just))
       )
       (setq p2 (polar p1 angh 45.0))
       (setq p3 (polar p2 angv wid))
       (setq p4 (polar p1 angv wid))
       (command "pline" p1 "w" 0.0 "" p2 p3 p4 "c")
       (setq sp p2)
   ; right jamb draw
       (setq p5 (polar p1 angh (distance pt1 pt2)))
       (setq p6 (polar p5 (+ angh pi) 45.0))
       (setq p7 (polar p6 angv wid))
       (setq p8 (polar p5 angv wid))
       (command "pline" p5 p6 p7 p8 "c")
   ; el-line draw
       (command "LAYER" "m" "agsill" "c" "1" "" "")
       (command "line" p2 p6 "")
       (command "line" p3 p7 "")
       (if pwin
           (progn
           (setq p9 (polar p1 angv (/ wid 2.0)))
           (setq p10 (polar p5 angv (/ wid 2.0)))
           (command "line" p9 p10 "")
           (setq pp p9)
           )
       )
   ; window draw
       (command "layer" "m" "apglaz" "c" "2" "" "")
       (setq len (/ (- (distance pt1 pt2) 90.0) 2.0))
       (if pwin (setq p1 (polar p2 angv (/ wid 4.0)))
                (setq p1 (polar p2 angv (/ wid 2.0)))
       )
       (setq p2 (polar p1 angh (* len 2.0)))
       (setq p3 (polar p1 angv 30.0))
       (setq p4 (polar p3 angh (+ len 30.0)))
       (setq p5 (polar p1 angh (+ len 30.0)))
       (setq p6 (polar p2 (+ angv pi) 30.0))
       (setq p7 (polar p6 (+ angh pi) (+ len 30.0)))
       (setq p8 (polar p2 (+ angh pi) (+ len 30.0)))
       (setq p9 (polar sp angh len))
       (setq p9 (polar p9 (+ angv pi) 50.0))
       (setq p10 (polar p9 angv (+ wid 100.0)))
       (command "line" p1 p2 "")
       (command "select" "l" "")
       (command "pline" p3 p4 p5 "")
       (command "select" "p" "l" "")
       (command "pline" p6 p7 p8 "")
       (command "select" "P" "l" "")
       (command "line" p9 p10 "")
       (if pwin (command "copy" "p" "" pp (polar pp angv (/ wid 2.0))))
)

; Main Program

(defun C:WINDOW (/ pt4 pt5 ang d1 ss l1 l2 l3 ll k e ela ls no data)
   (setvar "CMDECHO" 0)
   (setq Q:LAINIT (getvar "clayer"))
   (command "layer" "off" "*cen*" "")
   (setvar "OSMODE" 32)
   (setq pt1 (getpoint "\n>>> Pick First Point on Openning Wall : "))
   (setq pt2 (getpoint pt1
        "\n>>> Pick Second Point (or Enter @size<angle) : "))
   (setvar "OSMODE" 128)
   (setq pt3 (getpoint pt1 "\n>>> Pick Opposite Point of Wall :  "))
   (if (= wid nil) (setq wid (distance pt1 pt3)))
   (princ "\n>>> Enter width of Frame <") (princ wid) (princ "> :")
   (setq data (getint))
   (if (/= data nil) (setq wid data))
   (if (= just nil) (setq JUST "C"))
   (setq loop 1)
   (while loop
     (princ "\n>>> Justification Frame : Center / margin (mm)>) <")
     (princ JUST) (princ "> : ")
     (initget "C")
     (setq data (getreal))
     (cond ((and (numberp data)(<= data WID))
          (setq loop nil)
          )
          ((= data "C") (setq loop nil))
          ((and (= data nil) (numberp JUST) (<= JUST WID))
          (setq loop nil)
          )
          ((and (= data nil) (= JUST "C")) (setq loop nil))
          (t nil)
     )
   )
   (if (or (numberp data) (= data "C")) (setq JUST data))
   (if (< 200 wid)
    (progn
    (setq pwin (strcase (getstring "\n>>> Do You want Pair Window ? <Y> : ")))
    (if (= (ascii pwin) (ascii "N")) (setq pwin nil)))
    (setq pwin nil)
   )
   (setvar "OSMODE" 0)
   (setvar "BLIPMODE" 0)
   (setq ang (angle pt1 pt2))
   (setq d1 (distance pt1 pt2))
   (setq pt4 (polar pt3 ang (/ d1 9.9)))
   (setq pt5 (polar pt1 ang (/ d1 1.1)))
   (setq ss (ssget "C" pt4 pt5))
   (setq ela nil)
   (if (/= ss nil)
     (progn
       (setq l1 (strcase "1cen"))
       (setq l2 (strcase "2sec"))
       (setq l3 (strcase "3sec"))
       (setq k 0)
       (repeat (sslength ss)
         (setq e (entget (ssname ss k)))
         (setq ll (cdr (assoc 8 e)))
         (if (= ll l1) (ssdel (ssname ss k) ss) (setq k (1+ k)))
         (if (or (= ll l2) (= ll l3)) (setq ela (cdr (assoc 8 e))))
       )
       (setq ls (sslength ss))
       (if (/= ls 0)
         (progn
           (setq no -1)
           (if (= ela nil)
               (progn
               (setq e (entget (ssname ss 0)))
               (setq ela (cdr (assoc 8 e)))
               )
           )
           (command "LAYER" "s" ela "")
           (command "LINE" pt1 pt3 "")
           (command "COPY" "L" "" pt1 pt2)
           (command "TRIM" "L" "P" "")
           (repeat ls
             (setq no (1+ no))
             (command (list (ssname ss no) pt4))
           )
           (command "")
         )
       )
     )
   )
   (win1 pt1 pt2 pt3 wid pwin just)
   (COMMAND "LAYER" "s" Q:LAINIT "")
   (command "layer" "on" "*cen*" "")
   (setvar "OSMODE" 33)
   (PRIN1)
)
choijm67
ºÐ·ù
¹øÈ£ Á¦¸ñ À̸§º¸±â
29    [re] ijµå ±âÃÊ °­Á ³ìÈ­ ¹æ¼Û ÁøÇà-ijµå ±âÃÊ°­Á ¸éÀû±¸ÇÏ±â   À̼ö¿¬2103
28  ·¹À̾ ÄÑ°í ²ô´Â ¸®½À   ¹èÀçÀÏ2586
27  ¼±ÀÇ ±æÀ̸¦ text·Î ³Ö¾îÁִ°͠+2  ¹èÀçÀÏ6257
26  Ä³µå¿¡¼­ ¿©·¯°³µµ¸é ¶ç¿ö³õ°í º¸´Â ÇÁ·Î±×·¥ docbar +2  ±è±æÁØ4369
25  Auto LispÀ¸·Î ¸¸µé¾îÁø ÇÁ·Î±×·¥ÀÇ ¸í·É¾î¸¦ È®ÀÎÇÏ´Â ¹æ¹ý +1  °­»ç3668
24  È¨ÆäÀÌÁö¿¡ ÀÖ´Â LispÀ» »ç¿ëÇÏ´Â ¹æ¹ý +1  °­»ç2644
 °£´ÜÇÑ Ã¢¹®À» ±×¸®´Â ÇÁ·Î±×·¥   °­»ç5916
22  Ã¹±ÛÀÚ¸¦ ´ë¹®ÀÚ·Î º¯°æÇÏ´Â ÇÁ·Î±×·¥ +1  °­»ç1668
21  ÀÌ¹Ì ½áÁø ±ÛÀÚ Å©±â¸¦ º¯°æÇÏ´Â ÇÁ·Î±×·¥   °­»ç5208
20  ÀԸ鿡 ·¹º§Ç¥½Ã / Æò¸é¿¡ ·¹º§ Ç¥½ÃÇØÁÖ´Â ÇÁ·Î±×·¥-lem +6  °­»ç8366
19  ÀÚÁÖ»ç¿ëµÇ´Â ·¹À̾ Á¦¾îÇÏ´Â Lisp(onekey.lsp)/¿øÅ° +3  °­»ç7883
18  ¹®±×¸®´Â ÇÁ·Î±×·¥ +5  °­»ç2439
17  °è´Ü±×¸®´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. +2  °­»ç17171
16  ¸éÀûÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥/ijµå ¸éÀû±¸Çϴ¹ý +3  °­»ç8905
15  ¸®½À°­Á ȨÆäÀÌÁö ^-^   °­»ç2633
14  º®Ã¼¸¦ ±×¸®´Â ÇÁ·Î±×·¥-wa +1  °­»ç6772
13  Open ÀÇ X Ç¥½Ã   °­»ç2068
12  °ÇÃà°ú ÀÎÅ׸®¾î¿¡¼­ ÄÄÇ»Å͸¦ Åø(Tool)·Î ¾Ë¾ÆµÎ¾î¾ß ÇÒ »çÇ× Á¤¸® +1  °­»ç2519
11  ´Ü¿­Àç±×¸®´Â ÇÁ·Î±×·¥   °­»ç9993
 ÇÁ·Î±×·¥À» ´Ù¿î¹ÞÀ»¶§ ¾ÈµÇ¸é   °­»ç2340
Copyright 1999-2025 Zeroboard / skin by SIRINI

[ äÆÃâ Å©°Ôº¸±â ] ¡á ÀÌ°÷Àº ½Ç½Ã°£ äÆà âÀÔ´Ï´Ù. ÀÚÀ¯·Î¿î ÀÇ°ß ³ª´©½Ã±â ¹Ù¶ø´Ï´Ù.[ 2025-02-12 ] ¡á