找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: tctabc

[1201]怎样编写一个梯形的面积计算列式呢?

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-3 07:11:24 | 显示全部楼层
我測試怎麽沒發現問題呢?

二位老兄,將源碼貼出來吧!

確實有問題,修改了一下:

[PHP](defun c:test (/ h  l1 l2 mj        polygon        pt1 pt2        pt3 pt4        ptlist
               str)
  (setq ptlist (vertexs (car (setq polygon (entsel "\n請點選梯形:")))))
  ;|(setq        ptlist
         (massoc 10
                 (entget (car (setq polygon (entsel "\n請點選梯形:"))))
         )
  )|;
  (setq mj (vlax-curve-getarea (car polygon)))
  (setq        pt1 (nth 0 ptlist)
        pt2 (nth 1 ptlist)
        pt3 (nth 2 ptlist)
        pt4 (nth 3 ptlist)
  )
  (if (inters
        pt1 pt2        pt3 pt4        nil)

    (if        (inters
          pt1 pt3 pt2 pt4 nil)

      (setq l1 (max
                 (distance pt1 pt4)
                 (distance pt2 pt3)
               )
            l2 (min
                 (distance pt1 pt4)
                 (distance pt2 pt3)
               )
      )
    )
    (setq l1 (max
               (distance pt1 pt2)
               (distance pt3 pt4)
             )
          l2 (min
               (distance pt1 pt2)
               (distance pt3 pt4)
             )
    )
  )
  (setq h (/ (* mj 2) (+ l1 l2)))
  (setq        str (strcat "L1="
                    (rtos l1)
                    "&L2="
                    (rtos l2)
                    "&H="
                    (rtos h)
                    "&S=("
                    (rtos l1)
                    "+"
                    (rtos l2)
                    ")*"
                    (rtos h)
                    "/2="
                    (rtos mj)
            )
  )
  (command "TEXT" "J" "C" (GE_CENTROID ptlist) "" "" str)
  (princ)
)[/PHP]

獲取頂點函數
[PHP](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
)[/PHP]
老外寫的質心函數
[PHP];; ******************************************************************************
;; GE_centroid
;; ******************************************************************************
;; Determine centroid of a polygon
;;
;; Algorithm:
;; 1. Form trapezoids by dropping lines from each segment to a basey axis.
;; 2. Calculate the area and CG of the triangle and rectangle in each trapezoid
;; 3. Sums up weighted moments against given axes in X and Y direction
;;    (may use x and y axes if number is small)
;; 4. Derived CG by dividing weighted sum by total area.
;; ! (C) 1999-2004, Four Dimension Technologies, Bangalore
;; ! e-mail   : rakesh.rao@4d-technologies.com
;; ! Web      : www.4d-technologies.com
;; ! ****************************************************************************

