Ã÷¾­CADÉçÇø

 ÕÒ»ØÃÜÂë
 ×¢²á

QQ怬

Ö»ÐèÒ»²½£¬¿ìËÙ¿ªÊ¼

ËÑË÷
²é¿´: 113256|»Ø¸´: 442

[ÌÖÂÛ] ¹ØÓÚ¶à¶ÎÏß

    [¸´ÖÆÁ´½Ó]
·¢±íÓÚ 2013-10-31 09:00:35 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
±¾Ìû×îºóÓÉ ×Ô¹±»ÆÃ÷Èå ÓÚ 2014-11-7 09:43 ±à¼­

;;164.1 [¹¦ÄÜ] ÇúÏßÊÇ·ñ·â±Õ
;;164.2 [¹¦ÄÜ]ʹ¶à¶ÎÏß·â±Õ
;;164.3 [¹¦ÄÜ] ¶à¶ÎÏ߶˵ãÁбí
;;164.4 [¹¦ÄÜ] ¾ØÐÎÖеã×ø±ê
;;164.5 [¹¦ÄÜ] ²ÎÊýparam´¦µÄÇÐÏß·½ÏòµÄ½Ç¶È
;;164.6 [¹¦ÄÜ] ²ÎÊýparam´¦µÄ·¨Ïß·½ÏòµÄ½Ç¶È
;;164.7 [¹¦ÄÜ] ÇúÏßÒ»µãµÄÇÐÏß·½ÏòµÄ½Ç¶È
;;164.8 [¹¦ÄÜ] ÇúÏßÒ»µãµÄ·¨Ïß·½ÏòµÄ½Ç¶È
;;164.9 [¹¦ÄÜ] È¥³ý¶à¶ÎÏßÖØµã
;;164.10 [¹¦ÄÜ] ÅжϵãÊÇ·ñÔÚÇúÏßÉÏ
;;164.11 [¹¦ÄÜ] ÇúÏß³¤¶È
;;164.12 [¹¦ÄÜ] ¶à¶ÎÏß×Ó¶ÎÊýÁ¿
;;164.13 [¹¦ÄÜ] ÇúÏßÖеã
;;164.14 [¹¦ÄÜ] ÇúÏßÒ»µãµÄ²ÎÊýparam
;;164.15 [¹¦ÄÜ] ²ÎÊýparam´¦µÄ×ø±ê
;;164.16 [¹¦ÄÜ] ¶à¶ÎÏßµÚn×Ó¶ÎµÄÆðµã×ø±ê
;;164.17 [¹¦ÄÜ] ¶à¶ÎÏßµÚn×ӶεÄÖÕµã×ø±ê
;;164.18 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×ӶεÄÁ½¶ËµãÁбí
;;164.19 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷µã×î½üµÄÒ»¸ö¶¥µã
;;164.20 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×Ó¶Îparam(Ë÷Òý)
;;164.21 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×Ó¶ÎµÄÆðµã×ø±ê
;;164.22 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×ӶεÄÖÕµã×ø±ê
;;164.23 [¹¦ÄÜ] ¶à¶ÎÏßËù»÷µãÀëÆðµã½ü
;;164.24 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×ӶηñÊÇÖ±Ïß(·µ»ØnilÊÇ»¡)
;;164.25 [¹¦ÄÜ] Çó¶à¶ÎÏßÉϵĻ¡¶Î(Ô²»òÔ²»¡Ò²ÓÐЧ)µÄÔ²ÐÄ by caoyin
;;164.26 [¹¦ÄÜ] Çó¶à¶ÎÏßÉϵĻ¡¶Î(Ô²»òÔ²»¡Ò²ÓÐЧ)µÄÔ²ÐÄ
;;164.27 [¹¦ÄÜ] Åж϶à¶ÎÏßÊÇ·ñÓÐÔ²»¡(͹¶È/=0)µÄ×Ó¶Î
;;164.28 [¹¦ÄÜ] Åж϶à¶ÎÏßÊÇ·ñÓÐÔ²»¡(͹¶È/=0)µÄ×Ó¶Î
;;164.29 [¹¦ÄÜ] Á¬½ÓÏß¡¢»¡³É¶à¶ÎÏß
;;164.30 [¹¦ÄÜ] ¹¹Ôì¾ØÐÎ by highflybird
;;164.31 [¹¦ÄÜ] µã±íÉú³É¶à¶ÎÏß
;;164.32 [¹¦ÄÜ] 3D¶à¶ÎÏß
;;164.33 [¹¦ÄÜ] ¶à¶ÎÏß·´Ïò(Æðµã·´³ÉÖÕµã) byzml84
;;164.34 [¹¦ÄÜ] ¶à¶ÎÏßɾ³ý¶¥µã
;;164.35 [¹¦ÄÜ] ¶à¶ÎÏßÔö¼Ó¶¥µã
;;164.36 [¹¦ÄÜ] ¶à¶ÎÏßÐ޸Ķ¥µã
;;164.37 [¹¦ÄÜ] ¶à¶ÎÏß¿½±´×Ó¶Î
;;164.38 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶Î
;;164.39 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶ÎΪֱÏß
;;164.40 [¹¦ÄÜ] µãÔÚ·â±Õ¶à¶ÎÏßÄÚ·µ»ØT£¬ÆäÓànil  By ¿ñµ¶
;;164.41 [¹¦ÄÜ] µãÔÚ·â±Õ¶à¶ÎÏßÄÚ·µ»ØT£¬ÆäÓànil  By SmcTools
;;164.42 [¹¦ÄÜ] ÅжϵãÔÚ·â±ÕÇúÏßÄÚÍ⣬×Ô½»ÇúÏß²»ÊÊÓà By Gu_xl
;;164.43 [¹¦ÄÜ] µãÔÚ·â±Õ¶à¶ÎÏßÄÚ·µ»ØT;ÏßÉÏ0;Íânil
;;164.44 [¹¦ÄÜ] ¶à¶ÎÏß»¡¶ÎÈ«¸ÄΪֱÏß¶Î
;;164.45 [¹¦ÄÜ] ÑØ¶à¶ÎÏßÈ¡µã£¬»¡´¦°´½Ç¶È¼ÓÃÜÈ¡µã
;;164.46 [¹¦ÄÜ] ¶à¶ÎÏß×ÔÏཻ by st788796

  1. ;;164.1 [¹¦ÄÜ] ÇúÏßÊÇ·ñ·â±Õ By ×Ô¹±»ÆÃ÷Èå
  2. ;;ʾÀý(HH:isClosed (car (entsel)))
  3. (defun HH:isClosed (obj)
  4.   (vlax-curve-isClosed obj)
  5. )
  6. ;;164.2 [¹¦ÄÜ]ʹ¶à¶ÎÏß·â±Õ
  7. (defun HH:MakeClosed (en / OBJ)
  8.   (cond        ((equal (type en) 'ENAME) (setq obj (vlax-ename->vla-object en)))
  9.         ((equal (type en) 'ENAME) (setq obj en))
  10.         (T (exit))
  11.   )
  12.   ;;(if (equal (vlax-get obj 'Closed) 0) (vlax-put obj 'Closed -1))
  13.   (if (not (vlax-curve-isclosed obj))                            ;(equal (vlax-get-property obj 'closed) :vlax-false)
  14.     (vla-put-closed obj :vlax-true)
  15.   )
  16. )
  17. ;;164.3 [¹¦ÄÜ] ¶à¶ÎÏ߶˵ãÁбí By ×Ô¹±»ÆÃ÷Èå
  18. ;;ʾÀý(HH:PtLists (car (entsel)))
  19. (defun HH:PtLists (en)
  20.   (mapcar 'cdr
  21.           (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en))
  22.   )
  23. )

  24. ;;164.4 [¹¦ÄÜ] ¾ØÐÎÖеã×ø±ê By ×Ô¹±»ÆÃ÷Èå
  25. ;;ʾÀý(HH:RectangCen (car (entsel)))
  26. (defun HH:RectangCen (en / PL X Y)
  27.   (setq pl (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en)))
  28.   (setq pl (mapcar 'cdr pl))
  29.   (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) (car pl) (caddr pl))
  30. )
  31. ;;ʾÀý(HH:RectangCen1 (car (entsel)))
  32. (defun HH:RectangCen1 (en / OBJ PL PL1 X Y)
  33.   (setq obj (vlax-ename->vla-object en))
  34.   (setq pl (vlax-safearray->list (vlax-variant-value (vla-get-coordinates obj))))
  35.   (setq pl1 (cddddr pl))
  36.   (mapcar '(lambda (X Y) (/ (+ X Y) 2.0))
  37.           (list (car pl) (cadr pl))
  38.           (list (car pl1) (cadr pl1))
  39.   )
  40. )

  41. ;;164.5 [¹¦ÄÜ] ²ÎÊýparam´¦µÄÇÐÏß·½ÏòµÄ½Ç¶È
  42. ;;ʾÀý(HH:ParamFirstAngle (car (entsel)) 1)
  43. ;;×¢1 (vlax-curve-getFirstDeriv obj param) º¯Êý¼ÆËãµÄÖµÊÇÇúÏßÉÏÔÚ²ÎÊýֵΪparamµã´¦µÄÇÐÏß·½Ïò
  44. ;;×¢2 paramÆðʼֵΪ0
  45. (defun HH:ParamFirstAngle (obj param)
  46.   (setq pt (vlax-curve-getpointatparam obj param))
  47.   (angle pt (mapcar '+ pt (vlax-curve-getFirstDeriv obj param)))
  48. )

  49. ;;164.6 [¹¦ÄÜ] ²ÎÊýparam´¦µÄ·¨Ïß·½ÏòµÄ½Ç¶È
  50. ;;ʾÀý(HH:ParamSecondAngle (car (entsel)) 1)
  51. ;;×¢:param´¦ÊÇÖ±Ïߣ¬Ôò·µ»Ø0.0
  52. (defun HH:ParamSecondAngle (obj param)
  53.   (setq pt (vlax-curve-getpointatparam obj param))
  54.   (angle pt (mapcar '+ pt (vlax-curve-getSecondDeriv obj param)))
  55. )

  56. ;;164.7 [¹¦ÄÜ] ÇúÏßÒ»µãµÄÇÐÏß·½ÏòµÄ½Ç¶È
  57. ;;ʾÀý(HH:PtFirstAngle (car (entsel)) (getpoint))
  58. (defun HH:PtFirstAngle (obj pt)
  59.   (setq param (vlax-curve-getParamAtPoint obj pt))
  60.   (angle pt (mapcar '+ pt (vlax-curve-getFirstDeriv obj param)))
  61. )

  62. ;;164.8 [¹¦ÄÜ] ÇúÏßÒ»µãµÄ·¨Ïß·½ÏòµÄ½Ç¶È
  63. ;;ʾÀý(HH:PtSecondAngle (car (entsel)) (getpoint))
  64. (defun HH:PtSecondAngle        (obj pt)
  65.   (setq param (vlax-curve-getParamAtPoint obj pt))
  66.   (angle pt (mapcar '+ pt (vlax-curve-getSecondDeriv obj param)))
  67. )

  68. ;;164.9 [¹¦ÄÜ] È¥³ý¶à¶ÎÏßÖØµã  By ×Ô¹±»ÆÃ÷Èå
  69. ;;ʾÀý(HH:Remove (car (entsel)))
  70. (defun HH:Remove (en / NEWDATA)
  71.   (foreach e (entget en)
  72.     (if        (and (member e newdata) (= 10 (car e)))
  73.       nil
  74.       (setq newdata (cons e newdata))
  75.     )
  76.   )
  77.   (entmod (reverse newdata))
  78. )

  79. ;;164.10 [¹¦ÄÜ] ÅжϵãÊÇ·ñÔÚÇúÏßÉÏ
  80. ;;ʾÀý(HH:PtOnCurve (getpoint) (car (entsel)))
  81. (defun HH:PtOnCurve (pt curve)
  82.   (equal pt (vlax-curve-getClosestPointTo curve pt) 0.00001)
  83. )

  84. ;;164.11 [¹¦ÄÜ] ÇúÏß³¤¶È
  85. ;;Ö±Ïß¡¢Ô²»¡¡¢Ô²¡¢¶à¶ÎÏß¡¢ÓÅ»¯¶à¶ÎÏß¡¢ÑùÌõÇúÏßµÈͼԪ
  86. ;;ʾÀý (HH:GetCurveLength (car (entsel)))
  87. (defun HH:GetCurveLength (curve)
  88.   (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve))
  89. )

  90. ;;164.12 [¹¦ÄÜ] ¶à¶ÎÏß×Ó¶ÎÊýÁ¿
  91. ;;Ï൱ÓÚ×éÂë90
  92. ;;ʾÀý (HH:GetCurveNum (car (entsel)))
  93. (defun HH:GetCurveNum (obj)
  94.   (if (vlax-curve-isClosed obj)
  95.     (fix (1- (vlax-curve-getendParam obj)))
  96.     (fix (vlax-curve-getendParam obj))
  97.   )
  98. )

  99. ;;164.13 [¹¦ÄÜ] ÇúÏßÖеã
  100. ;;ʾÀý (HH:GetMidpointCurve (car (entsel)))
  101. (defun HH:GetMidpointCurve (curve / d)
  102.   (setq d (/ (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve)) 2))
  103.   (vlax-curve-getPointAtDist curve d)
  104. )

  105. ;;164.14 [¹¦ÄÜ] ÇúÏßÒ»µãµÄ²ÎÊýparam
  106. ;;(HH:PtToParam (car (entsel)) (getpoint))
  107. (defun HH:PtToParam (obj pt)
  108.   (vlax-curve-getParamAtPoint obj pt)
  109. )
  110. ;;164.15 [¹¦ÄÜ] ²ÎÊýparam´¦µÄ×ø±ê
  111. ;;(HH:ParamTopt (car (entsel)) 0)
  112. (defun HH:ParamTopt (obj param)
  113.   (vlax-curve-getPointAtParam obj param)
  114. )
  115. ;;164.16 [¹¦ÄÜ] ¶à¶ÎÏßµÚn×Ó¶ÎµÄÆðµã×ø±ê
  116. ;;ʾÀý (HH:GetSegStratPt (car (entsel)) 0)
  117. (defun HH:GetSegStratPt        (curve n)
  118.   (vlax-curve-getPointAtParam curve (fix n))
  119. )
  120. ;;164.17 [¹¦ÄÜ] ¶à¶ÎÏßµÚn×ӶεÄÖÕµã×ø±ê
  121. ;;ʾÀý (HH:GetSegEndPt (car (entsel)) 0)
  122. (defun HH:GetSegEndPt (curve n)
  123.   (vlax-curve-getPointAtParam curve (1+ (fix n)))
  124. )

  125. ;;164.18 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×ӶεÄÁ½¶ËµãÁбí
  126. ;;ʾÀý(HH:PickSegEndPt (car(setq en(entsel))) (cadr en))
  127. (defun HH:PickSegEndPt (obj p / pp n)
  128.   (setq        pp (vlax-curve-getclosestpointto obj (trans p 1 0))
  129.         n  (fix (vlax-curve-getparamatpoint obj pp))
  130.   )
  131.   (list        (vlax-curve-getPointAtParam obj n)
  132.         (vlax-curve-getPointAtParam obj (1+ n))
  133.   )
  134. )

  135. ;;164.19 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷µã×î½üµÄÒ»¸ö¶¥µã  By ×Ô¹±»ÆÃ÷Èå
  136. ;;ʾÀý(HH:PickClosePt (car(setq en(entsel))) (cadr en))
  137. (defun HH:PickClosePt (obj p / N P1 P2 PP)
  138.   (setq        pp (vlax-curve-getclosestpointto obj (trans p 1 0))
  139.         n  (fix (vlax-curve-getparamatpoint obj pp))
  140.   )
  141.   (setq p1 (vlax-curve-getPointAtParam obj n))
  142.   (setq p2 (vlax-curve-getPointAtParam obj (1+ n)))
  143.   (if (< (distance pp p1) (distance pp p2))
  144.     p1
  145.     p2
  146.   )
  147. )
  148. ;;164.20 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×Ó¶Îparam(Ë÷Òý)  By ×Ô¹±»ÆÃ÷Èå
  149. ;;ʾÀý(HH:PickSegIndex (car(setq en(entsel))) (cadr en))
  150. (defun HH:PickSegIndex (obj p / PP)
  151.   (setq pp (vlax-curve-getclosestpointto obj (trans p 1 0)))
  152.   (fix (vlax-curve-getparamatpoint obj pp))
  153. )
  154. ;;164.21 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×Ó¶ÎµÄÆðµã×ø±ê  By ×Ô¹±»ÆÃ÷Èå
  155. ;;ʾÀý(HH:PickSegStratPt (car(setq en(entsel))) (cadr en))
  156. (defun HH:PickSegStratPt (obj p / pp n)
  157.   (setq        pp (vlax-curve-getclosestpointto obj (trans p 1 0))
  158.         n  (fix (vlax-curve-getparamatpoint obj pp))
  159.   )
  160.   (vlax-curve-getPointAtParam obj n)
  161. )
  162. ;;164.22 [¹¦ÄÜ] ¶à¶ÎÏßËùµã»÷×ӶεÄÖÕµã×ø±ê By ×Ô¹±»ÆÃ÷Èå
  163. ;;ʾÀý(HH:PickSegEndPt (car(setq en(entsel))) (cadr en))
  164. (defun HH:PickSegEndPt (obj p / pp n)
  165.   (setq        pp (vlax-curve-getclosestpointto obj (trans p 1 0))
  166.         n  (fix (vlax-curve-getparamatpoint obj pp))
  167.   )
  168.   (vlax-curve-getPointAtParam obj (1+ n))
  169. )
  170. ;;164.23 [¹¦ÄÜ] ¶à¶ÎÏßËù»÷µãÀëÆðµã½ü By ×Ô¹±»ÆÃ÷Èå
  171. ;;ʾÀý(HH:PickToStart (car(setq en(entsel))) (cadr en))
  172. (defun HH:PickToStart (curve p / L1 L2 PP)
  173.   (setq pp (vlax-curve-getclosestpointto curve (trans p 1 0)))
  174.   (setq L2 (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve)))
  175.   (setq L1 (vlax-curve-getDistAtPoint curve pp))
  176.   (> (- L2 L1) L1)
  177. )
  178. ;;164.24 [¹¦ÄÜ] ¶à¶ÎÏßËù»÷×Ó¶ÎÊÇ·ñÊÇÖ±Ïß(·µ»ØnilÊÇ»¡) By ×Ô¹±»ÆÃ÷Èå
  179. ;;ʾÀý(HH:PickArc (car(setq en(entsel))) (cadr en))
  180. (defun HH:PickArc (curve p / PP)
  181.   (setq pp (vlax-curve-getclosestpointto curve (trans p 1 0)))
  182.   (setq        pp (vlax-curve-getSecondDeriv
  183.              curve
  184.              (fix (vlax-curve-getparamatpoint curve pp))
  185.            )
  186.   )
  187.   (equal pp '(0.0 0.0 0.0))
  188. )

  189. ;;164.25 [¹¦ÄÜ] Çó¶à¶ÎÏßÉϵĻ¡¶Î(Ô²»òÔ²»¡Ò²ÓÐЧ)µÄÔ²ÐÄ by caoyin
  190. ;;(HH:GetCenter1 (entsel "\nÑ¡Ôñ¶à¶ÎÏß»¡¶Î: "))
  191. (defun HH:GetCenter1 (EP / E P)
  192.   (mapcar 'set '(E P) EP)
  193.   (setq P (apply 'vlax-curve-getClosestPointTo EP))
  194.   (mapcar '+
  195.           P
  196.           (vlax-curve-getsecondderiv
  197.             E
  198.             (vlax-curve-getParamAtPoint E P)
  199.           )
  200.   )
  201. )
  202. ;;164.26 [¹¦ÄÜ] Çó¶à¶ÎÏßÉϵĻ¡¶Î(Ô²»òÔ²»¡Ò²ÓÐЧ)µÄÔ²ÐÄ
  203. ;;(HH:GetCenter2 (car(setq en(entsel))) (cadr en))
  204. (defun HH:GetCenter2 (curve p / PP)
  205.   (setq pp (vlax-curve-getclosestpointto curve (trans p 1 0)))
  206.   (mapcar '+
  207.           pp
  208.           (vlax-curve-getsecondderiv
  209.             curve
  210.             (vlax-curve-getParamAtPoint curve pp)
  211.           )
  212.   )
  213. )

  214. ;;164.27 [¹¦ÄÜ] Åж϶à¶ÎÏßÊÇ·ñÓÐÔ²»¡(͹¶È/=0)µÄ×Ó¶Î
  215. ;;(HH:checkarc1 (car (entsel)))
  216. (defun HH:checkarc1 (en / BU N OBJ PLIST)
  217.   (setq obj (vlax-ename->vla-object en))
  218.   (setq plist (vlax-safearray->list (vlax-variant-value (vla-get-coordinates obj))))
  219.   (setq n 0)
  220.   (repeat (/ (length plist) 2)
  221.     (if        (/= (vla-getbulge obj n) 0)
  222.       (setq bu T)
  223.     )
  224.     (setq n (+ n 1))
  225.   )
  226.   bu
  227. )
  228. ;;164.28 [¹¦ÄÜ] Åж϶à¶ÎÏßÊÇ·ñÓÐÔ²»¡(͹¶È/=0)µÄ×Ó¶Î
  229. ;;(HH:checkarc2 (car (entsel)))
  230. (defun HH:checkarc2 (en / G)
  231.   (setq G (vl-remove-if-not '(lambda (x) (= (car x) 42)) (entget en)))
  232.   (not (vl-every 'zerop (mapcar 'cdr G)))                    ;(vl-remove 0.0 (mapcar 'cdr G))
  233. )

  234. ;;164.29 [¹¦ÄÜ] Á¬½ÓÏß¡¢»¡³É¶à¶ÎÏß
  235. ;;(HH:JionToPolyline)
  236. (defun HH:JionToPolyline (/ PET SS)
  237.   (setq pet (getvar "PEDITACCEPT"))
  238.   (setvar "PEDITACCEPT" 1)
  239.   (while (setq ss (ssget '((0 . "ARC,*LINE"))))
  240.     (command "_.pedit" (ssname ss 0) "j" ss "" "")
  241.   )
  242.   (setvar "PEDITACCEPT" pet)
  243.   (princ)
  244. )

  245. ;;164.30 [¹¦ÄÜ] ¹¹Ôì¾ØÐÎ by highflybird
  246. (defun Make-Rectange (pt1 pt2)
  247.   (entmake
  248.     (list
  249.       '(0 . "LWPOLYLINE")                                    ;Çá¶à¶ÎÏß
  250.       '(100 . "AcDbEntity")
  251.       '(100 . "AcDbPolyline")
  252.       '(90 . 4)                                                    ;Ëĸö¶¥µã
  253.       '(70 . 1)                                                    ;±ÕºÏ
  254.       (cons 38 (caddr pt1))                                    ;¸ß³Ì
  255.       (cons 10 (list (car pt1) (cadr pt1)))                    ;×óϽÇ
  256.       (cons 10 (list (car pt2) (cadr pt1)))                    ;ÓÒϽÇ
  257.       (cons 10 (list (car pt2) (cadr pt2)))                    ;ÓÒÉϽÇ
  258.       (cons 10 (list (car pt1) (cadr pt2)))                    ;×óÉϽÇ
  259.       (cons 210 '(0 0 1))                                    ;·¨Ïß·½Ïò
  260.     )
  261.   )
  262. )

  263. ;;164.31 [¹¦ÄÜ] µã±íÉú³É¶à¶ÎÏß
  264. (defun Make-LWPOLYLINE (lst / PT)
  265.   (entmake (append (list '(0 . "LWPOLYLINE")
  266.                          '(100 . "AcDbEntity")
  267.                          '(100 . "AcDbPolyline")
  268.                          (cons 90 (length lst))
  269.                    )
  270.                    (mapcar '(lambda (pt) (cons 10 pt)) lst)
  271.            )
  272.   )
  273. )

  274. ;;164.32 [¹¦ÄÜ] ¶à¶ÎÏß·´Ïò(Æðµã·´³ÉÖÕµã) byzml84
  275. ;;(HH:LWPOLYLINEFX (car (entsel)))
  276. (defun HH:LWPOLYLINEFX (EN / A B C D ENT LST LST1 TMP)
  277.   (setq ENT (entget EN))
  278.   (setq tmp ent)
  279.   (while (setq tmp (member (assoc 10 tmp) tmp))
  280.     (setq a   (assoc 10 tmp)
  281.           b   (cons 40 (cdr (assoc 41 tmp)))
  282.           c   (cons 41 (cdr (assoc 40 tmp)))
  283.           d   (cons 42 (- (cdr (assoc 42 tmp))))
  284.           LST (append (list b c d a) LST)
  285.     )
  286.     (setq tmp (cddddr tmp))
  287.   )
  288.   (repeat 3 (setq LST (append (cdr lst) (list (car lst)))))
  289.   (setq lst1 (reverse (cdr (member (assoc 10 ent) (reverse ent)))))
  290.   (entmod (append lst1 lst '((210 0 0 1))))
  291. )
;;164.33 [¹¦ÄÜ] ¶à¶ÎÏßɾ³ý¶¥µã By ×Ô¹±»ÆÃ÷Èå
(defun HH:delLwpolyPt (/ EN ENT L1 L2 P P1 P2 P90 SS X Y)
  (setq p1 (getpoint))
  (setq p2 (getcorner p1))
  (if (setq ss (ssget "C" p1 p2 '((0 . "LWPOLYLINE"))))
    (progn
      (setq en (ssname ss 0))
      (setq ENT (entget EN))
      (if (> (setq P90 (cdr (assoc 90 ent))) 2)
        (progn
          (setq p (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) p1 p2))
          (setq p (vlax-curve-getclosestpointto en (trans p 1 0)))
          (setq p1 (HH:PickClosePt en p))
          (setq p1 (list 10 (car p1) (cadr p1)))
          (setq L2 (cddddr (member p1 ent)))                    ;ºó¶Î
          (setq L1 (reverse (cdr (member p1 (reverse ent))))) ;ǰ¶Î
          (setq ent (append L1 L2))
          (entmod (subst (cons 90 (1- P90)) (assoc 90 ent) ent))
        )
      )
    )
  )
)
;;ʾÀý(HH:delLwpolyPt1 (car(setq en(entsel))) (cadr en)) By ×Ô¹±»ÆÃ÷Èå
(defun HH:delLwpolyPt1 (en p / ENT L1 L2 P1)
  (setq ENT (entget en))
  (setq p (vlax-curve-getclosestpointto en (trans p 1 0)))
  (setq p1 (HH:PickClosePt en p))                            ;Àëp×î½üµÄ¶¥µã
  (setq p1 (list 10 (car p1) (cadr p1)))
  (setq L2 (cdr (member p1 ent)))                            ;ºó¶Î
  (setq L1 (reverse (cdr (member p1 (reverse ent)))))            ;ǰ¶Î
  (entmod (append L1 L2))
)
;;164.34 [¹¦ÄÜ] ¶à¶ÎÏßÔö¼Ó¶¥µã By ×Ô¹±»ÆÃ÷Èå
;;ʾÀý(HH:LwAddVertex (car(setq en(entsel))) (cadr en))
(defun HH:LwAddVertex (en pt / EN GR N PP)
  ;;Ôö¼ÓÒ»¸ö¶¥µã
  (defun LwAddVertex (obj index pt bugle sw ew)
    (vlax-invoke obj 'addvertex index pt)
    (vla-setbulge obj index bugle)
    (vla-setwidth obj index sw ew)
  )
  (setq pp (vlax-curve-getClosestPointTo en (trans pt 1 0)))
  (setq n (fix (vlax-curve-getParamAtPoint en pp)))
  (setq obj (vlax-ename->vla-object en))
  (vla-GetWidth obj n 'sw 'ew)
  (setq pp (getpoint "\n ÐÂÔöµã "))
  (setq pp (mapcar '+ '(0 0) pp))
  (vl-catch-all-apply 'LwAddVertex (list obj (1+ n) pp 0 sw sw))
)

;;164.35 [¹¦ÄÜ] ¶à¶ÎÏßÐ޸Ķ¥µã By ×Ô¹±»ÆÃ÷Èå
;;ʾÀý(HH:ModifyVertex (car(setq en(entsel))) (cadr en) (getpoint))
(defun HH:ModifyVertex (en pt newPt / ENT L1 L2 NPT P P10)
  (setq p (HH:PickClosePt en pt))
  (setq p10 (list 10 (car p) (cadr p)))
  (setq ent (entget en))
  (setq L2 (cdr (member p10 ent)))
  (setq L1 (reverse (cdr (member p10 (reverse ent)))))
  (setq Npt (list (list 10 (car newPt) (cadr newPt))))
  (entmod (append L1 Npt L2))
)
;;(HH:ModifyVertex1 (car(setq en(entsel))) (cadr en)) By ×Ô¹±»ÆÃ÷Èå
(defun HH:ModifyVertex1        (en p / ENT GR L1 L2 NPT P10)
  (setq ent (entget en))
  (setq pt (HH:PickClosePt en p))
  (setq p10 (list 10 (car pt) (cadr pt)))
  (setq L2 (cdr (member p10 ent)))
  (setq L1 (reverse (cdr (member p10 (reverse ent)))))
  (while (and (setq gr (grread 5)) (= (car gr) 5))
    (setq Npt (list (list 10 (car (cadr gr)) (cadr (cadr gr)))))
    (entmod (append L1 Npt L2))
  )
)

;;164.36 [¹¦ÄÜ] ¶à¶ÎÏß¿½±´×Ó¶Î By ×Ô¹±»ÆÃ÷Èå
;;(HH:CopyLwSeg (car(setq en(entsel))) (cadr en))
(defun HH:CopyLwSeg (en p / ENT L0 L1 L2 LASTENT N P1 PP TEM)
  (setq pp (vlax-curve-getClosestPointTo en p))
  (setq n (fix (vlax-curve-getParamAtPoint en pp)))
  (setq p1 (vlax-curve-getPointAtParam en n))
  (setq p1 (list 10 (car p1) (cadr p1)))
  (setq ent (entget en))
  (setq tem (member p1 ent))
  (repeat 8 (setq L0 (cons (car tem) L0)) (setq tem (cdr tem)))
  (setq L0 (reverse L0))
  (setq L2 (list (last tem)))
  (setq        L1 (list
             '(0 . "LWPOLYLINE")
             '(100 . "AcDbEntity")
             '(100 . "AcDbPolyline")
             '(90 . 2)
           )
  )
  (entmake (append L1 l0 L2))
  (setq Lastent (entlast))
  (command "_.move" Lastent "" pp pause)
)

;;164.37 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶Î By ×Ô¹±»ÆÃ÷Èå
;;ʾÀý(HH:ModifySeg (car(setq en(entsel))) (cadr en))
(defun HH:ModifySeg (en p / ENT GR I L1 L2 N P1 P2 P42 PP X Y)
  ;;133.1 [¹¦ÄÜ] Ðýתһ¸öµã(¼û113)
  ;;Rotate 'pnt'µã from a base point of 'p1' and through an angle of 'ang' (in radians)
  (defun MJ:rotate_pnt (pnt p1 ang)
    (polar p1 (+ (angle p1 pnt) ang) (distance p1 pnt))
  )
  ;;Á½µãÖ®Öеã
  (defun mid (p1 p2 / X Y)
    (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) p1 p2)
  )
  ;;ÒÑÖªÈýµãp1 p2 p£¬Çó×éÂë42
  (defun my42 (p1 p2 pt / CEN D H P1P2 P1T P2P1 PT1 R)
    (setq d (/ (distance p1 p2) 2.0))
    (setq p1p2 (mid p1 p2))
    (setq p2p1 (MJ:rotate_pnt p1 p1p2 (/ pi 2)))
    (setq pt1 (mid p1 pt))
    (setq p1t (MJ:rotate_pnt p1 pt1 (/ pi 2)))
    (setq cen (inters p1p2 p2p1 pt1 p1t nil))
    (setq h (car (trans (mapcar '- cen p1) 0 (mapcar '- p1 p2))))
    (setq r (distance cen p1))
    (if        (MINUSP h)
      (setq r (+ r h))
      (setq r (- h r))
    )
    (/ r d)
  )

  (setq pp (vlax-curve-getClosestPointTo en p))
  (setq n (fix (vlax-curve-getParamAtPoint en pp)))
  (setq p1 (vlax-curve-getPointAtParam en n))
  (setq p2 (vlax-curve-getPointAtParam en (1+ n)))
  (setq ent (entget en))
  (setq i 0)
  (while (or (/= (caar ent) 42)
             (if (< i n)
               (setq i (1+ i))
             )
         )
    (setq L1  (cons (car ent) L1)
          ent (cdr ent)
    )
  )
  (setq L1 (REVERSE L1))
  (setq L2 (cdr ent))
  (while (and (setq gr (grread 5)) (= (car gr) 5))
    (setq p42 (cons 42 (my42 p1 p2 (cadr gr))))
    (entmod (append L1 (list p42) L2))
  )
  (princ)
)

;;164.38 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶ÎΪֱÏß By ×Ô¹±»ÆÃ÷Èå
;;(HH:ModifySegLine (car(setq en(entsel))) (cadr en))
(defun HH:ModifySegLine        (en p / ENT I L1 L2 N P1 P2 PP)
  (setq pp (vlax-curve-getClosestPointTo en p))
  (setq n (fix (vlax-curve-getParamAtPoint en pp)))
  (setq p1 (vlax-curve-getPointAtParam en n))
  (setq p2 (vlax-curve-getPointAtParam en (1+ n)))
  (setq ent (entget en))
  (setq i 0)
  (while (or (/= (caar ent) 42)
             (if (< i n)
               (setq i (1+ i))
             )
         )
    (setq L1  (cons (car ent) L1)
          ent (cdr ent)
    )
  )
  (setq L1 (REVERSE L1))
  (setq L2 (cdr ent))
  (entmod (append L1 (list (cons 42 0)) L2))
  (princ)
)

;;164.39.1 [¹¦ÄÜ] µãÔÚ·â±Õ¶à±ßÐÎÄÚ·µ»ØT;ÏßÉÏ0;Íânil
;;¸Ä±à×Ô ¿ñµ¶µÄ³ÌÐò(Ó¦¸Ã¼ò½à¶øÍêÃÀ)  By ×Ô¹±»ÆÃ÷Èå
;;(PtInorOut1 (car (entsel)) (getpoint))
(defun PtInorOut1 (en pt / P1 P2 PP PT PTS)
  (setq pp (vlax-curve-getClosestPointTo en pt))
  (if (equal pp pt 0.00001)
    0
    (progn
      (setq pts (HH:PtLists en))
      (setq pts        (MAPCAR        '(LAMBDA (p1 p2) (REM (- (ANGLE pt p1) (ANGLE pt p2)) PI))
                        (CONS (LAST pts) pts)
                        pts
                )
      )
      (equal (ABS (APPLY '+ pts)) PI)
    )
  )
)

;;164.39.2 [¹¦ÄÜ] µãÔÚ·â±Õ¶à±ßÐÎÄÚ·µ»ØT£¬ÆäÓànil  By SmcTools
;;(PtInorOut2 (car(entsel))(getpoint))
(defun PtInorOut2 (en pt / I N PT_LIST VA VA_COUNT)
  (setq pt_list (HH:PtLists en))
  (setq        i         0
        va_count 0
        n         (length pt_list)
        pt_list         (append pt_list (list (car pt_list)))
  )
  (repeat n
    (setq va (-        (angle pt (nth i pt_list))
                (angle pt (nth (1+ i) pt_list))
             )
    )
    (cond ((> va pi) (setq va (- va pi)))
          ((< va (* -1 pi)) (setq va (+ va pi)))
    )
    (setq va_count (+ va_count va)
          i           (1+ i)
    )
  )
  (equal (abs va_count) pi)
)

;;164.40 [¹¦ÄÜ] ÅжϵãÔÚ·â±ÕÇúÏßÄÚÍ⣬×Ô½»ÇúÏß²»ÊÊÓà By Gu_xl 2012.07.31
;;·µ»Ø: µãÔÚ·â±ÕÇúÏßÄÚ·µ»ØT;ÏßÉÏ0;Íânil
;;²âÊÔ: (gxl-PtInCurveP  (car(entsel "\nÑ¡ÔñÇúÏß:")) (getpoint))
(defun gxl-PtInCurveP (POLY    PT      /       CP      LW      MINP    MAXP    MINX
                       MINY    MAXX    MAXY    X       Y       LST     CLOCKWISEP
                       ENDPARAM               CURVELENGTH     PARAM   DIST    D1      D2
                       DEV
                      )
  (cond
    ((equal pt (vlax-curve-getclosestpointto poly pt) 1e-8) 0) ;_ µãÔÚÇúÏßÉÏ T
    ((progn
       (vla-GetBoundingBox
         (setq lw (vlax-ename->vla-object POLY))
         'MinP
         'MaxP
       )
       (setq MinP (vlax-safearray->list MinP))
       (setq MaxP (vlax-safearray->list MaxP))
       (setq minx (car MinP)
             miny (cadr MinP)
             maxx (car MaxP)
             maxy (cadr MaxP)
             x          (car pt)
             y          (cadr pt)
       )
       (or (< x minx)
           (> x maxx)
           (< y miny)
           (> y maxy)
       )
     )
     NIL ;_ µãÔÚÇúÏß×îС°üΧºÐÍâ nil
    )
    (t
     (setq
       lst (mapcar
             (function
               (lambda (x)
                 (vlax-curve-getParamAtPoint
                   lw
                   (vlax-curve-getClosestPointTo lw x)
                 )
               )
             )
             (list minp
                   (list minx maxy)
                   MaxP
                   (list maxx miny)
             )
           )
     ) ;_ ×îС°üΧºÐµãÔÚÇúÏßÉϵÄͶӰµãµÄ²ÎÊý±í
     (setq ClockwiseP
            (if        (or
                  (<= (car lst) (cadr lst) (caddr lst) (cadddr lst))
                  (<= (cadr lst) (caddr lst) (cadddr lst) (car lst))
                  (<= (caddr lst) (cadddr lst) (car lst) (cadr lst))
                  (<= (cadddr lst) (car lst) (cadr lst) (caddr lst))
                ) ;_  or
              t
            ) ;_  if
     ) ;_ ÅжÏÇúÏßÊÇ·ñΪ˳ʱÕ룬˳ʱÕë = T
     (setq endparam    (vlax-curve-getendparam poly)
           curvelength (vlax-curve-getDistAtParam poly endparam) ;_ ÇúÏß³¤¶È
     )
     (setq param (vlax-curve-getparamatpoint poly cp)
           dist         (vlax-curve-getDistAtParam poly param)
     )
     (if (equal param (fix param) 1e-8)
       (progn
         (setq d1 (- dist 1e-8))
         (if (minusp d1)
           (setq d1 (+ curvelength d1))
         )
         (setq d2 (+ dist 1e-8))
         (if (> d2 curvelength)
           (setq d2 (- d2 curvelength))
         )
         (if (<        (distance pt (vlax-curve-getpointatdist poly d1))
                (distance pt (vlax-curve-getpointatdist poly d2))
             )
           (setq param (vlax-curve-getparamatdist poly d1))
           (setq param (vlax-curve-getparamatdist poly d2))
         )
       )
     )
     (setq dev (vlax-curve-getFirstDeriv poly param)
           cp  (vlax-curve-getpointatparam poly param)
     )
     (=        ClockwiseP
        (
         (lambda (p1 p2 p3)
           (<
             (* (- (car p2) (car p1)) (- (cadr p3) (cadr p1)))
             (* (- (cadr p2) (cadr p1)) (- (car p3) (car p1)))
           )
         )
          pt
          cp
          (mapcar '+ cp dev)
        )
     )
    )
  )
)

;;164.41.1 [¹¦ÄÜ] µãÔÚ·â±ÕÇúÏßÄÚ·µ»ØT;ÏßÉÏ0;Íânil
;;·â±ÕÇúÏß±ØÐëÈ«¿É¼û,»¹ÊÇcaoyinµÄÄǸö³ÌÐòºÃ  By ×Ô¹±»ÆÃ÷Èå
;;(PtInorOut (car(entsel))(getpoint))
(defun PtInorOut (en p / AREA AREA1 EN1 PP)
  (setq pp (vlax-curve-getclosestpointto en (trans p 1 0)))
  (if (equal pp p 0.00001)
    0
    (progn
      (setq area (vlax-get (vlax-ename->vla-object en) 'area))
      (command "_.offset" "" en p "");ÓÃ(vla-offset obj 0.00001)±È½Ï¾àÀë
      (setq area1 (vlax-get (vlax-ename->vla-object en1) 'area))
      (entdel en1)
      (> area1 area)
    )
  )
)

;;164.41.2 [¹¦ÄÜ] µãÔÚ·â±Õ¶à¶ÎÏßÄÚ·µ»ØT;ÏßÉÏ0;Íânil
;;·â±ÕÇúÏß±ØÐëÈ«¿É¼û
;;(PtInorOut3 (car(entsel))(getpoint))
(defun PtInorOut3 (en p / EN1 PP SS)  
  (setq pp (vlax-curve-getclosestpointto en (trans p 1 0)))
  (if (equal pp p 0.00001)
    0
    (progn
      (entmake (list '(0 . "POINT") (cons 10 p)))
      (setq en1 (entlast))
      (if (and (setq ss (ssget "wp" (HH:PtLists en)))
               (ssmemb en1 ss)
          )
        (setq ss T)
      )
      (entdel en1)
      ss
    )
  )
)

;;164.42 [¹¦ÄÜ] ¶à¶ÎÏß»¡¶ÎÈ«¸ÄΪֱÏß¶Î By ×Ô¹±»ÆÃ÷Èå
;;(HH:ModifySegLine1 (car(setq en(entsel))))
(defun HH:ModifySegLine1 (en / X)
  (entmod
    (mapcar '(lambda (x)
               (if (equal (car x) 42)
                 (cons 42 0)
                 x
               )
             )
            (entget en)
    )
  )
)

;;¶à¶ÎÏß×ÔÏཻ by st788796
(defun rrr (e / getlst ep obj pts ptl pams il)
  (defun Getlst (n / i il)
    (setq i (fix n))
    (repeat i (setq il (cons (setq n (1- n)) il)))
    il
  )
  (setq obj (vlax-ename->vla-object e)
ep  (vlax-curve-getendparam e)
  )
  (if (setq pts (vlax-invoke obj 'IntersectWith obj 0))
    (progn
      (while pts
(setq ptl (cons (list (car pts) (cadr pts) (caddr pts)) ptl)
       pts (cdddr pts)
)
      )
      (setq il  (cdr (getlst ep))
     pams (mapcar '(lambda (x)
       (vlax-curve-getparamatpoint e x)
     )
    ptl
   )
      )
      (if (vlax-curve-isclosed e)
(not (equal (reverse pams)
      (cons 1. (cons 0. (cdr il)))
      )
)
(not (equal (vl-remove '0. (reverse pams)) il)) ;_¼Ù±ÕºÏÇé¿ö
      )
    )
  )
)

±¾Ìû×ÓÖаüº¬¸ü¶à×ÊÔ´

ÄúÐèÒª µÇ¼ ²Å¿ÉÒÔÏÂÔØ»ò²é¿´£¬Ã»ÓÐÕ˺ţ¿×¢²á

x

µãÆÀ

ɾ³ý¶à¶ÎÏßÖØ¸´µãÄÇÓÐÓдíÎ󣬱ÈÈçÆðʼµãÖØºÏ£¬»ò¹²Óõ㣬¾Í»á³ö´í  ·¢±íÓÚ 2018-1-5 16:29
Kye
[em80] ±íÑïÒ»¸ö  ·¢±íÓÚ 2014-3-25 10:49

ÆÀ·Ö

²ÎÓëÈËÊý 4Ã÷¾­±Ò +4 ½ðÇ® +30 ÊÕÆð ÀíÓÉ
Ŭ.Á¦ + 1 ÔÞÒ»¸ö!
434939575 + 1 + 10 ºÜ¸øÁ¦!
ÕÅºÍÆ½ + 1 ºÜ¸øÁ¦!
bzhjl + 1 + 20 ÔÞÒ»¸ö!

²é¿´È«²¿ÆÀ·Ö

"¾õµÃºÃ£¬¾Í´òÉÍ"
»¹Ã»ÓÐÈË´òÉÍ£¬Ö§³ÖÒ»ÏÂ

±¾Ìû±»ÒÔÏÂÌÔר¼­ÍƼö:

·¢±íÓÚ 2013-10-31 14:12:13 | ÏÔʾȫ²¿Â¥²ã
»Æ¹¤ÔÙ¿´¿´ÎÒÄÇ 11 Â¥£¬ÕâÊÇÎÒÕÒµÄÓë¶àÏßÏà¹ØµÄ³ÌÐò£¬²»³É¾´Òâ

;;;****************************************************
;;; No.23-4 ·µ»Ø¶à¶ÎÏß(*POLYLINE)µÄËùÓж¥µã×ø±ê º¯Êý
;;;****************************************************
(defun ayGetPLineVTX (EntName1 / Obj1 vtx vtxlst PtsList i)
(cond
   ((= (cdr (assoc 0 (entget EntName1))) "LWPOLYLINE")
   (setq PtsList (ayGetLWPolyLineVTX EntName1))
   );end_switch
   ((= (cdr (assoc 0 (entget EntName1))) "OLYLINE")
   (setq PtsList (ayGetPolyLineVTX EntName1))
   );end_switch
);end_cond
(setq PtsList PtsList)
);end_defun

;;;-----------------------------------------------
;;; No.23-4-1 »ñÈ¡ LWPOLYLINE ¶ÔÏóËùÓж¥µã×ø±ê   
;;;-----------------------------------------------
(defun ayGetLWPolyLineVTX (EntName1 / Obj1 vtx vtxlst PtsList i)
(vl-load-com)
(setq Obj1 (vlax-ename->vla-object EntName1))
(setq vtx (vla-get-Coordinates Obj1))
(setq vtxLst (vlax-safearray->list (vlax-variant-value vtx)))
(setq i 0)
(setq PtsList nil)
(repeat (/ (length vtxLst) 2)
   (setq PtsList (append PtsList (list (list (nth i vtxLst) (nth (1+ i) vtxLst)))))
   (setq i (+ i 2))
);end_repeat
(setq PtsList PtsList)
);end_defun

;;;---------------------------------------------
;;; No.23-4-2 »ñÈ¡ POLYLINE ¶ÔÏóËùÓж¥µã×ø±ê   
;;;---------------------------------------------
(Defun ayGetPolyLineVTX (LwPolyEntName / entData1 entName1 pel ptp wpl wpll plp par ct
                          pen rl pn clk pt al gx bj np xc gg rr cp retList)
(setq entName1 LwPolyEntName)
(setq retList nil)
(setq entData1 (entget entName1))
(if (= "OLYLINE" (Cdr (Assoc 0 entData1)))
   (progn
    (setq pel entData1             ;È¡³ö¶ÔÏó±í.
         ptp (Cdr (Assoc 70 pel)) ;È¡³ö½áÊøÆ¬¶ÎÐÍ.
         wpl '()                  ;×Ô½¨µÄµãλÊý±í.
       wpll '()
       entName1 (EntNext entName1)
       pen entName1
    );end_setq
    (While (/= "SEQEND" (Cdr (Assoc 0 (entget pen))));Èç¹ûÃ»Êø.
     (setq pel (entget pen)               ;È¡µÃ¶¥µã¶ÔÏóÊý¾Ý±í.
           plp (Cdr (Assoc 10 pel))       ;È¡³ö¿ØÖƵãµãλ.
           par (Cdr (Assoc 42 pel))       ;È¡³ö¹­ÏÒ±È.
           wpl (Cons (List plp par) wpl) ;½«Êý¾Ý¼Óµ½WPL±íÖÐ.
        wpll (cons plp wpll)
     );end_setq
     (setq pen (EntNext pen));ËÑË÷ÏÂÒ»¸ö¶ÔÏó.
    );end_while
    (setq wpll (Reverse wpll))

    ;ÒÔÏ´úÂëÔÝʱûÓÐÓã¡
    (setq ct (If (= 0 (Cadr (Car wpl))) "Ö±Ï߯¬¶Î·â±Õ" "»¡Æ¬¶Î·â±Õ"))
    (setq wpl (Cons (Last wpl) wpl);¼ÓÈë·â±Õµã.
        wpl (Reverse wpl)        ;ÕûÀíWPL±í.
         rl (Length wpl)
         pn 0
    );end_setq
    (setq clk (If (Or (= 0 ptp) (= 128 ptp)) "¿ª¿Ú" "·â±Õ"))
    (Repeat (1- rl)          ;Öðµã·ÖÎö.
     (setq al (Nth pn wpl) ;È¡³öµãÊý¾Ý±í.
           pt (Car al)      ;È¡³öµãλ.
     );end_setq
     (If (And (/= 0.0 (Cadr al)) (Nth pn wpl)) ;Èç¹ûÊǶÏ.
       (Progn (setq gx (Cadr al)               ;È¡³ö¹­±È.
                    bj (* (ATAN (ABS gx)) 4)   ;¼ÆËã°ü½Ç.
                    np (Car (Nth (1+ pn) wpl)) ;È¡³öÏÂÒ»µãλ.
                    xc (* 0.5 (Distance pt np));°ëÏÒ³¤¼ÆËã.
                    gg (* gx xc)               ;¹­¸ß¼ÆËã.
                    rr (/ (+ (* xc xc)(* gg gg)) (* 2 gg))
               );end_setq
               (setq cp (Polar pt (setq pa (Angle pt np)) xc)
                     cp (Polar cp (+ pa (* 0.5 PI)) (- rr gg))
               );end_setq
       );end_progn
     );end_if
      (setq pn (1+ pn))
    );end_repeat
   
    (setq retList wpll)
   );end_progn
);end_if
);end_defun


;;;88888888888888888888888888
;;;
;;;ÒÔϹ¦ÄܲâÊÔÓëÉϲ¿Ïàͬµ«ºÜ¼òµ¥°¡
;;;
;;;88888888888888888888888888

;;;http://hi.baidu.com/123523058/item/7d995410b5506afa9c778ac4
;;;================================
;;;¹¦ÄÜ£º»ñÈ¡¶à¶ÎÏß¶¥µãÁбí(δ¿¼ÂDZպÏ)
(defun PLINE-GETPTLST (EN / LST ENT N)
    (setq LST '()
   ENT (entget EN)
    )
    (foreach N ENT
(if (= (car N) 10)
     (setq LST (cons (cdr N) LST))
)
    )
    ;;·µ»Ø
    (reverse LST)
)
;;;================================

(setq ss (ssget))
(setq i 0)
(sslength ss)
(setq ssn (ssname ss i))
(PLINE-GETPTLST SSN)


((2668.14 381.333) (2812.11 555.782) (2849.35 452.435) (2814.6 366.451) (2754.22 306.074))
((2668.14 381.333) (2812.11 555.782) (2849.35 452.435) (2814.6 366.451) (2754.22 306.074))

;;;88888888888888888888888888888888888



·µ»Ø¶à¶ÎÏߵĸ÷¶¥µã
(vertexs SSN)

   ËµÃ÷:
·µ»Ø¶à¶ÎÏߵĸ÷¶¥µã

   º¯ÊýÄÚÈÝ:
(defun vertexs (ename / plist pp n)        
   (setq obj (vlax-ename->vla-object ename))
   (setq plist (vlax-safearray->list
   (vlax-variant-value
     (vla-get-coordinates obj))))
   (setq n 0)
   (repeat (/ (length plist) 2)
     (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))
     (setq n (+ n 2))
   )
   pp
)

   ²ÎÊý:
ename:ͼԪÃû

   ·µ»ØÖµ:
¸÷¶¥µãÐγɵÄÁбí

;;;88888888888888888888888888888888888




;;-----------------------------------------------------------------------------------------------------------

;;¹¦ÄÜ·µ»Ø¶à¶ÎÏ߸÷¸ö¶¥µã×ø±ê×é³ÉµÄ±í

;; ename¡ªÍ¼ÔªÃû (hj_ddx_pt SSN)

(defun hj_ddx_pt (ename / plist pp n)   

   (setq obj (vlax-ename->vla-object ename))

   (setq plist (vlax-safearray->list (vlax-variant-value (vla-get-coordinates obj))))

   (setq n 0)

   (repeat (/ (length plist) 2)

     (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))

     (setq n (+ n 2))

   )

   pp

)

;;-----------------------------------------------------------------------------------------------------------


;;;88888888888888888888888888888

coordsofsegbypick ·µ»Ø¶àÒåÏßËùµã»÷×ӶεĶ˵ã×ø±ê

   Óï·¨:
(coordsofsegbypick ename p)

   ËµÃ÷:
·µ»Ø¶àÒåÏßËùµã»÷×ӶεĶ˵ã×ø±ê

   º¯ÊýÄÚÈÝ:
(defun coordsofsegbypick (ename p)
   (setq obj (vlax-ename->vla-object ename)
         pp (vlax-curve-getclosestpointto obj (trans p 1 0))
           n (fix (vlax-curve-getparamatpoint obj pp)))
   (segcoord obj n)
)

   ²ÎÊý:
ename:ͼԪÃû
p:µã

   ·µ»ØÖµ:
×ø±êÁбí
;;;88888888888888888888888888888
;;-----------------------------------------------------------------------------------------------------------



;;;88888888888888888888888888888
numbersofseg ·µ»Ø¶à¶ÎÏß×ӶεÄÊýÁ¿




   Óï·¨:

(numbersofseg SSN);ÔÚ´Ë·µ»Ø¶ÎÊý

   ËµÃ÷:

·µ»Ø¶à¶ÎÏß×ӶεÄÊýÁ¿

   º¯ÊýÄÚÈÝ:

(defun numbersofseg (ename)  

   (setq obj (vlax-ename->vla-object ename))

   (setq plist (vlax-safearray->list

   (vlax-variant-value

     (vla-get-coordinates obj))))

   (1- (/ (length plist) 2))

)

   ²ÎÊý:

ename:ͼԪÃû

   ·µ»ØÖµ:

×Ó¶ÎÊýÁ¿µÄÕûÊý


;;;88888888888888888888888888888




;;¹¦ÄÜ·µ»Ø¶à¶ÎÏßµÚn¸ö¶¥µã×ø±ê

;; ename¡ªÍ¼ÔªÃû

;; n¡ª¶¥µãÐòºÅ

(hj_ddx_n_pt SSN 3)

(defun hj_ddx_n_pt (ename n)

   (setq obj (vlax-ename->vla-object ename))

   (setq plist (vlax-safearray->list (vlax-variant-value (vla-get-coordinates obj))))

   (list (nth (* n 2) plist)(nth (1+ (* n 2)) plist))
)
;;-----------------------------------------------------------------------------------------------------------


;;-----------------------------------------------------------------------------------------------------------
;;;·µ»Ø¶à¶ÎÏßµÚn×ӶεÄÁ½¸ö¶Ëµã×ø±êº¯Êý

;; LwPolyEntName ¡ªÍ¼ÔªÃû
(hj_LwPoly_n_pt SSN 3)

(defun hj_LwPoly_n_pt(LwPolyEntName n / Obj Ptlist sPt ePt)

(setq obj (vlax-ename->vla-object LwPolyEntName))

(setq sPt (vlax-safearray->list (vlax-variant-value (vla-get-coordinate obj (- n 1)))))

(setq ePt (vlax-safearray->list (vlax-variant-value (vla-get-coordinate obj n))))

(setq Ptlist (list sPt ePt))

);end_defun
;;-----------------------------------------------------------------------------------------------------------

;;;8888888888888888888888888888888

coodsofsegbynum ·µ»Ø¶à¶ÎÏßµÚn×ӶεĶ˵ã×ø±ê


Óï·¨:
(coodsofsegbynum obj n)
   ËµÃ÷:

·µ»Ø¶à¶ÎÏßµÚn×ӶεĶ˵ã×ø±ê
   º¯ÊýÄÚÈÝ:

(defun coodsofsegbynum (obj n)  
   (vlax-safearray->list
               (vlax-variant-value
                 (vla-get-coordinate obj 2)))
)
   ²ÎÊý:

obj:ͼԪÃû
n:´ú±í×Ó¶ÎλÖõÄÕûÊý
   ·µ»ØÖµ:

×ø±êÁбí

;;;8888888888888888888888888888888


ÅжϵãÔÚ¶à±ßÐεÄλÖÃÖ®ÍêÈ«°æ



;ÅжϵãÔÚ¶à±ßÐεÄλÖÃ:ÄÚ¡¢Íâ¡¢ÏßÉÏ
;·µ»ØÖµ:ÄÚ:1¡¢Íâ:-1¡¢ÏßÉÏ:0
;;·½·¨1----ÉäÏß·¨;
;;µãÊÇ·ñÔÚ¶à±ßÐÎÄÚ
;;µã P ÊÇ·ñÔÚ¶à±ßÐÎ PM ÄÚ
;;If 'p' is in 'pm', return T.
;;'mx' is a very long distance.
(defun isInorOut (p pm / i p1 p2 tf tf1 tf2 px jp ret)
   (setq     px (list (+ 1e+100 (car p)) (cadr p))
    p1 (last pm)
    i -1
  )


   (while (and (not ret)
           (setq p2 (nth (setq i (1+ i)) pm))
     )
     (if     (setq jp (inters px p p1 p2))
       (if (equal (car jp) (car p) 0.0001)
     (setq ret t)
         (setq tf2 (if (> (cadr p1) (cadr p2)) 1 0)
          tf (if (= tf1 tf2) tf (not tf))
          tf1 tf2
        )
       )
       (setq tf1 nil)
     )
     (setq p1 p2)
   )

   (cond
    (ret 0)                ;ÏßÉÏ
    (tf 1)                 ;ÄÚ
    (t -1)                 ;Íâ
  )
)


;;·½·¨2---½Ç¶È·¨
;;µãÊÇ·ñÔÚ¶à±ßÐÎÄÚ   
(defun ptinpm (pt lst / i p1 p2 an anl ret)
   (setq i -1 p1 (last lst))
   (while (and (not ret)
           (setq p2 (nth (setq i (1+ i)) lst))
     )
     (cond
      ((equal p2 pt 1e-4) (setq ret t))
       (t
        (setq an (- (angle pt p1) (angle pt p2)))
         (if (equal pi (abs an) 1e-4)
       (setq ret t)
       (setq anl (cons (rem an PI) anl))
     )
       )
     )
     (setq p1 p2)
   )
   (cond
    (ret 0)                ;ÏßÉÏ;
     (t
      (if (equal PI (abs (apply '+ anl)) 1e-4)
         1                  ;ÄÚ;
         -1                 ;Íâ;
       )
     )
   )
)
   

;²âÊÔ

(DEFUN C:tt (/ Curve Pt lst a b c)
   (IF (SETQ Curve (CAR (ENTSEL "\nÑ¡ÔñÒ»ÌõÇúÏß:")))(progn
       (setq lst (MAPCAR (FUNCTION CDR)
                     (VL-REMOVE-IF (FUNCTION (LAMBDA (x) (/= 10 (CAR x)))) (entget Curve))
                 )
       )
     (WHILE (SETQ Pt (GETPOINT "\nµãÈ¡²âÊÔµã:"))
       (setq pt (list (car pt) (cadr pt))
         c 1
       )

       (setq a (ptinpm Pt lst))
       (princ "\nxd-point_inm:")    (princ (cond ((= 0 a) "ÏßÉÏ")
                                 ((= 1 a) "ÄÚ")
                                 (t "Íâ")))
      
       (setq a (xd-point_inm Pt lst))
       (princ "\nptinpm:") (princ (cond ((= 0 a) "ÏßÉÏ")
                                 ((= 1 a) "ÄÚ")
                                 (t "Íâ")))
      
     )
   ))
   (PRINC)
)



ÂÛ̳ÉϵÄÏà¹ØÅжϺ¯Êýδ°üº¬ÅжϵãÊÇ·ñÔÚ¶à±ßÐÎÏßÉÏ
¸Ãº¯ÊýͬʱÅжϵãÔÚ¶à±ßÐÎÏßµÄλÖÃÈýÖÖ¿ÉÄÜ£º
1. µãÔÚÄÚ²¿£»
2. µãÔÚÍⲿ£»
3. µãÔÚÏßÉÏ¡£



;;;8888888888888888888888888888888
·¢±íÓÚ 2017-9-19 08:46:07 | ÏÔʾȫ²¿Â¥²ã
hehoubin ·¢±íÓÚ 2013-11-1 21:47
ÇóÕ⼸¸ö »Æ´óÏÀÄܲ»ÄÜÌù³öÀ´Ñ½;;164.31 [¹¦ÄÜ] µã±íÉú³É¶à¶ÎÏß
;;164.32 [¹¦ÄÜ] ¶à¶ÎÏß·´Ïò(Æðµã·´³ÉÖÕµã ...

ÄÜ·ñʵÏÖÁ½ÌõµãÊý²»Í¬µÄ¶à¶ÎÏ߼䯽¾ù²åÈëNÌõ¶à¶ÎÏß
 Â¥Ö÷| ·¢±íÓÚ 2022-12-24 19:56:44 À´×ÔÊÖ»ú | ÏÔʾȫ²¿Â¥²ã
²¿·ÖÓßÈ«²¿ ·¢±íÓÚ 2014-11-6 23:14
ÎÊÏ»ÆÀÏʦ£¬Ê×βÏàÁ¬µÄ¶à¶ÎÏßÈçºÎ±ÕºÏ³É·â±ÕµÄ¶à¶ÎÏß

ÃüÁîpe£¿      
 Â¥Ö÷| ·¢±íÓÚ 2013-10-31 09:01:07 | ÏÔʾȫ²¿Â¥²ã
ռλ:ʾÀýʾÀýʾÀý
·¢±íÓÚ 2013-10-31 09:13:26 | ÏÔʾȫ²¿Â¥²ã
²»È«°¡£¬ÀÏ»Æ

µãÆÀ

²»ÊÇÑÐÌÖÂð£¬ÓÐЩÎÒ»¹ÔÚÕÒÄØ£¬ÄãÕÒµ½Á˾ÍÌùÉÏÀ´°É  ·¢±íÓÚ 2013-10-31 09:20
·¢±íÓÚ 2013-10-31 12:43:37 | ÏÔʾȫ²¿Â¥²ã
 Â¥Ö÷| ·¢±íÓÚ 2013-10-31 14:25:13 | ÏÔʾȫ²¿Â¥²ã
ynhh ·¢±íÓÚ 2013-10-31 14:12
»Æ¹¤ÔÙ¿´¿´ÎÒÄÇ 11 Â¥£¬ÕâÊÇÎÒÕÒµÄÓë¶àÏßÏà¹ØµÄ³ÌÐò£¬²»³É¾´Òâ

;;;***************************** ...

(defun isInorOut
ºÃÏóÊÇcaoyinµÄ£¬Ã»ÓÐÓÃÉäÏß·¨°É£¿¡°ÉäÏß¡±ÊÇÄã¼ÓµÄ£¿
·¢±íÓÚ 2013-10-31 14:58:55 | ÏÔʾȫ²¿Â¥²ã
ºÃÏóÊÇcaoyinµÄ£¬Ã»ÓÐÓÃÉäÏß·¨°É£¿¡°ÉäÏß¡±ÊÇÄã¼ÓµÄ£¿
ÄãÕâ¶ÔЩ³ÌÐòµÄ³ö´¦¶¼ÖªµÀÊÇÄǸöдµÄ°¡
¸Ð¾õһЩ³É¹¦µÄ³ÌÐò£¬¶¼»ìÔÓ×ŶàλÅóÓѵIJŻª
ÕâЩ³ÌÐòÒ²ÊÇ´ÓÍøÉÏÕҵ쬲»ÊÇÎÒ¼ÓµÄ
Äã¿´ÉϾͲâÊÔÊÕÄɰ¡
·¢±íÓÚ 2013-11-1 21:40:49 | ÏÔʾȫ²¿Â¥²ã
ѧϰ ÁË¡£  »Æ´óÏÀ£¬
·¢±íÓÚ 2013-11-1 21:47:14 | ÏÔʾȫ²¿Â¥²ã
ÇóÕ⼸¸ö »Æ´óÏÀÄܲ»ÄÜÌù³öÀ´Ñ½;;164.31 [¹¦ÄÜ] µã±íÉú³É¶à¶ÎÏß
;;164.32 [¹¦ÄÜ] ¶à¶ÎÏß·´Ïò(Æðµã·´³ÉÖÕµã) byzml84
;;164.33 [¹¦ÄÜ] ¶à¶ÎÏßɾ³ý¶¥µã
;;164.34 [¹¦ÄÜ] ¶à¶ÎÏßÔö¼Ó¶¥µã
;;164.35 [¹¦ÄÜ] ¶à¶ÎÏßÐ޸Ķ¥µã
;;164.36 [¹¦ÄÜ] ¶à¶ÎÏß¿½±´×Ó¶Î
;;164.37 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶Î
;;164.38 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶ÎΪֱÏß
·¢±íÓÚ 2013-11-1 22:02:18 | ÏÔʾȫ²¿Â¥²ã
;;164.30 [¹¦ÄÜ] ¹¹Ôì¾ØÐÎ by highflybird
;;164.31 [¹¦ÄÜ] µã±íÉú³É¶à¶ÎÏß
;;164.32 [¹¦ÄÜ] ¶à¶ÎÏß·´Ïò(Æðµã·´³ÉÖÕµã) byzml84
;;164.33 [¹¦ÄÜ] ¶à¶ÎÏßɾ³ý¶¥µã
;;164.34 [¹¦ÄÜ] ¶à¶ÎÏßÔö¼Ó¶¥µã
;;164.35 [¹¦ÄÜ] ¶à¶ÎÏßÐ޸Ķ¥µã

ÇóÕ⼸¸ö£¬ÄÜ·ñÌù³öÀ´Ñ½
;;164.36 [¹¦ÄÜ] ¶à¶ÎÏß¿½±´×Ó¶Î
;;164.37 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶Î
;;164.38 [¹¦ÄÜ] Ð޸Ķà¶ÎÏß×Ó¶ÎΪֱÏß

µãÆÀ

ÕýÔÚ½øÐУ¬ÓÐЩ»¹Ã»ÓиãºÃ  ·¢±íÓÚ 2013-11-2 11:59
ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ×¢²á

±¾°æ»ý·Ö¹æÔò

СºÚÎÝ|ÊÖ»ú°æ|CADÂÛ̳|CAD½Ì³Ì|CADÏÂÔØ|ÁªÏµÎÒÃÇ|¹ØÓÚÃ÷¾­|Ã÷¾­Í¨µÀ ( ÔÁICP±¸05003914ºÅ )  
©2000-2023 Ã÷¾­Í¨µÀ °æÈ¨ËùÓÐ ±¾Õ¾´úÂ룬ÔÚδȡµÃ±¾Õ¾¼°×÷ÕßÊÚȨµÄÇé¿öÏ£¬²»µÃÓÃÓÚÉÌÒµÓÃ;

GMT+8, 2025-5-14 10:11 , Processed in 0.256353 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí