¸®½À °Á - Pline ¿¡ ¾ÆÅ©¸¦ »ý¼ºÇÏ´Â ÇÔ¼ö.
| º» °Á´ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)¿¡ ÀÇÇØ ¸¸µé¾î Á³À¸¸ç ¾î¶°ÇÑ À¥À̳ª ÃâÆÇ¹°¿¡ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)ÀÇ µ¿ÀǾøÀÌ ¿Ã¸®´Â °ÍÀ» Çã¶ôÇÏÁö ¾Ê½À´Ï´Ù. |
pline ¿¡ ¾ÆÅ©¸¦ »ý¼ºÇÒ¶§ ÇϳªÀÇ
¹ÝÁö¸§ °ª¿¡ ´ëÇØ ºíÁö °ªÀº 4 °³°¡ Á¸ÀçÇÕ´Ï´Ù.
|
||
|
|
||
|
||
(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)
)
)
)