(defun GE_centroid (vlist  /          segno         n        ttl_area      basex
                    basey  p1          p2         x1        x2     y1     y2
                    t_x           t_y          t_area t_xm        t_ym   r_x    r_y
                    r_area r_xm          r_ym         Mx        My
                   )
  (setq
    vlist    (append vlist (list (car vlist)))
    segno    (1- (length vlist))        ; no of segments
    n             0
    Ttl_Area 0.0                        ; total area
    Mx             0.0                        ; Sum of moment to basex line
    My             0.0                        ; Sum of moment to basey line
    basex    (car (nth 0 vlist))        ; arbitrary axes (will reduce error for large numbers)
    basey    (cadr (nth 0 vlist))
  )

  (repeat segno
    (setq
      p1       (nth n vlist)                ; process current segment
      p2       (nth (1+ n) vlist)
      x1       (car p1)
      y1       (cadr p1)
      x2       (car p2)
      y2       (cadr p2)

                                        ; For the triangle
      t_x      (- (* (+ x2 x2 x1) 0.333333) basex) ; cg of trianlge
      t_y      (- (* (+ y1 y1 y2) 0.333333) basey)
      t_area   (* (- y2 y1) (- x2 x1) 0.5) ; area of triangle
      t_xm     (* t_area t_x)                ; moment to Basex
      t_ym     (* t_area t_y)                ; moment to basey

                                        ; For the rectangle
      r_x      (- (/ (+ x1 x2) 2) basex) ; CG of rectangle
      r_y      (- (/ (+ basey y1) 2) basey)
      r_area   (* (- x2 x1) (- y1 basey)) ; area of rectangle
      r_xm     (* r_area r_x)                ; moment to basex
      r_ym     (* r_area r_y)                ; moment to basey

      Ttl_Area (+ Ttl_Area t_area r_area)
      Mx       (+ Mx t_xm r_xm)                ; adds up moments to basex
      My       (+ My t_ym r_ym)                ; adds up moments to basey
      n               (1+ n)
    )
  )
  (list        (+ (/ Mx Ttl_Area) basex)
        (+ (/ My Ttl_Area) basey)
        0.0
  )
)
[/PHP]
測試結果如圖:(還是有問題,等會再改)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 09:53:29 | 显示全部楼层
最初由 狂刀 发布
[B]xyp,我测试怎么老说不是梯形呢?
发一个自己写的,
支持多点梯形多义线,
支持多义线起点任意位置.
自动识别梯形
支持预选
可指定文字标注位置.
命令:txbz [/B]


测试狂刀的程序:
  1. [FONT=courier new]
  2. 命令:
  3. 命令: (LOAD "F:/BLOCK/LSP/txbz-狂刀.VLX") nil

  4. 命令: txbz
  5. 选择梯形:
  6. 选择对象:

  7. 绘图比例<1:>: 1: ; 错误: 参数类型错误: numberp: nil
  8. [/FONT]
复制代码

加载程序时最好能直接显示程序执行的命令,时间长了就忘了。
“参数类型错误”是否因为“绘图比例的设置”没有放到程序前面作判断?
偶的程序已作修改,是CAD本身计算误差的BUG。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 10:26:30 | 显示全部楼层
最初由 taner 发布
[B]我測試怎麽沒發現問題呢?
二位老兄,將源碼貼出來吧!
確實有問題,修改了一下:
[/B]

问题:
1、只支持四点纯粹梯形。
2、未作梯形真伪判断,非梯形也标注,三角形出错。

taner程序修改(只支持4点梯形):
  1. [FONT=courier new]
  2. (defun c:test (/ h l1 l2 mj polygon pt1 pt2 pt3 pt4 ptlist str)
  3.   (setq        ptlist (vertexs (car (setq polygon (entsel "\n請點選梯形:"))))
  4.         mj     (vlax-curve-getarea (car polygon))
  5.         pt1    (nth 0 ptlist)
  6.         pt2    (nth 1 ptlist)
  7.         pt3    (nth 2 ptlist)
  8.         pt4    (nth 3 ptlist)
  9.   )
  10.   ;;判断是否平行
  11.   (if (inters pt1 pt2 pt3 pt4 nil)
  12.     (if        (not (inters pt1 pt3 pt2 pt4 nil))
  13.       (setq l1 (max (distance pt1 pt4)
  14.                     (distance pt2 pt3)
  15.                )
  16.             l2 (min (distance pt1 pt4)
  17.                     (distance pt2 pt3)
  18.                )
  19.       )
  20.     )
  21.     (setq l1 (max
  22.                (distance pt1 pt2)
  23.                (distance pt3 pt4)
  24.              )
  25.           l2 (min
  26.                (distance pt1 pt2)
  27.                (distance pt3 pt4)
  28.              )
  29.     )
  30.   )
  31.   (if (and l1 l2)
  32.     (progn
  33.       (setq h        (/ (* mj 2) (+ l1 l2))
  34.             str        (strcat        "L1="
  35.                         (rtos l1)
  36.                         "&L2="
  37.                         (rtos l2)
  38.                         "&H="
  39.                         (rtos h)
  40.                         "&S=("
  41.                         (rtos l1)
  42.                         "+"
  43.                         (rtos l2)
  44.                         ")*"
  45.                         (rtos h)
  46.                         "/2="
  47.                         (rtos mj)
  48.                 )
  49.       )
  50.       (command "TEXT"
  51.                "J"
  52.                "C"
  53.                (inters pt1 pt2 pt3 pt4 nil)
  54.                ""
  55.                ""
  56.                str
  57.       )
  58.     )
  59.     (princ "\n非梯形!")
  60.   )
  61.   (princ)
  62. )
  63. ;;;獲取頂點函數
  64. (defun vertexs (ename / plist pp n)
  65.   (setq obj (vlax-ename->vla-object ename))
  66.   (setq        plist (vlax-safearray->list
  67.                 (vlax-variant-value
  68.                   (vla-get-coordinates obj)
  69.                 )
  70.               )
  71.   )
  72.   (setq n 0)
  73.   (repeat (/ (length plist) 2)
  74.     (setq pp (append
  75.                pp
  76.                (list (list (nth n plist) (nth (1+ n) plist)))
  77.              )
  78.     )
  79.     (setq n (+ n 2))
  80.   )
  81.   pp
  82. )[/FONT]


