alanjt 发表于 2022-7-6 12:55:25

我很无聊,妻子生病了。。。
 
我有点得意忘形。
 
 
我很懒,使用了我的多行文字子程序:
;;; Add MText to drawing
;;; #InsertionPoint - MText insertion point
;;; #String - String to place in created MText object
;;; #Width - Width of MText object (if nil, will be 0 width)
;;; #Layer - Layer to place Mtext object on (nil for current)
;;; #Justification - Justification # for Mtext object
;;;             1 or nil= TopLeft
;;;             2= TopCenter
;;;             3= TopRight
;;;             4= MiddleLeft
;;;             5= MiddleCenter
;;;             6= MiddleRight
;;;             7= BottomLeft
;;;             8= BottomCenter
;;;             9= BottomRight
;;; Alan J. Thompson, 05.23.09
(defun AT:MText (#InsertionPoint #String #Width #Layer #Justification / #Width
                #Space #Insertion #Object
               )
(or #Width (setq #Width 0))
(or *AcadDoc*
   (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))
) ;_ or
(setq #Space   (if (or (eq acmodelspace
                              (vla-get-activespace *AcadDoc*)
                        ) ;_ eq
                        (eq :vlax-true (vla-get-mspace *AcadDoc*))
                      ) ;_ or
                  (vla-get-modelspace *AcadDoc*)
                  (vla-get-paperspace *AcadDoc*)
                  ) ;_ if
       #Insertion (cond
                  ((vl-consp #InsertionPoint) (vlax-3d-point #InsertionPoint))
                  ((eq (type #InsertionPoint) 'variant) #InsertionPoint)
                  (T nil)
                  ) ;_ cond
) ;_ setq
;; create MText object
(setq #Object (vla-addmtext #Space #Insertion #Width #String))
;; change layer, if applicable
(and #Layer
      (tblsearch "layer" #Layer)
      (vla-put-layer #Object #Layer)
) ;_ and
;; change justification & match insertion point with new justification
(cond ((member #Justification (list 1 2 3 4 5 6 7 8 9))
      (vla-put-attachmentpoint #Object #Justification)
      (vla-move #Object
                  (vla-get-InsertionPoint #Object)
                  #Insertion
      ) ;_ vla-move
       )
) ;_ cond
#Object
) ;_ defun

alanjt 发表于 2022-7-6 12:59:00

实际上,因为我已经在不同的层上创建了值,所以在进行计算之前清理它们可能是一个好主意:
 
4
 
 
我跑了5000多分,很快就突破了。

jason tay 发表于 2022-7-6 13:00:17

alanjt,谢谢你的时间,它真的非常快(令人惊讶),但当我随机检查结果时,很多都不正确。。这是我必须注意的事情吗?(总的off差真的是个好主意)看起来我们有了总的差,那有可能得到总的挖方和填方面积的挖方和填方体积吗?

alanjt 发表于 2022-7-6 13:04:07

 
你能处理一张画(和我的程序)并把它贴出来吗?在我的每个测试中,它都非常有效。
 
不确定我是否知道如何计算体积,因为我认为我需要能够插值“曲面”。隐马尔可夫模型。。。

jason tay 发表于 2022-7-6 13:09:12

好的,我在这里附上处理后的绘图文件。
 
为了确认,第一步我加载了多行文字和剪切填充。lsp。
然后我键入命令cutfill,等待结果,对吗?
OGL-AS 1。图纸

alanjt 发表于 2022-7-6 13:10:52

5
 
试试这个。。。

jason tay 发表于 2022-7-6 13:15:20

仍然无法完全正确。

alanjt 发表于 2022-7-6 13:17:59

我知道,我每次都会犯同样的10个错误。我需要为分类部分尝试其他方法,但现在,我要睡觉了。我明天要玩它。然而,史蒂夫的确实有效,我只是想做一些更通用的东西。

jason tay 发表于 2022-7-6 13:19:14

 
 
 
是的,你的权利。。没问题。无论如何,首先感谢你:D

alanjt 发表于 2022-7-6 13:23:58

好吧,我撒谎了,但我成功了。我修改了我的排序方法。这是一个测试版本,它将画出一条连接线(当我们满意时,我将删除它)。如果OSL和as文本对象的数量不均衡,我仍然有一个问题(Steve也是如此)。我已经有了一个解决这个问题的方法,但今晚我真的不想重复这个列表。
 
另一方面,我编写了将文本放置在AS文本下方的过程,但您的坐标有点疯狂(每件事都偏离了90°),它只是把文本放置搞砸了。
 
这将花费更长的时间,但它正在创建连接线段(仅出于调试目的,我将删除它)。
 
试试看,我真的要睡觉了。。。。
 
用(CutFill)调用它
我还添加了一个删除原件的选项:眨眼:
页: 1 [2]
查看完整版本: 计算挖方和填方标高