angel121204567 发表于 2024-4-7 13:55:00

如何统计计取曲面、面域、闭合多段线的面积和

有无大神可以分享该程序

angel121204567 发表于 2024-4-7 17:14:14

这个功能我主要用来算梁板柱的模板量,觉得这个功能确实好,要是能有这个代码那就太好啦

ocoipw 发表于 2025-1-22 02:03:11

;;请试一试我编的程序:
;;计算各种表面、面域的面积和。设计 何勇
;;注意:绘图单位以毫米计。
(defun C:calmj(/ ss e ent)
(setq ss (ssget))
(setq are1 0)
(while ss
    (setq
      e (ssname ss 0)
      ent (entget e)
      ss (if (> (sslength ss) 1)
             (ssdel e ss)
          nil
         )
    )
    (cond ((or (=(cdr (assoc 0 ent))"LWPOLYLINE")
                           (=(cdr (assoc 0 ent))"POLYLINE")
                           (=(cdr (assoc 0 ent))"REGION")
                           (=(cdr (assoc 0 ent))"LOFTEDSURFACE")
                           (=(cdr (assoc 0 ent))"SURFACE")
                           (=(cdr (assoc 0 ent))"REVOLVEDSURFACE")
                           (=(cdr (assoc 0 ent))"EXTRUDEDSURFACE")
                           (=(cdr (assoc 0 ent))"PLANESURFACE")
                           (=(cdr (assoc 0 ent))"SWEPTSURFACE")
                   )
               (command "AREA" "e" e)
                   (setq
                         are1 (+ are1 (getvar "AREA"))
                   )
            )
      );;end cond
);;end while
(princ (strcat "\n总面积为:" (rtos are1) "mm2"))
(princ (strcat "\n总面积为:" (rtos (/ are1 1000000.0)) "m2"))
(prin1)
)

ocoipw 发表于 2025-1-22 02:05:23

;;请试试我编的程序
;;计算各种表面、面域的面积和。设计 何勇
;;注意:绘图单位以毫米计。
(defun C:calmj(/ ss e ent)
(setq ss (ssget))
(setq are1 0)
(while ss
    (setq
      e (ssname ss 0)
      ent (entget e)
      ss (if (> (sslength ss) 1)
             (ssdel e ss)
          nil
         )
    )
    (cond ((or (=(cdr (assoc 0 ent))"LWPOLYLINE")
                           (=(cdr (assoc 0 ent))"POLYLINE")
                           (=(cdr (assoc 0 ent))"REGION")
                           (=(cdr (assoc 0 ent))"LOFTEDSURFACE")
                           (=(cdr (assoc 0 ent))"SURFACE")
                           (=(cdr (assoc 0 ent))"REVOLVEDSURFACE")
                           (=(cdr (assoc 0 ent))"EXTRUDEDSURFACE")
                           (=(cdr (assoc 0 ent))"PLANESURFACE")
                           (=(cdr (assoc 0 ent))"SWEPTSURFACE")
                   )
                 (command "AREA" "e" e)
                   (setq
                         are1 (+ are1 (getvar "AREA"))
                   )
              )
        );;end cond
);;end while
(princ (strcat "\n总面积为:" (rtos are1) "mm2"))
(princ (strcat "\n总面积为:" (rtos (/ are1 1000000.0)) "m2"))
(prin1)
)

angel121204567 发表于 2024-4-7 14:30:04

(defun c:qmmj ()
(setq sel (ssget))
(setq total_area 0)
(foreach ent sel
    (cond
      ((= (cdr (assoc 0 (entget ent))) "SURFACE") (setq area (area (car ent))) (setq total_area (+ total_area area)))
      ((= (cdr (assoc 0 (entget ent))) "REGION") (setq area (area (car ent))) (setq total_area (+ total_area area)))
      ((= (cdr (assoc 0 (entget ent))) "POLYLINE") (setq area (area (car ent))) (setq total_area (+ total_area area)))
    )
)
(alert "各部分面积及总面积如下:\n 各部分面积:" total_area)
)

angel121204567 发表于 2024-4-7 14:32:23

angel121204567 发表于 2024-4-7 14:30
(defun c:qmmj ()
(setq sel (ssget))
(setq total_area 0)


AI写的,用不了哈:(

czb203 发表于 2024-4-7 15:36:23

这个三维图形不行吧,二维才行

angel121204567 发表于 2024-4-7 16:29:37

czb203 发表于 2024-4-7 15:36
这个三维图形不行吧,二维才行

可以,1楼的图就是我买的工具箱算出来的

love1030312 发表于 2024-4-7 17:12:59

angel121204567 发表于 2024-4-7 14:32
AI写的,用不了哈

AI 还会写代码用的什么有嗲好奇请教下

p-3-ianlcc 发表于 2024-4-8 11:42:00

angel121204567 发表于 2024-4-7 16:29
可以,1楼的图就是我买的工具箱算出来的

那请问一下,你的工具箱是什麽
方便分享一下吗?

angel121204567 发表于 2024-4-8 16:20:53

p-3-ianlcc 发表于 2024-4-8 11:42
那请问一下,你的工具箱是什麽
方便分享一下吗?

不作宣传,价格近400,U盘加密,有点麻烦

angel121204567 发表于 2024-4-19 16:09:13

(command "measuregeom" "ar" "a" "o" )
如何突破点选限制,改为框选,有无巨佬
页: [1] 2
查看完整版本: 如何统计计取曲面、面域、闭合多段线的面积和