Ã÷¾­CADÉçÇø

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

QQ怬

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

ËÑË÷
²é¿´: 24758|»Ø¸´: 42

[¡¾¸ß·ÉÄñ¡¿] ¡¾Ô½·ÉÔ½¸ß½²ÌÃ10¡¿·ÖÖΡ¢µÝ¹é¡¢·ÖÀàºÍ×îС¾àÀë(¸üÐÂÖÁ2012.7£©

  [¸´ÖÆÁ´½Ó]
·¢±íÓÚ 2006-11-25 13:34:00 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
2012.7.16 ³ÌÐò¸üÐÂÔÚ16Â¥¡£
=============================ÎÒÊÇ·Ö¸îÏß=============================
¸ø¶¨Æ½ÃæÉϵÄÒ»¸öÊýÁ¿ÎªnµÄµã¼¯£¬ÈçºÎÄÜÓÐЧµØÕÒ³ö¾àÀë×î½üµÄµã¶ÔÄØ£¿£¨ÔÚʵ¼ÊÖÐÓÐ×ÅÓ¦Ó㬶øÇÒ¸ø³öµÄÊǵã¶ÔµÄ¼¯ºÏ£¬Ò²¾ÍÊÇÔÚÎó²î·¶Î§ÄÚµÄËùÓеã¶Ô¶¼ÕÒ³öÀ´£©¡£
    Õâ¸öÎÊÌâºÜÈÝÒ×Àí½â£¬ËƺõÒ²²»Äѽâ¾ö¡£ÎÒÃÇÖ»Òª½«Ã¿Ò»µãÓëÆäËûn-1¸öµãµÄ¾àÀëËã³ö£¬ÕÒ³ö´ïµ½×îС¾àÀëµÄÁ½¸öµã¼´¿É¡£È»¶ø£¬ÕâÑù×öЧÂÊÌ«µÍ£¬ÐèÒªO(n^2)µÄ¼ÆËãʱ¼ä¡£µ±ÊýÁ¿¹æÄ£½ÏСʱ£¬ÉÐÄܽâ¾ö£¬µ«Ò»µ©¹æÄ£´ïµ½Íò¼¶ÒÔÉÏ£¬ÆäËÙ¶ÈÖ®Âý£¬Ê±¼äÖ®³¤£¬ÎÞ·¨ÁîÈËÈÌÊÜ¡£ÏÂÃæÎÒ¸ø³öÕâ¸öÎÊÌâµÄÒ»¸ö¦È(nlogn)Ëã·¨¡£
ÔÚÕâ¸öËã·¨ÖУ¬ÎÒÀûÓÃÁ˵ݹ顢·ÖÖκͷÖÀà˼Ïë¡£
µÝ¹éËã·¨ÊÇ×ÔÉíµ÷ÓÃ×ÔÉíº¯ÊýµÄÒ»ÖÖËã·¨£¬ÀýÈçÇó½×³Ë£º
(defun jc(n) (if (= n 0) 1 (* n (jc (1- n)))))
·ÖÖÎËã·¨ÊǶÔÓÚÒ»¸ö¹æÄ£ÎªnµÄÎÊÌ⣬°ÑËü·Ö½â³ÉΪK¸ö¹æÄ£½ÏСµÄ×ÓÎÊÌ⣬ÕâЩ×ÓÎÊÌ⻥Ïà¶ÀÁ¢£¬ÇҽṹÓëÔ­À´ÎÊÌâµÄ½á¹¹Ïàͬ¡£ÔÚ½âÕâЩ×ÓÎÊÌâʱ£¬ÓÖ¶ÔÓÚÿһ¸ö×ÓÎÊÌâ½øÐнøÒ»²½µÄ·Ö½â£¬Ö±µ½Ä³¸öãÐֵΪֹ¡£µÝ¹éµØ½â¾öÕâЩ×ÓÎÊÌ⣬ÔٰѸ÷¸ö×ÓÎÊÌâµÄ½âºÏ²¢ÆðÀ´£¬¾ÍµÃµ½Ô­À´ÎÊÌâµÄ½â¡£Òò´ËµÝ¹éÒ»°ãºÍ·ÖÖÎÁªÏµÔÚÒ»Æð¡£
¶ÔÓÚÇó×îС¾àÀëµÄ½â£¬ÎҲο¼ÁËһЩ×ÊÁÏ£¬ËûÃǸø³öµÄ´ó¶àÊÇC++ ³ÌÐò£¬ÎÒ¿´²»¶®£¬Ö»ºÃ°´ÕÕËã·¨ºÍ˼ÏëÀ´Éè¼Ælisp³ÌÐò¡£
Ïл°ÉÙ˵£¬ÏÈ¿´Ô´³ÌÐò:¼ÓÔØ³ÌÐò£¬ÔËÐÐTE

  1. (defun C:te (/ olderr en errmsg oldmode oce sl ss t0 ptlist pp pp1)
  2.   ;;¶¨Òå´íÎóº¯ÊýºÍÔ¤´¦Àí
  3.   (setvar "errno" 0)
  4.   (setq olderr *error*)
  5.   (defun *error* (msg)
  6.     (setq en (getvar "errno"))
  7.     (setq errmsg (strcat "errno=" (itoa en) "\nError:" msg))
  8.     (alert errmsg)
  9.     (setq *error* olderr)
  10.   )
  11.   (graphscr)
  12.   (setq oldmode (getvar "osmode"))
  13.   (setq oce (getvar "cmdecho"))
  14.   (setvar "cmdecho" 0)
  15.   (command ".ucs" "W")
  16.   ;;Ò²¿ÉÒÔÓÃÆäËû·½Ê½È¡µÃµã¼¯
  17.   (setq sl '((0 . "POINT")))
  18.   (setq t0 (getvar "TDUSRTIMER"))
  19.   (setq ss (ssget sl))
  20.   (setq ptlist (getpt ss))
  21.   ;;·ÖÀà
  22.   (setq t0 (getvar "TDUSRTIMER"))
  23.   (setq ptlist (sortx ptlist))
  24.   (princ "\nº¯ÊýÅÅÐòÓÃʱ")
  25.   (princ (* (- (getvar "TDUSRTIMER") t0) 86400))
  26.   (princ "Ãë")
  27.   ;;º¯ÊýÓÃʱ¹ÀË㣬ÒÔÁ˽⺯ÊýÐÔÄÜ
  28.   (setq t0 (getvar "TDUSRTIMER"))
  29.   (setq pp1 (f2 ptlist) pp (cadr pp1))
  30.   (princ "\nº¯Êý²éÕÒÓÃʱ")
  31.   (princ (* (- (getvar "TDUSRTIMER") t0) 86400))
  32.   (princ "Ãë")
  33.   (if (= nil pp)
  34.     (progn
  35.       (alert "²»´æÔÚÓÐ×îС¾àÀëµÄÒ»¶Ôµã!")
  36.       (command ".ucs" "p")
  37.       (setvar "osmode" oldmode)
  38.       (setvar "cmdecho" oce)
  39.       (princ)
  40.     )
  41.     (progn
  42.       ;;»­×î¶Ì¾àÀëµÄµã¶Ô¼¯µÄÁ¬Ïߣ¬¿ÉÄÜÓжàÌõ
  43.       (setvar "osmode" 0)
  44.       (foreach nn pp
  45.         (entmake
  46.    (append
  47.      '((0 . "line")(100 . "AcDbEntity")(100 . "AcDbLine"))
  48.      (list (cons 10 (car  nn)))
  49.      (list (cons 11 (cadr nn)))
  50.      (list (cons 62 1))
  51.    )
  52.         )
  53.       )
  54.       (command ".ucs" "P")
  55.       (setvar "osmode" oldmode)
  56.       (setvar "cmdecho" oce)
  57.       (princ)
  58.     )
  59.   )
  60. )
  61. ;;È¡µãº¯Êý£¬ÆäÖÐiΪµãµÄ±àºÅ
  62. (defun getpt (ss / i listpp a b c)
  63.   (setq i 0 listpp nil )
  64.   (if ss
  65.     (repeat (sslength ss)
  66.       (setq a (ssname ss i))
  67.       (setq b (entget a))
  68.       (setq c (cdr (assoc 10 b)))
  69.       (setq listpp (cons c listpp))
  70.       (setq i (1+ i))  
  71.     )
  72.   )
  73.   (reverse listpp)
  74. )
  75. ;;´ÓJµ½KµÄ±í
  76. (defun cut (ptlist j k / i ptlist1)
  77.   (setq i 0 ptlist1 nil)
  78.   (foreach n ptlist
  79.     (if (and (>= i j) (<= i k) )
  80.       (setq ptlist1 (cons n ptlist1))
  81.     )
  82.     (setq i (1+ i))
  83.   )
  84.   (reverse ptlist1)
  85. )
  86. ;;¶ÔXÅÅÐò
  87. (defun sortX (ptlist)
  88.   (mapcar '(lambda (x) (nth x ptlist))
  89.     (vl-sort-i ptlist '(lambda (e1 e2) (< (car e1)(car e2))))
  90.   )
  91. )
  92. ;;ÔÚ´øÐÎÇøÓò²éÕÒ
  93. (defun searchX (ptlist1 x1 x2 / pp)
  94.   (setq pp nil)
  95.   (foreach n ptlist1
  96.     (if (and (>= (car n) x1)
  97.       (<= (car n) x2)
  98. )
  99.       (setq pp (cons n pp))
  100.     )
  101.   )
  102.   (reverse pp)
  103. )
  104. ;;ÔÚ¾ØÐÎÇøÓò²éÕÒ
  105. (defun searchXY (ptlist2 x1 x2 y1 y2 / pp)
  106.   (setq pp nil)
  107.   (foreach n ptlist2
  108.     (if (and (>= (car  n) x1)
  109.       (<= (car  n) x2)
  110.       (>= (cadr n) y1)
  111.       (<= (cadr n) y2)
  112. )
  113.       (setq pp (cons n pp))
  114.     )
  115.   )
  116.   (reverse pp)
  117. )
  118. ;;×î¶à6µã×îС¾àÀë
  119. (defun 6ptmin (ptlist4 pt / 6pmin 6plist)
  120.   (setq 6pmin (mapcar '(lambda (x) (distance x pt)) ptlist4))
  121.   (setq 6pmin (apply 'min 6pmin) 6plist nil)
  122.   (foreach 6name ptlist4
  123.     (if (equal (distance 6name pt) 6pmin 1e-8)
  124.       (setq 6plist (cons (list pt 6name) 6plist))
  125.     )  
  126.   )
  127.   (list (+ 6pmin 1e-8) 6plist)         
  128. )
  129. ;;***************
  130. ;;³ÌÐòÖ÷¶Î-------
  131. (defun f2 (ptlist / l p1 p2 p3 dd 3pmind 3plist ptlist1 ptlist2 ptlist3 ptlist4  
  132.           n m midpt mind1 mind2 mindt a b c d Dismin Dnmin nplist mindi)
  133.   (setq l (length ptlist))
  134.   (cond
  135.     ( (= l 2);;Á½µã»¹ÓÃ˵   
  136.       (list (+ (distance (car ptlist) (cadr ptlist)) 1e-8)
  137.      (list ptlist)
  138.       )
  139.       ;;(list (apply 'distance ptlist) (list ptlist))
  140.     )
  141.     ( (= l 3);;Èýµã×îС¾àÀëÖ±½ÓÇó½âµã¶Ô
  142.       (progn
  143. (setq p1 (car ptlist) p2 (cadr ptlist) p3 (caddr ptlist))
  144. (setq dd
  145.           (list (list (distance p1 p2) (list p1 p2))
  146.   (list (distance p1 p3) (list p1 p3))
  147.   (list (distance p2 p3) (list p2 p3))
  148.    )
  149. )
  150. (setq 3pmind (apply 'min (mapcar 'car dd)))
  151. (setq 3plist nil)
  152. (foreach 3name dd
  153.    (if (equal (car 3name) 3pmind 1e-8)
  154.      (setq 3plist (cons (cadr 3name) 3plist))
  155.    )
  156. )
  157.         (list (+ 3pmind 1e-8) 3plist)
  158.       )
  159.     )
  160.     ( (> l 3)
  161.       (progn
  162. (setq n (/ l 2) m (- l n));;·ÖÖÎ
  163. (setq ptlist1 (cut ptlist 0 (1- m)))
  164. (setq ptlist2 (cut ptlist m l))
  165. (setq midpt (last ptlist1))
  166. (setq mind1 (f2 ptlist1));;µÝ¹é×ó±ß
  167. (setq mind2 (f2 ptlist2));;µÝ¹éÓÒ±ß
  168. (setq mindT
  169.    (cond
  170.      ((equal (car mind1) (car mind2) 1e-8)(list (car mind1) (append (cadr mind1) (cadr mind2))))
  171.      ((< (car mind1) (car mind2)) mind1)
  172.      (t mind2)
  173.    )
  174. )
  175. (setq mindi (car mindT))
  176. (setq a (- (car midpt) mindi) b (car midpt))
  177. (setq ptlist3 (searchX ptlist1 a b))
  178. (if (/= ptlist3 nil)
  179.    (progn
  180.      (setq Dismin nil)
  181.             (foreach name ptlist3
  182.        (setq a (car midpt) b (+ (car midpt) mindi) c (- (cadr name) mindi) d (+ (cadr name) mindi))
  183.        (setq ptlist4 (searchXY ptlist2 a b c d))
  184.        (if (/= ptlist4 nil)
  185.                 (setq Dismin (cons (6ptmin ptlist4 name) Dismin))
  186.        )
  187.      )
  188.      (if (= Dismin nil)
  189.        mindT
  190.        (progn
  191.          (setq Dnmin (apply 'min (mapcar 'car Dismin)) nplist nil)
  192.   (foreach npname Dismin
  193.     (if (equal (car npname) Dnmin 1e-8)
  194.       (setq nplist (append (cadr npname) nplist))
  195.     )
  196.   )
  197.          (cond
  198.     ((equal (car mindT) Dnmin 1e-8) (list mindi (append nplist (cadr mindT))))
  199.     ((< (car mindT) Dnmin) mindT)  
  200.            (t (list Dnmin nplist))
  201.          );;for inest cond
  202.        );;for inest if-progn
  203.      );;for inest if
  204.    )mindT;;for if-progn
  205. );;for if
  206.       );;for cond-last-progn
  207.     );;for cond-last
  208.   );;for cond
  209. );;for defun
  210. ;;***************
±È½ÏÁËһЩ±ðÈËдµÄ´úÂ룬£¨´ó¶¼ÊÇÆ½·½¼¶±ðµÄ£¬ÓеÄÉõÖÁ¸ü¸ß£©£¬·¢ÏÖÔÚʱ¼äÉÏ»¹ÊÇ±ÈÆ½·½¼¶ÒÔÉϵÄÒª¿ìºÜ¶à¡£µ«ÊÇ»¹Ã»ÓÐ×ö×îÓÅ´¦Àí£¬Ï£Íû´ó¼Ò¶à¶àÌáÒâ¼û¸øÎÒ¡£

highflybird@sina.com      
2006-11-25,kunming


ÒÔÏÂͼƬ¸ø³öÁËÒ»¸ö¼«¶ËÀý×Ó£º

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

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

x

ÆÀ·Ö

²ÎÓëÈËÊý 2ÍþÍû +1 Ã÷¾­±Ò +1 ½ðÇ® +10 ¹±Ï× +5 ¼¤Çé +5 ÊÕÆð ÀíÓÉ
muwind + 1
mccad + 1 + 10 + 5 + 5 ¡¾¾«»ª¡¿ºÃ³ÌÐò

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

"¾õµÃºÃ£¬¾Í´òÉÍ"
    ¹²1ÈË´òÉÍ

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

 Â¥Ö÷| ·¢±íÓÚ 2012-7-17 09:46:31 | ÏÔʾȫ²¿Â¥²ã


ÏÖÔÚ¸üÐÂÁ˳ÌÐò¡£±ÈÒÔǰµÄ¿ìÁËÊ®±¶¡£
ͬʱ¸½ÉϹúÍâµÄÒ»¸öºÃ·½·¨¡£
ÃüÁîÊÇ:test.

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

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

x
 Â¥Ö÷| ·¢±íÓÚ 2006-11-25 15:16:00 | ÏÔʾȫ²¿Â¥²ã

Õâ¸öÌâµÄËã·¨²½ÖèÈçÏ£º

1¡¢Ê×ÏȰѵ㼯°´ÕÕX´ÓСµ½´ó·ÖÀ࣬

2¡¢ÏÈÇóÁ½µãºÍÈýµãµÄ×îС¾àÀëµã¶Ô¡£

3¡¢¶ÔÓÚ´óÓÚÈýµãÒÔÉϵÄN¸öµã£¬×öÈçÏ¿¼ÂÇ£º

 a,°Ñµã°´ÕÕÖÐλÊý·Ö¿ª¡££¨ÀýÈ磬19¸öµã£¬Ôò×ó±ß10¸ö£¬ÓÒ±ß9¸ö£¬18¸ö¶Ô·Ö£©

 b,¶ÔÁ½±ß·Ö±ðÓõݹ鷽·¨Çó½â¡£ µÃµ½Á½¸ö×îСµÄ¾àÀëd1ºÍd2

c ,±È½Ïd1»òÕßd2´óС£¬È¡×îСµÄΪdmin

d ,ÉèÖÃÖÐλµãX×ø±êΪxmid £¬¶ÔÓÚÂäÔÚ (xmid-dmin,xmid) ÇøÓòÉϵĵã(xscan, yscan) ½øÐÐɨÃèXÂäÔÚ£¨dmin,xmid+dmin£©YÂäÔÚ( yscan-dmin,yscan+xdmin) Óұߵĵã(ÀíÂÛÖ¤Ã÷×î¶àÓÐ6¸öÕâÑùµÄµã)£¬·Ö±ðÇó×ó±ßɨÃèµÄµã¸úÓÒ±ßÇøÓòµÄµãµÄ¾àÀ룬ÕÒµ½¾àÀëµÄ×îС£¬È»ºó´Ó×îСµÄºÏ¼¯ÖÐÕÒµ½×îС midarea-min,°ÑÕâ¸öÖµ¸údmin×ö±È½Ï£¬ÕâÑù¾Í¿ÉÒԵóö×îСµÄ¾àÀëÒÔ¼°ËüÃǵĵã¶Ô¡£

Èç¹û²»Ã÷°×µÄ»°£¬¿ÉÒԲο¼Ò»Ð©Êé¼®ºÍÍøÉϵÄ×ÊÁÏ¡£

µãÆÀ

Â¥Ö÷дµÄºÃ£¬½è¥дÏÂ×Ô¼ºµÄÀí½â  ·¢±íÓÚ 2014-6-21 16:43
ËùÒÔÈκÎÌâÄ¿¶¼ÓпÉÄÜʹÓ÷Öұ˼·À´Ìá¸ßЧÂÊ£¬µ«²¢·ÇÒ»¶¨£¬³ý·ÇÄãÔÚ½«ÎÊÌâ¹æÄ£ËõСµÄͬʱ»¹ÄÜÕÒµ½Ê¹ÄãÌá³öµÄ·½·¨¾ßÓÐÍ걸ÐÔµÄ;¾¶¡£  ·¢±íÓÚ 2014-6-21 16:37
3.±È½Ï1.2µÄËùÓнá¹û£¬´ð°¸¾ÍÔÚÆäÖС£ ʣϵľÍÊÇʹÓÃÎÒÃǵıà³Ì¼¼ÇÉÀ´ÊµÏÖÉÏÃæµÄ¹ý³Ì²¢Çó³ö½á¹û.µÝ¹é»ò·ÇµÝ¹éÈÎÄãÑ¡Ôñ£¬Èç¹ûÄãϰ¹ßÓÃÓÃÊýѧ¹«Ê½È¥ÃèÊö½â¾öµÄ·½·¨£¬ÄǾÍʹÓõݹé±à³Ì£¬»á¼òÁ·Ðí¶à¡£  ·¢±íÓÚ 2014-6-21 16:36
1.¶ÔÆ½Ãæµã¼¯°´x»òy×ø±ê·Ö´ø£¬·Ö´ø¹æÄ£ÓÐÄã¾ö¶¨£¬¶Ô¸÷·Ö´øÔËÓÃO(n^2)Ëã·¨£¬Çó³öËùÓпÉÄܵÄ×î½üµã¶Ô. 2.·Ö±ð¶Ôµã¼¯µÄ·Ö½çÏßÁ½²àÒ»¶¨·¶Î§µÄµãÇó³öËùÓпÉÄܵÄ×î½üµã¶Ô{×¢Òâµã¶ÔµÄÁ½µã±ØÈ»·Ö²¼ÔÚ·Ö½çÏßµÄÁ½²à}.  ·¢±íÓÚ 2014-6-21 16:35
µ«Èç¹û½«n·Ö³ÉһС´éһС´é£¬¶Ôÿ´é·Ö±ðʹÓÃO(n^2)Ëã·¨£¬½á¹û²¢²»Í걸£¬ÒòΪ×î½üµã¶Ô¿ÉÄÜ·Ö²¼ÔÚÆäÖеÄһС´éÖУ¬Ò²¿ÉÄܵã¶ÔµÄÁ½¸öµã·Ö²¼ÔÚ²»Í¬µÄС´éÖÐ. Òò´ËÏëµ½ÕâÀï¸ÃÎÊÌâµÄ·ÖÒ±½â·¨¾ÍÐγÉÁË.  ·¢±íÓÚ 2014-6-21 16:34
¼òµ¥µØËµ£¬Æ½Ãæµã¼¯Çó½â×î½üµã¶Ô¾ßÓвÉÓ÷Öұ˼·½â¾öµÄ¿ÉÄÜ£º O(n^2)¼ÆËãʱ¼äµÄËã·¨ÊÇÇó½âÆ½Ãæ»òÈýάµã¼¯×î½üµã¶ÔµÄ»ù´¡Ëã·¨£¬¸ÃËã·¨ÊÇÍ걸µÄ£¬µ«µ±n¼«´óʱ£¬Ð§ÂʱäµÃÄÑÒÔ½ÓÊÜ.  ·¢±íÓÚ 2014-6-21 16:33
·¢±íÓÚ ×òÌì 14:05 | ÏÔʾȫ²¿Â¥²ã
highflybir ·¢±íÓÚ 2012-7-17 09:46
ÏÖÔÚ¸üÐÂÁ˳ÌÐò¡£±ÈÒÔǰµÄ¿ìÁËÊ®±¶¡£
ͬʱ¸½ÉϹúÍâµÄÒ»¸öºÃ·½·¨¡£
ÃüÁîÊÇ:test.

·ÉÄñ´óʦ£¬ÎÒ×î½üҲдÁËÒ»¸öµã¼¯ÄÚ×î½üÁ½µãµÄº¯Êý£¬Ð§ÂÊ»¹Òª¸ü¸ßһЩ£»È±ÏÝÊÇÑ­»·ÓÃÁËssgetº¯Êý£»Äú¿´¿´
;;    =============================================
;;    |          µã¼¯ÖоàÀë×î½üµÄÁ½µã            |
;;    =============================================
;;˵Ã÷:µã¼¯ÖоàÀë×î½üÁ½µã-->>(¾àÀë (p1 p2))
;;²ÎÊý:ptn: (fx-ssget-10pt-ptn (ssget '((0 . "point"))))
;;²ÎÊý:mode: t µã¼¯À´×ÔµãÑ¡Ôñ¼¯  nilÆäËûͼԪ´¦ÀíµÃµ½µÄµã¼¯
;;·µ»Ø: (fx-ptn-minNear2pt (fx-ssget-10pt-ptn (ssget '((0 . "point")))) t)
(defun fx-ptn-minNear2pt (ptn mode / a d d1 dis1 fx_list_divide fx-nearinptn fx-ssget-10pt-ptn i l l1 l1a l2 l2a l3 la lay lb lst lst1 lst2 lst3 lst4 n n1 n2 n3 nn obj p1 p19 p3 p9 s0 ssa x xn xyp-pt2xy xyp-sselentnext y yn)        
        (defun fx-ssget-10pt-ptn (ss / i l a b c)
                (setq i 0)
                (if ss
                        (repeat (sslength ss)
                                (setq a (ssname ss i))
                                (setq i (1+ i))
                                (setq b (entget a))
                                (setq c (cdr (assoc 10 b)))
                                (setq l (cons c l))
                        )
                )
                (reverse l)
        )
        (defun fx_list_divide ( lst len /  tlst nlst )
                (repeat (fix (/ (length lst) len))
                        (setq tlst nil)
                        (repeat len
                                (setq
                                        tlst (cons (car lst) tlst)
                                        lst (cdr lst)
                                )
                        )
                        (setq nlst (cons (reverse tlst) nlst))
                )
                (if lst (setq nlst (cons lst nlst)))
                (reverse nlst)
        )
        (defun xyp-SselEntnext (s0 / ss)
                (if (and s0 (= 'ENAME (type s0)))
                        (progn
                                (setq ss (ssadd))
                                (while (setq s0 (entnext s0))
                                        (setq ss (ssadd s0 ss))
                                )
                                (if (/= (sslength ss) 0)
                                        ss
                                )
                        )
                )
                ss
        )
        (defun fx-NearInPtn (ptn / l1 l2 ll p1 pt ptn1 tmp x)
                (setq
                        l1  (distance (car ptn) (cadr ptn))
                        tmp (list (car ptn) (cadr ptn))
                )
                (while (setq pt (car ptn))
                        (setq ptn (cdr ptn))
                        (if (setq ptn1 (vl-remove-if (function (lambda (x) (>= (distance x pt) l1))) ptn))
                                (progn
                                        (setq ll (mapcar (function (lambda (x) (distance x pt))) ptn1)
                                                ll (vl-sort-i ll '<)
                                                p1 (nth (car ll) ptn1)
                                        )
                                        (if (< (setq l2 (distance pt p1)) l1)
                                                (setq l1  l2
                                                        tmp (list pt p1)
                                                )
                                        )
                                )
                        )
                )
                tmp
        )
        (defun xyp-Pt2XY (pt dx dy)  (mapcar '+ pt (list dx dy)))
        (if (not (tblsearch "layer" "ÁÙʱµã"))
    (command "layer" "n" "ÁÙʱµã" "c" 1 "ÁÙʱµã" "")
  )
        (setq        n (length ptn))
        (setq        p19 (list
                                                        (list
                                                                (apply 'min (mapcar 'car ptn))
                                                                (apply 'min (mapcar 'cadr ptn))
                                                        )
                                                        (list
                                                                (apply 'max (mapcar 'car ptn))
                                                                (apply 'max (mapcar 'cadr ptn))
                                                        )
                                                )               
        )
        (if (= mode t)
                (princ)
                (progn
                        (setq s0 (entlast))
                        (mapcar (function (lambda(x) (entmake (LIST (CONS 0 "POINT")(CONS 10 X) (CONS 8 "ÁÙʱµã"))))) ptn)
                        (setq ssa (xyp-SselEntnext s0))
                )
        )
        (setq                                 
                p1 (car p19)
                p9 (cadr p19)
                p3 (list (car p9) (cadr p1))               
                n1 (fix (/ n 100))
                n1 (if (= 0 n1) 1 n1)
                n3 (/ n n1)
                n2 (if (= n3 (fix n3)) n3 (+ (fix n3) 1))
                dis1 (sqrt (/ (* (distance p1 p3) (distance p3 p9)) n1))
                xn (/ (distance p1 p3) dis1)
                xn (if (= xn (fix xn)) xn (+ (fix xn) 1))
                yn (/ (distance p3 p9) dis1)
          yn (if (= yn (fix yn)) yn (+ (fix yn) 1))        
                l1 '()
                l2 '()
                l3 '()
                i 0
        )        
        (if
                (< n 2000)
                (setq a (fx-NearInPtn ptn))
                (progn
                        (repeat xn
                                (setq i (1+ i))
                                (setq l1 (cons (+ (* i dis1) (car p1)) l1))
                        )
                        (setq l1 (reverse l1))
                        (setq i 0)
                        (repeat yn
                                (setq i (1+ i))
                                (setq l2 (cons (+ (* i dis1) (cadr p1)) l2))
                        )
                        (setq l2 (reverse l2))
                        (setq l1a (cons (car p1) l1))
                        (setq l2a (cons (cadr p1) l2))
                        (setq i -1)
                        (setq lst '())
                        (repeat (length l1a)
                                (setq
                                        i (1+ i)
                                        x (nth i l1a)
                                        n -1
                                )
                                (repeat (length l2a)
                                        (setq
                                                n (1+ n)
                                                y (nth n l2a)
                                                lst (cons (list x y) lst)
                                        )                        
                                )
                        )
                        (setq lst (reverse lst))
                        (setq lst1 (fx_list_divide lst (+ 1 yn)))
                        (setq lst2 (mapcar (function (lambda(x y) (list x y))) lst1 (cdr lst1)))
                        (setq i -1)
                        (setq lst3 '())
                        (repeat (length lst2)
                                (setq
                                        i (1+ i)
                                        l (nth i lst2)
                                        la (car l)
                                        lb (cadr l)
                                        la (vl-remove (last la) la)
                                        lb (cdr lb)
                                        lst3 (reverse (cons (mapcar (function (lambda(x y) (list x y))) la lb) lst3))
                                )
                        )
                        (setq lst3 (reverse lst3))
                        (setq lst3 (apply 'append lst3))           
                        (setq d (* dis1 0.1) d1 (* -1 d))
                        (setq lst3 (mapcar
                                                                         (function (lambda(x)
                                                                                        (list
                                                                                                (xyp-Pt2XY (car x) d1 d1)
                                                                                                (xyp-Pt2XY (cadr x) d d)
                                                                                        )
                                                                                ))
                                                                         lst3
                                                                 )               
                        )
                        (setq lst4 '())
                        (setq lst4 (mapcar
                                                                         (function (lambda(x)
                                                                                        (if ss (setq ss '()))
                                                                                        (setq ss (ssget "c" (car x) (cadr x) '((0 . "POINT"))))
                                                                                        (if (and ss (> (sslength ss) 1))
                                                                                                (fx-NearInPtn (fx-ssget-10pt-ptn ss))
                                                                                        )
                                                                                ))
                                                                         lst3
                                                                 )
                                
                        )
                        (setq lst4 (vl-remove nil lst4))
                        (setq lst4 (vl-sort lst4
                                                                         (function (lambda(x y)
                                                                                        (< (distance (car x) (cadr x)) (distance (car y) (cadr y)))
                                                                                ))
                                                                 )        
                        )
                        (setq a (car lst4))
                )
        )
        (if (and (not mode) ssa (= 'PICKSET (type ssa)))
                (progn
                        (setq nn -1)
                        (repeat (sslength ssa)
                                (setq
                                        nn (1+ nn)
                                        obj (vlax-ename->vla-object (ssname ssa nn))
                                )
                                (if obj (vla-erase obj))
                        )
                )
        )
        (list (distance (car a) (cadr a)) a)
)
·¢±íÓÚ 2006-11-25 13:42:00 | ÏÔʾȫ²¿Â¥²ã
ºÃÌû£¡¶¥µ½µ×¡£
·¢±íÓÚ 2006-11-25 14:44:00 | ÏÔʾȫ²¿Â¥²ã
Ëã·¨¶Ô³ÌÐòÀ´ËµÖÁ¹ØÖØÒª£¬»¹ÇëÂ¥Ö÷¸ø´ó»ï½²Ò»½²Êý¾Ý½á¹¹ºÍËã·¨¡£
·¢±íÓÚ 2009-2-24 22:40:00 | ÏÔʾȫ²¿Â¥²ã
ѧϰing
·¢±íÓÚ 2009-2-26 12:33:00 | ÏÔʾȫ²¿Â¥²ã
¸Ðл°æÖ÷·ÖÏí£¬Ð»Ð»
·¢±íÓÚ 2010-10-11 11:39:00 | ÏÔʾȫ²¿Â¥²ã

лл¥ÉϵķÖÏí£¬²Î¿¼Ï£¬ºÜ¸Ð¼¤

·¢±íÓÚ 2012-4-21 07:18:43 À´×ÔÊÖ»ú | ÏÔʾȫ²¿Â¥²ã
ÎÒÊÔÓÃÏÂÓÐÁ½ÎÊÌ⣬һÊǵãÓпÉÄÜÖØºÏ£¬¶þ·¢ÏÖ²»ÄÜÇóµÃ×îСֵ£¬Õâ¸ö²»ÖªÎªÊ²Ã´
·¢±íÓÚ 2012-5-6 19:07:02 | ÏÔʾȫ²¿Â¥²ã
ºÃ³ÌÐò£¬Ð»Ð»·ÖÏí
·¢±íÓÚ 2012-5-6 19:12:23 | ÏÔʾȫ²¿Â¥²ã
±¾Ìû×îºóÓÉ wowan1314 ÓÚ 2012-5-6 19:15 ±à¼­

NB,ÊÕ²ØÁË£¡ ÓÐʱ¼äÏÂÀ´ºÃºÃѧϰÑо¿.  Ð»Ð»Â¥Ö÷·ÖÏí¡£
ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ×¢²á

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

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

GMT+8, 2025-7-27 04:37 , Processed in 0.185021 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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