如何不全部利用CASS算平场土方体积猜想
先用CASS生成的三角网,记得三角网中任何三角形都不能穿越地形特征线,要符合地形地貌
然后用下面这个小代码将三角网(三维多段线转化成三维面3DFACE)
(defun vxs (e / i v lst)
(setq i 0)
(while
(setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
(setq lst (cons v lst))
)
(reverse lst))
;;;;;;;;;;;;;;;
(setq ssa (ssget '((0 . "POLYLINE") (8 . "sjw"))))
(setq ii 0
no0
)
(repeat (sslength ssa)
(setq en (ssname ssa ii)
ptb (vxs en)
pzx (append pzx (list ptb))
ii(1+ ii) )
; (setq pzx (list (car pt) (cadr pt) (caddr pt)))
)
;(write-line (strcat pzx) fff)
; (close fff)
;(princ (strcat "\n坐标已存入"" wjm ""中"))
;(setvar "cmdecho" cm)
(princ)
(foreach n pzx
(entmake(list '(0 . "3dface") (cons 10 (nth 0 n))
(cons 11 (nth 1 n))
(cons 12 (nth 2 n))
(cons 13 (nth 0 n))
'(8 . "0")
'(62 . 3)
))
)
然后用 CONVTOSURFACE命令 将三维面3DFACE转换为曲面(平面,分散的曲面SURFACE PLANE),再用命令UNION(CAD2008不行,要高版本,2016使用可以)将分散的曲面SURFACE PLANE合并成完整的曲面SURFACE
以标高最低点Z值画LWPOLYLINE多段线围住三角网一圈,并用拉伸命令EXTRUDE拉伸,高度为最高Z值减去最低点Z值形成三维实体3D solid
用剖切命令SLICE将三维实体剖切,选合并成完整的曲面SURFACE为参照,删除不要的剖切后实体,剩余的就是要算体积的实体
用MASSPROP命令计算实体体积完成
这只是我的小小想法, 不足之处, 还望谅解、 指点,谢谢
支持一下,也就是半自动化的思路咯。 三角网=>取所有三角网的最低z值=>每个三角网跟最低z值面形成三角柱并求体积=>加总所有三角柱体积
这样也可以得到楼主用手动所求的资料。 Atsai 发表于 2022-10-21 20:29
三角网=>取所有三角网的最低z值=>每个三角网跟最低z值面形成三角柱并求体积=>加总所有三角柱体积
这样也可 ...
但是你得不到一个完整的3D SOLID
页:
[1]