思路:
[php]
1、选择(支持多选)多段线(*POLYLINE)判断是否闭合或首尾相连,是→继续。
2、取其顶点集,删除直线段上的所有顶点,如果首尾相连则删除首尾中的一个点,判断最后顶点数是否为4,是→继续。
3、判断剩余4点中是否存在平行线,是→继续。
4、计算平行线的长度、梯形高度、面积公式→完成标注。
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-3 11:29:49 | 显示全部楼层
再修改:
獲取頂點函數VERTEXS見前貼.

[PHP]
(defun c:test
       (/ h mj interpoint l1 l2 polygon pt1 pt2 pt3 pt4 ptlist str)
  (setq ptlist (vertexs (car (setq polygon (entsel "\n請點選梯形:")))))
  (setq mj (vlax-curve-getarea (car polygon)))
  (setq        pt1 (nth 0 ptlist)
        pt2 (nth 1 ptlist)
        pt3 (nth 2 ptlist)
        pt4 (nth 3 ptlist)
  )
  (if (inters
        pt1 pt2        pt3 pt4        nil)
    (princ "\n相交")
    (progn (setq l1 (max
                      (distance pt1 pt2)
                      (distance pt3 pt4)
                    )
                 l2 (min
                      (distance pt1 pt2)
                      (distance pt3 pt4)
                    )
           )
           (if (setq interspoint (inters pt1 pt4 pt2 pt3 t))
             interspoint
             (setq interspoint (inters pt1 pt3 pt2 pt4 t))

           )
    )
  )
  (if (inters
        pt1 pt3        pt2 pt4        nil)
    (princ "\n相交")
    (progn (setq l1 (max
                      (distance pt1 pt3)
                      (distance pt2 pt4)
                    )
                 l2 (min
                      (distance pt1 pt3)
                      (distance pt2 pt4)
                    )
           )
           (if (setq interspoint (inters pt1 pt2 pt3 pt4 t))
             interspoint
             (setq interspoint (inters pt1 pt4 pt2 pt3 t))

           )
    )
  )
  (if (inters
        pt1 pt4        pt2 pt3        nil)
    (princ "\n相交")
    (progn (setq l1 (max
                      (distance pt1 pt4)
                      (distance pt2 pt3)
                    )
                 l2 (min
                      (distance pt1 pt4)
                      (distance pt2 pt3)
                    )
           )
           (if (setq interspoint (inters pt1 pt2 pt3 pt4 t))
             interspoint
             (setq interspoint (inters pt1 pt3 pt2 pt4 t))

           )
    )
  )
  (if (and l1 l2)
    (progn (setq h (/ (* mj 2) (+ l1 l2)))
           (setq str (strcat "L1="
                             (rtos l1)
                             "&L2="
                             (rtos l2)
                             "&H="
                             (rtos h)
                             "&S=("
                             (rtos l1)
                             "+"
                             (rtos l2)
                             ")*"
                             (rtos h)
                             "/2="
                             (rtos mj)
                     )
           )
           (command "TEXT" "J" "C" interspoint "" "" str)
    )
  )
  (princ)
)
[/PHP]

