乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: pontifex

[编程交流] 两个相交点之间的距离

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:46:51 | 显示全部楼层
这应按要求执行:
 
  1. (defun c:int_dist (/ *error* isCurveObj ss->list vlax-list->3D-point SortFromPt SortbyParam
  2.                     DIST ENT ILST LANG MA MI MPT OBJ PT SS TOBJ UFLAG X Y
  3.                   )
  4. (vl-load-com)
  5. ;; Lee Mac  ~  04.03.10
  6. (setq *doc (cond (*doc) ((vla-get-ActiveDocument
  7.                             (vlax-get-acad-object)))))
  8. (defun *error* (msg)
  9.    (and uFlag (vla-EndUndoMark *doc))
  10.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  11.        (princ (strcat "\n** Error: " msg " **"))
  12.    ) ;_  or
  13.    (princ)
  14. ) ;_  defun
  15. (defun isCurveObj (ent)
  16.    (not
  17.      (vl-catch-all-error-p
  18.        (vl-catch-all-apply
  19.          (function
  20.            vlax-curve-getEndParam
  21.          ) ;_  function
  22.          (list ent)
  23.        ) ;_  vl-catch-all-apply
  24.      ) ;_  vl-catch-all-error-p
  25.    ) ;_  not
  26. ) ;_  defun
  27. (defun ss->list (ss / i ent ObjLst)
  28.    (setq i -1)
  29.    (while (setq ent (ssname ss (setq i (1+ i))))
  30.      (setq ObjLst
  31.             (cons
  32.               (vlax-ename->vla-object ent)
  33.               Objlst
  34.             ) ;_  cons
  35.      ) ;_  setq
  36.    ) ;_  while
  37.    ObjLst
  38. ) ;_  defun
  39. (defun vlax-list->3D-point (lst)
  40.    (if lst
  41.      (cons (list (car lst) (cadr lst) (caddr lst))
  42.            (vlax-list->3D-point (cdddr lst))
  43.      ) ;_  cons
  44.    ) ;_  if
  45. ) ;_  defun
  46. (defun SortFromPt (pt lst)
  47.    (vl-sort lst
  48.             (function
  49.               (lambda (a b)
  50.                 (< (distance a pt)
  51.                    (distance b pt)
  52.                 ) ;_  <
  53.               ) ;_  lambda
  54.             ) ;_  function
  55.    ) ;_  vl-sort
  56. ) ;_  defun
  57. (defun SortByParam (ent lst)
  58.    (vl-sort lst
  59.             (function
  60.               (lambda (a b)
  61.                 (< (vlax-curve-getParamatPoint
  62.                      ent
  63.                      a
  64.                    ) ;_  vlax-curve-getParamatPoint
  65.                    (vlax-curve-getParamatPoint
  66.                      ent
  67.                      b
  68.                    ) ;_  vlax-curve-getParamatPoint
  69.                 ) ;_  <
  70.               ) ;_  lambda
  71.             ) ;_  function
  72.    ) ;_  vl-sort
  73. ) ;_  defun
  74. (while
  75.    (progn
  76.      (setq ent (car (entsel)))
  77.      (cond ((eq 'ENAME (type ent))
  78.             (if (isCurveObj ent)
  79.               (progn
  80.                 (vla-getBoundingBox
  81.                   (setq obj
  82.                          (vlax-ename->vla-object ent)
  83.                   ) ;_  setq
  84.                   'Mi
  85.                   'Ma
  86.                 ) ;_  vla-getBoundingBox
  87.                 (mapcar
  88.                   (function set)
  89.                   '(Mi Ma)
  90.                   (mapcar
  91.                     (function
  92.                       vlax-safearray->list
  93.                     ) ;_  function
  94.                     (list Mi Ma)
  95.                   ) ;_  mapcar
  96.                 ) ;_  mapcar
  97.                 (setq ss
  98.                        (ssget "_C"
  99.                               (list (car Mi) (cadr Ma) 0.)
  100.                               (list (car Ma) (cadr Mi) 0.)
  101.                        ) ;_  ssget
  102.                 ) ;_  setq
  103.                 (if
  104.                   (and
  105.                     (setq iLst
  106.                            (apply
  107.                              (function
  108.                                append
  109.                              ) ;_  function
  110.                              (vl-remove 'nil
  111.                                         (mapcar
  112.                                           (function
  113.                                             (lambda (x)
  114.                                               (vlax-list->3D-point
  115.                                                 (vlax-invoke
  116.                                                   obj
  117.                                                   'IntersectWith
  118.                                                   x
  119.                                                   acExtendNone
  120.                                                 ) ;_  vlax-invoke
  121.                                               ) ;_  vlax-list->3D-point
  122.                                             ) ;_  lambda
  123.                                           ) ;_  function
  124.                                           (ss->list
  125.                                             (ssdel ent ss)
  126.                                           ) ;_  ss->list
  127.                                         ) ;_  mapcar
  128.                              ) ;_  vl-remove
  129.                            ) ;_  apply
  130.                     ) ;_  setq
  131.                     (< 1 (length iLst))
  132.                   ) ;_  and
  133.                    (progn
  134.                      (setq uFlag
  135.                             (not
  136.                               (vla-StartUndoMark *doc)
  137.                             ) ;_  not
  138.                      ) ;_  setq
  139.                      (setq iLst (SortByParam
  140.                                   ent
  141.                                   iLst
  142.                                 ) ;_  SortFromPt
  143.                      ) ;_  setq
  144.                      (or
  145.                        (equal
  146.                          (vlax-curve-getStartParam ent)
  147.                          (vlax-curve-getParamatPoint
  148.                            ent
  149.                            (car iLst)
  150.                          ) ;_  vlax-curve-getParamatPoint
  151.                          0.001
  152.                        ) ;_  equal
  153.                        (setq iLst
  154.                               (cons
  155.                                 (vlax-curve-getStartPoint ent)
  156.                                 iLst
  157.                               ) ;_  cons
  158.                        ) ;_  setq
  159.                      ) ;_  or
  160.                      (or
  161.                        (equal
  162.                          (vlax-curve-getEndParam ent)
  163.                          (vlax-curve-getParamatPoint
  164.                            ent
  165.                            (last iLst)
  166.                          ) ;_  vlax-curve-getParamatPoint
  167.                          0.001
  168.                        ) ;_  equal
  169.                        (setq iLst
  170.                               (append iLst
  171.                                       (list
  172.                                         (vlax-curve-getEndPoint ent)
  173.                                       ) ;_  list
  174.                               ) ;_  append
  175.                        ) ;_  setq
  176.                      ) ;_  or
  177.                      (while
  178.                        (cadr iLst)
  179.                         (setq x (car iLst)
  180.                               y (cadr iLst)
  181.                         ) ;_  setq
  182.                         (setq mPt
  183.                                (vlax-curve-getPointatDist
  184.                                  ent
  185.                                  (/
  186.                                    (+
  187.                                      (vlax-curve-getDistatPoint
  188.                                        ent
  189.                                        y
  190.                                      ) ;_  vlax-curve-getDistatPoint
  191.                                      (vlax-curve-getDistAtPoint
  192.                                        ent
  193.                                        x
  194.                                      ) ;_  vlax-curve-getDistAtPoint
  195.                                    ) ;_  -
  196.                                    2.
  197.                                  ) ;_  /
  198.                                ) ;_  vlax-curve-getPointatDist
  199.                         ) ;_  setq
  200.                         (setq dist
  201.                                (abs
  202.                                  (-
  203.                                    (vlax-curve-getDistatPoint
  204.                                      ent
  205.                                      y
  206.                                    ) ;_  vlax-curve-getDistatPoint
  207.                                    (vlax-curve-getDistAtPoint
  208.                                      ent
  209.                                      x
  210.                                    ) ;_  vlax-curve-getDistAtPoint
  211.                                  ) ;_  -
  212.                                ) ;_  abs
  213.                         ) ;_  setq
  214.                         (setq lAng
  215.                                (angle '(0 0 0)
  216.                                       (vlax-curve-getFirstDeriv
  217.                                         ent
  218.                                         (vlax-curve-getParamatPoint
  219.                                           ent
  220.                                           mPt
  221.                                         ) ;_  vlax-curve-getParamatPoint
  222.                                       ) ;_  vlax-curve-getFirstDeriv
  223.                                ) ;_  angle
  224.                         ) ;_  setq
  225.                         (cond ((and (> lAng (/ pi 2)) (<= lAng pi))
  226.                                (setq lAng (- lAng pi))
  227.                               )
  228.                               ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2)))
  229.                                (setq lAng (+ lAng pi))
  230.                               )
  231.                         ) ;_  cond
  232.                         (setq tObj
  233.                                (vla-AddText
  234.                                  (if
  235.                                    (zerop
  236.                                      (vla-get-ActiveSpace *doc)
  237.                                    ) ;_  zerop
  238.                                     (if
  239.                                       (eq :vlax-true
  240.                                           (vla-get-MSpace *doc_)
  241.                                       ) ;_  eq
  242.                                        (vla-get-ModelSpace *doc)
  243.                                        (vla-get-PaperSpace *doc)
  244.                                     ) ;_  if
  245.                                     (vla-get-ModelSpace *doc)
  246.                                  ) ;_  if
  247.                                  (rtos dist)
  248.                                  (vlax-3D-point
  249.                                    '(0 0 0)
  250.                                  ) ;_  vlax-3D-point
  251.                                  (getvar 'TEXTSIZE)
  252.                                ) ;_  vla-AddText
  253.                         ) ;_  setq
  254.                         (vla-put-Alignment tObj acAlignmentMiddleCenter)
  255.                         (vla-put-TextAlignmentPoint
  256.                           tObj
  257.                           (vlax-3D-point
  258.                             (polar mPt
  259.                                    (+ lAng (/ pi 2.))
  260.                                    (getvar 'TEXTSIZE)
  261.                             ) ;_  polar
  262.                           ) ;_  vlax-3D-point
  263.                         ) ;_  vla-put-TextAlignmentPoint
  264.                         (vla-put-rotation tObj lAng)
  265.                         (setq iLst (cdr iLst))
  266.                      ) ;_  while
  267.                      (setq uFlag
  268.                             (vla-EndUndomark *doc)
  269.                      ) ;_  setq
  270.                    ) ;_  progn
  271.                    (princ "\n** Object Has less than Two Intersections **")
  272.                 ) ;_  if
  273.               ) ;_  progn
  274.               (princ "\n** Invalid Object Selected **")
  275.             ) ;_  if
  276.            )
  277.      ) ;_  cond
  278.    ) ;_  progn
  279. ) ;_  while
  280. (princ)
  281. ) ;_  defun
