¸®½À °­Á - Pline ¿¡ ¾ÆÅ©¸¦ »ý¼ºÇÏ´Â ÇÔ¼ö.


º» °­Á´ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)¿¡ ÀÇÇØ ¸¸µé¾î Á³À¸¸ç ¾î¶°ÇÑ À¥À̳ª
ÃâÆÇ¹°¿¡ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)ÀÇ µ¿ÀǾøÀÌ ¿Ã¸®´Â °ÍÀ» Çã¶ôÇÏÁö ¾Ê½À´Ï´Ù.

 

pline ¿¡ ¾ÆÅ©¸¦ »ý¼ºÇÒ¶§ ÇϳªÀÇ ¹ÝÁö¸§ °ª¿¡ ´ëÇØ ºíÁö °ªÀº 4 °³°¡ Á¸ÀçÇÕ´Ï´Ù.
¾Æ·¡ ±×¸²°ú °°ÀÌ µÎÁ¡ p1,p2 »çÀÌ¿¡ ¹ÝÁö¸§ 100 ÀÎ ¿øÀº µÎ°³ Á¸ÀçÇÒ¼ö ÀÖ½À´Ï´Ù.



±×·¡¼­ ÀÌÇÔ¼ö´Â »ç¿ëÀÚ°¡ ÀǵµÇÏ´Â Á¶°Ç¿¡ µû¶ó ¾ÆÅ©¸¦ »ý¼ºÇÒ¼ö ÀÖ´Â ÇÔ¼ö ÀÔ´Ï´Ù.
°¢ Á¶°Ç¿¡ ´ëÇØ¼­´Â ¾Æ·¡¸¦ ÂüÁ¶Çϼ¼¿ä.



(vl-setbulge pline_Ename intNth r s+- sel)

pline_Ename : pline entName
intNth : ¾ÆÅ©°¡ ½ÃÀ۵Ǵ ¹øÈ£ . pline ÀÇ Ã¹¹øÂ°Á¡ÀÌ 0 ¹øÀÌ°í µÎ¹øÂ° Á¡ÀÌ 1 ¹øÀÌ´Ù.
s+- : °¡ '- À̸é ù¹øÂ° Á¡¿¡¼­ µÎ¹øÂ° Á¡À¸·Î ½Ã°è ¹æÇâ ±×·ÁÁø´Ù.
s+- : °¡ '+ À̸é ù¹øÂ° Á¡¿¡¼­ µÎ¹øÂ° Á¡À¸·Î ½Ã°è¹Ý´ë ¹æÇâ ±×·ÁÁø´Ù.
r : ¹ÝÁö¸§°ª
sel : ÀÌ T À̸é Å« ºíÁö°ªÀ» ÃëÇϰí
sel : ÀÌ nil À̸é ÀÛÀº ºíÁö°ªÀ» ÃëÇÑ´Ù.


ù¹øÂ° Á¡¿¡¼­ µÎ¹øÂ° Á¡À¸·Î ½Ã°è¹æÇâÀ¸·Î ±×·ÁÁú °æ¿ì.



ù¹øÂ° Á¡¿¡¼­ µÎ¹øÂ° Á¡À¸·Î ½Ã°è¹Ý´ë¹æÇâÀ¸·Î ±×·ÁÁú °æ¿ì.

ÄÚµå

  
  (defun vl-setbulge (objEname intNth r s+- sel / bulgeFactor Pvtx bulgeFact)

    (defun bulgeFactor (pt1 pt2 r s+- sel / c h h- bulge)
      (setq
         c (/ (distance pt1 pt2) 2.0)
         h (+ r (sqrt (- (expt r 2) (expt c 2))))
         h- (- r (sqrt (- (expt r 2) (expt c 2))))
         bulge (/ ((eval s+-) (if sel h h-)) c)
      )
    )

    (setq Pvtx (GetPolyVtx (entget objEname)))
    (cond
      ((or (< intNth 0) (> intNth (- (length pvtx) 2))) nil)
      ((> r (/ (distance (nth intNth Pvtx) (nth (1+ intNth) Pvtx)) 2.0))
         (setq bulgeFact (bulgeFactor (nth intNth Pvtx) (nth (1+ intNth) Pvtx) r s+- sel))
         (vla-setBulge (vlax-Ename->vla-Object objEname) intNth bulgeFact)
      )
    )
  )
¼³¸í


  (defun vl-setbulge (objEname intNth r s+- sel / bulgeFactor Pvtx bulgeFact)

    ;; ÁÖ¾îÁø Á¶°Ç¿¡ µû¶ó ºíÁö °ªÀ» ¸®ÅÏÇÏ´Â ÇÔ¼ö.
    (defun bulgeFactor (pt1 pt2 r s+- sel / c h h- bulge)
      (setq
         c (/ (distance pt1 pt2) 2.0)
         h (+ r (sqrt (- (expt r 2) (expt c 2))))
         h- (- r (sqrt (- (expt r 2) (expt c 2))))
         bulge (/ ((eval s+-) (if sel h h-)) c)
      )
    )

    ;; ÇǶóÀÎÀÇ Á¤Á¡µéÀ» ¸®ÅÏÇÑ´Ù.
    (setq Pvtx (GetPolyVtx (entget objEname)))
    (cond
      ;; ¾ÆÅ©»ý¼ºÇÒ ½ÃÀÛÁ¡(intNth)ÀÌ 0 º¸´Ù À۰ųª ÃÖ´ëÁ¤Á¡¼öº¸´Ù Å©´Ù¸é Á¾·áÇÑ´Ù.
      ((or (< intNth 0) (> intNth (- (length pvtx) 2))) nil)
      ;; Áö¸§º¸´Ù µÎÁ¡ÀÇ °Å¸®°ªÀÌ Å«°æ¿ì´Â Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡
      ;; ¾ÆÅ©¸¦ »ý¼ºÇÒ µÎÁ¡ÀÇ °Å¸®°ªÀÌ ¾ÆÅ©ÀÇ Áö¸§º¸´Ù ÀÛÀ»°æ¿ì¿¡¸¸ ¾ÆÅ©¸¦ »ý¼ºÇÑ´Ù.
      ((> r (/ (distance (nth intNth Pvtx) (nth (1+ intNth) Pvtx)) 2.0))
         ;; °¢ Á¶°Ç¿¡ ÀÇÇØ ºíÁö°ªÀ» ¾ò´Â´Ù.
         (setq bulgeFact (bulgeFactor (nth intNth Pvtx) (nth (1+ intNth) Pvtx) r s+- sel))
         ;; activex ÇÔ¼ö¸¦ ÀÌ¿ëÇØ pline ÇØ´ç ÁöÁ¡¿¡ ¾ÆÅ©¸¦ »ý¼ºÇÑ´Ù.
         (vla-setBulge (vlax-Ename->vla-Object objEname) intNth bulgeFact)
      )
    )
  )