文本的中心點在梯形的對角線交點上.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 16:55:16 | 显示全部楼层
最初由 taner 发布
[B]再修改:
獲取頂點函數VERTEXS見前貼.
(defun c:test
       (/ h mj interpoint l1 l2 polygon pt1 pt2 pt3 pt4 ptlist str)
  (setq ptlist (vertexs (car (setq polygon (entsel "\n請點選梯形:")))... [/B]

请用一楼的DWG文件测试,如果运行成功就差不多了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 17:28:55 | 显示全部楼层
xyp1964版主及taner兄
真是厉害的高手,但想在要求一下是否可以将各线段长度都标上去呢
如8楼的图片但要四边的长度有显示出来~
另外小弟用过 taner 兄的版本,想请教一下是否物件要先封闭程聚合线呢,如果是这样为何不能
先制做封闭聚合线呢?还是说程序中的判断是将各线段的线长及顶点做平行及大小判断
再延伸至面积计算
因为程度差很多不知道观念对吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 19:13:23 | 显示全部楼层
只标线长就简单多了:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 20:03:14 | 显示全部楼层
版主您提供的这程式
可以换成繁体的吗
我系统跑出来的都是乱码
另外这程序还要搭配您自行开发的 xyp_lib.VLX 程序吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 20:36:52 | 显示全部楼层
最初由 xyp1964 发布
[B][QUOTE]最初由 狂刀 发布
[B]xyp,我测试怎么老说不是梯形呢?
发一个自己写的,
支持多点梯形多义线,
支持多义线起点任意位置.
自动识别梯形
支持预选
可指定文字标注位置.
命令:txbz [/B][/... [/B]


忘了设初值了,第一次执行输入比例(整数)不直接回车即可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-3 21:00:09 | 显示全部楼层
最初由 xyz518mm 发布
[B]xyp1964版主及taner兄
真是厉害的高手,但想在要求一下是否可以将各线段长度都标上去呢
如8楼的图片但要四边的长度有显示出来~
另外小弟用过 taner 兄的版本,想请教一下是否物件要先封闭程聚合线呢,如果是这样为何... [/B]


小弟也正在學習中!XYP和狂刀才是真正的高手!

如果是line線,需要先聚合成多義線.我的這個程序還不能算程序.還不能解決XYP版主貼的附件中的問題.正在思考中!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 23:53:08 | 显示全部楼层
参考程序:
  1. [FONT=courier new];;;txbz(梯形标注)
  2. (defun c:txbz ()
  3.   (CMDLASC0)
  4.   (setq        ss (ssget '((0 . "*POLYLINE")))
  5.         i  -1
  6.   )
  7.   (while (setq s1 (ssname ss (setq i (1+ i))))
  8.     (if        (or (= (xyp-get-DXF 70 s1) 1)
  9.             (equal (xyp-get-CurveEndPoint s1)
  10.                    (xyp-get-CurveStartPoint s1)
  11.             )
  12.         )
  13.       (progn
  14.         (setq ptn (xyp-get-Vertexs s1 3))
  15.         (if (= (length ptn) 4)
  16.           (progn
  17.             (setq pt0  (nth 0 ptn)
  18.                   pt1  (nth 1 ptn)
  19.                   pt2  (nth 2 ptn)
  20.                   pt3  (nth 3 ptn)
  21.                   pt28 (xyp-get-MinMaxPoint s1 2)
  22.                   aa   (vla-get-Area (vla-obj s1))
  23.             )
  24.             (cond ((not (inters pt0 pt1 pt2 pt3 nil))
  25.                    (setq l1 (distance pt0 pt1)
  26.                          l2 (distance pt3 pt2)
  27.                    )
  28.                    (mkla "尺寸标注" 4)
  29.                    (subtxt pt0 pt1)
  30.                    (subtxt pt1 pt2)
  31.                    (subtxt pt2 pt3)
  32.                    (subtxt pt3 pt0)
  33.                    (setq pt01 (polar pt0 (+ (angle pt0 pt1) (* pi 0.5)) 1000)
  34.                          pt02 (inters pt0 pt01 pt2 pt3 nil)
  35.                          h    (distance pt0 pt02)
  36.                    )
  37.                    (subtxt pt0 pt02)
  38.                    (setq txt1 (/ (* (+ l1 l2) h) 2.0)
  39.                          txt2 (strcat "S "
  40.                                       (rtos txt1 2 3)
  41.                                       " = "
  42.                                       "("
  43.                                       (rtos l1 2 3)
  44.                                       "+"
  45.                                       (rtos l2 2 3)
  46.                                       ")"
  47.                                       "×"
  48.                                       (rtos h 2 3)
  49.                                       "/"
  50.                                       (itoa 2)
  51.                               )
  52.                    )
  53.                    (xyp-Text 8 pt28 txt2)
  54.                    (mkla "辅助线" 1)
  55.                    (command "line" pt0 pt02 "")
  56.                   )
  57.                   ((not (inters pt0 pt3 pt1 pt2 nil))
  58.                    (setq l1 (distance pt0 pt3)
  59.                          l2 (distance pt1 pt2)
  60.                    )
  61.                    (mkla "尺寸标注" 4)
  62.                    (subtxt pt0 pt1)
  63.                    (subtxt pt1 pt2)
  64.                    (subtxt pt2 pt3)
  65.                    (subtxt pt3 pt0)
  66.                    (setq pt01 (polar pt0 (+ (angle pt0 pt3) (* pi 0.5)) 1000)
  67.                          pt02 (inters pt0 pt01 pt1 pt2 nil)
  68.                          h    (distance pt0 pt02)
  69.                    )
  70.                    (subtxt pt0 pt02)
  71.                    (setq txt1 (/ (* (+ l1 l2) h) 2.0)
  72.                          txt2 (strcat "S "
  73.                                       (rtos txt1 2 3)
  74.                                       " = "
  75.                                       "("
  76.                                       (rtos l1 2 3)
  77.                                       "+"
  78.                                       (rtos l2 2 3)
  79.                                       ")"
  80.                                       "×"
  81.                                       (rtos h 2 3)
  82.                                       "/"
  83.                                       (itoa 2)
  84.                               )
  85.                    )
  86.                    (xyp-Text 8 pt28 txt2)
  87.                    (mkla "辅助线" 1)
  88.                    (command "line" pt0 pt02 "")
  89.                   )
  90.                   (t (princ "\n非梯形!"))
  91.             )
  92.           )
  93.           (princ "\n非梯形!")
  94.         )
  95.       )
  96.       (princ "\n多段线不闭合!")
  97.     )
  98.   )
  99.   (CMDLA1)
  100. )
  101. (defun subtxt (Point1 Point2 / ang)
  102.   (setq ang (rad2ang (angle Point1 Point2)))
  103.   (while (> ang 90)
  104.     (setq ang (- ang 180))
  105.   )
  106.   (command "text"
  107.            "j"
  108.            "BC"
  109.            (xyp-get-RightPoint Point1 Point2 (* sc 100))
  110.            (* sc 300)
  111.            ang
  112.            (rtos (distance Point1 Point2) 2 3)
  113.   )
  114. )
  115. (pxyp "txbz  (梯形标注)")[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-3 23:57:56 | 显示全部楼层
效果
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-4 11:30:42 | 显示全部楼层
建议把多点的梯形自动改成4顶点的多义线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-4 11:57:02 | 显示全部楼层
最初由 狂刀 发布
[B]建议把多点的梯形自动改成4顶点的多义线 [/B]


支持!我的想法正是這樣,先將梯形轉化爲4頂點的梯形.後面的步驟前面都談過了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-4 14:15:02 | 显示全部楼层
首先要判断是否四边形:
(= (length (xyp-get-Vertexs ename 3)) 4)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-7 13:43 , Processed in 0.208767 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表