值得思考。
 
使用多行文字。。。
 
  1. (or *doc (setq *doc (vla-get-activedocument (vlax-get-acad-object))))

 
在这种情况下,哪一种可能更好。
 
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 11:50:07 | 显示全部楼层
 
不客气,庞蒂费克斯我玩得很开心
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:54:29 | 显示全部楼层
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:55:51 | 显示全部楼层
Ok, previous code updated to reflect Alan's bug spot
 
Give it a try now Pontifex
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:01:01 | 显示全部楼层
This should perform as required:
 

[code](defun c:int_dist (/                  *error*                  isCurveObj ss->list                  vlax-list->3D-point                  SortFromPt                                    DIST                  ENT                  ILST                  LANG                  MA MI MPT                  OBJ                  PT                  SS                  TOBJ                  UFLAG                                    ) (vl-load-com) ;; Lee Mac  ~  04.03.10 (setq *doc (cond (*doc) ((vla-get-ActiveDocument                            (vlax-get-acad-object))))) (defun *error* (msg)   (and uFlag (vla-EndUndoMark *doc))   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")       (princ (strcat "\n** Error: " msg " **"))   ) ;_  or   (princ) ) ;_  defun (defun isCurveObj (ent)   (not     (vl-catch-all-error-p       (vl-catch-all-apply         (function           vlax-curve-getEndParam         ) ;_  function         (list ent)       ) ;_  vl-catch-all-apply     ) ;_  vl-catch-all-error-p   ) ;_  not ) ;_  defun (defun ss->list (ss / i ent ObjLst)   (setq i -1)   (while (setq ent (ssname ss (setq i (1+ i))))     (setq ObjLst            (cons              (vlax-ename->vla-object ent)              Objlst            ) ;_  cons     ) ;_  setq   ) ;_  while   ObjLst ) ;_  defun (defun vlax-list->3D-point (lst)   (if lst     (cons (list (car lst) (cadr lst) (caddr lst))           (vlax-list->3D-point (cdddr lst))     ) ;_  cons   ) ;_  if ) ;_  defun (defun SortFromPt (pt lst)   (vl-sort lst            (function              (lambda (a b)                (< (distance a pt)                   (distance b pt)                ) ;_  <              ) ;_  lambda            ) ;_  function   ) ;_  vl-sort ) ;_  defun (while   (progn     (setq ent (entsel)           pt  (cadr ent)           ent (car ent)     ) ;_  setq     (cond ((eq 'ENAME (type ent))            (if (isCurveObj ent)              (progn                (vla-getBoundingBox                  (setq obj                         (vlax-ename->vla-object ent)                  ) ;_  setq                  'Mi                  'Ma                ) ;_  vla-getBoundingBox                (mapcar                  (function set)                  '(Mi Ma)                  (mapcar                    (function                      vlax-safearray->list                    ) ;_  function                    (list Mi Ma)                  ) ;_  mapcar                ) ;_  mapcar                (setq ss                       (ssget "_C"                              (list (car Mi) (cadr Ma) 0.)                              (list (car Ma) (cadr Mi) 0.)                       ) ;_  ssget                ) ;_  setq                (if                  (and                    (setq iLst                           (apply                             (function                               append                             ) ;_  function                             (vl-remove 'nil                                        (mapcar                                          (function                                            (lambda (x)                                              (vlax-list->3D-point                                                (vlax-invoke                                                  obj                                                  'IntersectWith                                                  x                                                  acExtendNone                                                ) ;_  vlax-invoke                                              ) ;_  vlax-list->3D-point                                            ) ;_  lambda                                          ) ;_  function                                          (ss->list                                            (ssdel ent ss)                                          ) ;_  ss->list                                        ) ;_  mapcar                             ) ;_  vl-remove                           ) ;_  apply                    ) ;_  setq                    (< 1 (length iLst))                  ) ;_  and                   (progn                     (setq uFlag                            (not                              (vla-StartUndoMark *doc)                            ) ;_  not                     ) ;_  setq                     (setq iLst (SortFromPt                                  (vlax-curve-getClosestPointto ent pt)                                  iLst                                ) ;_  SortFromPt                           iLst (list (car iLst) (cadr iLst))                     ) ;_  setq                     (setq mPt                            (vlax-curve-getPointatDist                              ent                              (/                                (+                                  (vlax-curve-getDistatPoint                                    ent                                    (cadr iLst)                                  ) ;_  vlax-curve-getDistatPoint                                  (vlax-curve-getDistAtPoint                                    ent                                    (car ilst)                                  ) ;_  vlax-curve-getDistAtPoint                                ) ;_  -                                2.                              ) ;_  /                            ) ;_  vlax-curve-getPointatDist                     ) ;_  setq                     (setq dist                            (abs                              (-                                (vlax-curve-getDistatPoint                                  ent                                  (cadr iLst)                                ) ;_  vlax-curve-getDistatPoint                                (vlax-curve-getDistAtPoint                                  ent                                  (car ilst)                                ) ;_  vlax-curve-getDistAtPoint                              ) ;_  -                            ) ;_  abs                     ) ;_  setq                     (setq lAng                            (angle '(0 0 0)                                   (vlax-curve-getFirstDeriv                                     ent                                     (vlax-curve-getParamatPoint                                       ent                                       mPt                                     ) ;_  vlax-curve-getParamatPoint                                   ) ;_  vlax-curve-getFirstDeriv                            ) ;_  angle                     ) ;_  setq                     (cond ((and (> lAng (/ pi 2)) ( lAng pi) (
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:04:19 | 显示全部楼层
Lee, if you use MText, you can avoid the worry of dealing with annotative text. If you did want to use DText, you could just check to see if the style is annotative then use this instead...
 
  1. (* (/ 1 (getvar 'cannoscalevalue)) (getvar 'textsize))
Food for thought.
 
With MText...
 

[code](defun c:test (/ *error* isCurveObj ss->list vlax-list->3D-point SortFromPt SortbyParam DIST ENT              ILST LANG MA MI MPT OBJ PT SS TOBJ UFLAG X Y             ) (vl-load-com) ;; Lee Mac  ~  04.03.10 (defun *error* (msg)   (and uFlag (vla-EndUndoMark *doc))   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")       (princ (strcat "\n** Error: " msg " **"))   ) ;_  or   (princ) ) ;_  defun (defun isCurveObj (ent)   (not     (vl-catch-all-error-p       (vl-catch-all-apply         (function           vlax-curve-getEndParam         ) ;_  function         (list ent)       ) ;_  vl-catch-all-apply     ) ;_  vl-catch-all-error-p   ) ;_  not ) ;_  defun (defun ss->list (ss / i ent ObjLst)   (setq i -1)   (while (setq ent (ssname ss (setq i (1+ i))))     (setq ObjLst            (cons              (vlax-ename->vla-object ent)              Objlst            ) ;_  cons     ) ;_  setq   ) ;_  while   ObjLst ) ;_  defun (defun vlax-list->3D-point (lst)   (if lst     (cons (list (car lst) (cadr lst) (caddr lst))           (vlax-list->3D-point (cdddr lst))     ) ;_  cons   ) ;_  if ) ;_  defun (defun SortFromPt (pt lst)   (vl-sort lst            (function              (lambda (a b)                (< (distance a pt)                   (distance b pt)                ) ;_  <              ) ;_  lambda            ) ;_  function   ) ;_  vl-sort ) ;_  defun (defun SortByParam (ent lst)   (vl-sort lst            (function              (lambda (a b)                (< (vlax-curve-getParamatPoint                     ent                     a                   ) ;_  vlax-curve-getParamatPoint                   (vlax-curve-getParamatPoint                     ent                     b                   ) ;_  vlax-curve-getParamatPoint                ) ;_  <              ) ;_  lambda            ) ;_  function   ) ;_  vl-sort ) ;_  defun (or *doc (setq *doc (vla-get-activedocument (vlax-get-acad-object)))) (while   (progn     (setq ent (car (entsel)))     (cond ((eq 'ENAME (type ent))            (if (isCurveObj ent)              (progn                (vla-getBoundingBox                  (setq obj                         (vlax-ename->vla-object ent)                  ) ;_  setq                  'Mi                  'Ma                ) ;_  vla-getBoundingBox                (mapcar                  (function set)                  '(Mi Ma)                  (mapcar                    (function                      vlax-safearray->list                    ) ;_  function                    (list Mi Ma)                  ) ;_  mapcar                ) ;_  mapcar                (setq ss                       (ssget "_C"                              (list (car Mi) (cadr Ma) 0.)                              (list (car Ma) (cadr Mi) 0.)                       ) ;_  ssget                ) ;_  setq                (if                  (and                    (setq iLst                           (apply                             (function                               append                             ) ;_  function                             (vl-remove 'nil                                        (mapcar                                          (function                                            (lambda (x)                                              (vlax-list->3D-point                                                (vlax-invoke                                                  obj                                                  'IntersectWith                                                  x                                                  acExtendNone                                                ) ;_  vlax-invoke                                              ) ;_  vlax-list->3D-point                                            ) ;_  lambda                                          ) ;_  function                                          (ss->list                                            (ssdel ent ss)                                          ) ;_  ss->list                                        ) ;_  mapcar                             ) ;_  vl-remove                           ) ;_  apply                    ) ;_  setq                    (< 1 (length iLst))                  ) ;_  and                   (progn                     (setq uFlag                            (not                              (vla-StartUndoMark *doc)                            ) ;_  not                     ) ;_  setq                     (setq iLst (SortByParam                                  ent                                  iLst                                ) ;_  SortFromPt                     ) ;_  setq                     (or                       (equal                         (vlax-curve-getStartParam ent)                         (vlax-curve-getParamatPoint                           ent                           (car iLst)                         ) ;_  vlax-curve-getParamatPoint                         0.001                       ) ;_  equal                       (setq iLst                              (cons                                (vlax-curve-getStartPoint ent)                                iLst                              ) ;_  cons                       ) ;_  setq                     ) ;_  or                     (or                       (equal                         (vlax-curve-getEndParam ent)                         (vlax-curve-getParamatPoint                           ent                           (last iLst)                         ) ;_  vlax-curve-getParamatPoint                         0.001                       ) ;_  equal                       (setq iLst                              (append iLst                                      (list                                        (vlax-curve-getEndPoint ent)                                      ) ;_  list                              ) ;_  append                       ) ;_  setq                     ) ;_  or                     (while                       (cadr iLst)                        (setq x (car iLst)                              y (cadr iLst)                        ) ;_  setq                        (setq mPt                               (vlax-curve-getPointatDist                                 ent                                 (/                                   (+                                     (vlax-curve-getDistatPoint                                       ent                                       y                                     ) ;_  vlax-curve-getDistatPoint                                     (vlax-curve-getDistAtPoint                                       ent                                       x                                     ) ;_  vlax-curve-getDistAtPoint                                   ) ;_  -                                   2.                                 ) ;_  /                               ) ;_  vlax-curve-getPointatDist                        ) ;_  setq                        (setq dist                               (abs                                 (-                                   (vlax-curve-getDistatPoint                                     ent                                     y                                   ) ;_  vlax-curve-getDistatPoint                                   (vlax-curve-getDistAtPoint                                     ent                                     x                                   ) ;_  vlax-curve-getDistAtPoint                                 ) ;_  -                               ) ;_  abs                        ) ;_  setq                        (setq lAng                               (angle '(0 0 0)                                      (vlax-curve-getFirstDeriv                                        ent                                        (vlax-curve-getParamatPoint                                          ent                                          mPt                                        ) ;_  vlax-curve-getParamatPoint                                      ) ;_  vlax-curve-getFirstDeriv                               ) ;_  angle                        ) ;_  setq                        (cond ((and (> lAng (/ pi 2)) ( lAng pi) (
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:05:19 | 显示全部楼层
 
 
I don't like it when it's broken up that much. I set my margins to 100.
回复

使用道具 举报

1

主题

10

帖子

9

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:10:40 | 显示全部楼层
everything works, both codes. PERFECT. Absolutely perfect. Now i have to test it. Thanks Lee and alanjt...again
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:12:23 | 显示全部楼层
 
Thanks Alan, I'm always at a loss as to what TextSize to use...
 
I've seen this also used:
 
  1. (getvar 'DIMTXT)
 
Which may be better in this situation.
 
Lee
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:17:01 | 显示全部楼层
 
You're welcome Pontifex  I had fun with this one
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 11:30 , Processed in 0.422095 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表