乐筑天下

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

[编程交流] 计算挖方和填方标高

[复制链接]

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:55:25 | 显示全部楼层
我很无聊,妻子生病了。。。
 
我有点得意忘形。
 
 
我很懒,使用了我的多行文字子程序:
  1. ;;; Add MText to drawing
  2. ;;; #InsertionPoint - MText insertion point
  3. ;;; #String - String to place in created MText object
  4. ;;; #Width - Width of MText object (if nil, will be 0 width)
  5. ;;; #Layer - Layer to place Mtext object on (nil for current)
  6. ;;; #Justification - Justification # for Mtext object
  7. ;;;             1 or nil= TopLeft
  8. ;;;             2= TopCenter
  9. ;;;             3= TopRight
  10. ;;;             4= MiddleLeft
  11. ;;;             5= MiddleCenter
  12. ;;;             6= MiddleRight
  13. ;;;             7= BottomLeft
  14. ;;;             8= BottomCenter
  15. ;;;             9= BottomRight
  16. ;;; Alan J. Thompson, 05.23.09
  17. (defun AT:MText (#InsertionPoint #String #Width #Layer #Justification / #Width
  18.                 #Space #Insertion #Object
  19.                )
  20. (or #Width (setq #Width 0))
  21. (or *AcadDoc*
  22.      (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))
  23. ) ;_ or
  24. (setq #Space     (if (or (eq acmodelspace
  25.                               (vla-get-activespace *AcadDoc*)
  26.                           ) ;_ eq
  27.                           (eq :vlax-true (vla-get-mspace *AcadDoc*))
  28.                       ) ;_ or
  29.                     (vla-get-modelspace *AcadDoc*)
  30.                     (vla-get-paperspace *AcadDoc*)
  31.                   ) ;_ if
  32.        #Insertion (cond
  33.                     ((vl-consp #InsertionPoint) (vlax-3d-point #InsertionPoint))
  34.                     ((eq (type #InsertionPoint) 'variant) #InsertionPoint)
  35.                     (T nil)
  36.                   ) ;_ cond
  37. ) ;_ setq
  38. ;; create MText object
  39. (setq #Object (vla-addmtext #Space #Insertion #Width #String))
  40. ;; change layer, if applicable
  41. (and #Layer
  42.       (tblsearch "layer" #Layer)
  43.       (vla-put-layer #Object #Layer)
  44. ) ;_ and
  45. ;; change justification & match insertion point with new justification
  46. (cond ((member #Justification (list 1 2 3 4 5 6 7 8 9))
  47.         (vla-put-attachmentpoint #Object #Justification)
  48.         (vla-move #Object
  49.                   (vla-get-InsertionPoint #Object)
  50.                   #Insertion
  51.         ) ;_ vla-move
  52.        )
  53. ) ;_ cond
  54. #Object
  55. ) ;_ defun
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:59:00 | 显示全部楼层
实际上,因为我已经在不同的层上创建了值,所以在进行计算之前清理它们可能是一个好主意:
 
  1. 4

 
 
我跑了5000多分,很快就突破了。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 13:00:17 | 显示全部楼层
alanjt,谢谢你的时间,它真的非常快(令人惊讶),但当我随机检查结果时,很多都不正确。。这是我必须注意的事情吗?(总的off差真的是个好主意)看起来我们有了总的差,那有可能得到总的挖方和填方面积的挖方和填方体积吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:04:07 | 显示全部楼层
 
你能处理一张画(和我的程序)并把它贴出来吗?在我的每个测试中,它都非常有效。
 
不确定我是否知道如何计算体积,因为我认为我需要能够插值“曲面”。隐马尔可夫模型。。。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 13:09:12 | 显示全部楼层
好的,我在这里附上处理后的绘图文件。
 
为了确认,第一步我加载了多行文字和剪切填充。lsp。
然后我键入命令cutfill,等待结果,对吗?
OGL-AS 1。图纸
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:10:52 | 显示全部楼层
  1. 5

 
试试这个。。。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 13:15:20 | 显示全部楼层
仍然无法完全正确。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:17:59 | 显示全部楼层
我知道,我每次都会犯同样的10个错误。我需要为分类部分尝试其他方法,但现在,我要睡觉了。我明天要玩它。然而,史蒂夫的确实有效,我只是想做一些更通用的东西。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 13:19:14 | 显示全部楼层
 
 
 
是的,你的权利。。没问题。无论如何,首先感谢你:D
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

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

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 06:06 , Processed in 0.432173 second(s), 70 queries .

© 2020-2025 乐筑天下

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