乐筑天下

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

[编程交流] ? 带云的维度

[复制链接]

18

主题

59

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 23:44:57 | 显示全部楼层 |阅读模式
有人能创建一个维度lisp吗
代替数值尺寸,仅显示“?”
同时在其周围放置了一个rev云
 
我看到,在创建新的dimstyle时,可以在其周围绘制一个框架。不知道是否可以自动将其更改为云?我还需要能够更改dimstyle,因为当我们对不同类型的区域进行云计算时,它们可能需要位于不同的层上。如果没有给出尺寸,我必须将每个尺寸都更改为“D.E.”或“E.O.S.”,这可能会变得很乏味
 
我到处找过这样的东西,但什么也没找到。我们一如既往地感谢大师的任何帮助。
 
谢谢
诺布尔
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:56:49 | 显示全部楼层
试着看看这是否是你搜索的。。。
 
  1. (defun c:d? ( / *error* DTR GetMTextBB ogt ch d mt pts p1 p2 p3 p4 pl )
  2. (defun *error* ( msg )
  3.    (if ogt (setvar 'offsetgaptype ogt))
  4.    (if msg (prompt msg))
  5.    (princ)
  6. )
  7. (defun DTR ( a )
  8.    (* (/ a 180.0) pi)
  9. )
  10. (defun GetMTextBB ( Ent / EntData EnsPt TxtJust TxtWd TxtHt TxtRot LeftX RightX TopY BottomY )
  11. ;;; Source : https://groups.google.com/forum/#!topic/autodesk.autocad.customization/gGZBLTD3Qls
  12. ;;; Get real Bounding Box for MText
  13. ;;; Tim Willey 03/2005
  14. ;;; Improved for any angle Text by mailmaverick 12-12-2013
  15. ;;; Thanks to OLD-CADaver for the tips on the DXF codes
  16. ;;; Points p1, p2, p3 and p4 are explained below :
  17. ;;; If the MTEXT gets rotated, the points remain the same.
  18. ;|
  19. ;
  20. p3                     p2
  21. ------------------------
  22. |                      |
  23. |                      |
  24. |                      |
  25. |                      |
  26. |                      |
  27. |                      |
  28. ------------------------
  29. p1                     p4
  30. ;
  31. |;
  32.    (setq EntData (entget Ent))
  33.    (setq InsPt (acet-dxf 10 EntData))
  34.    (setq TxtJust (acet-dxf 71 EntData))
  35.    (setq TxtRot (acet-dxf 50 EntData))
  36.    (setq TxtWd (acet-dxf 42 EntData))
  37.    (setq TxtHt (acet-dxf 43 EntData))
  38.    (cond   
  39.      ((= TxtJust 1)
  40.       (setq p3 InsPt)
  41.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  42.       (setq p2 (polar p3 TxtRot TxtWd))
  43.       (setq p4 (polar p1 TxtRot TxtWd))
  44.      )
  45.      ((= TxtJust 2)
  46.       (setq p3 (polar Inspt (+ (DTR 180) TxtRot) (/ TxtWd 2)))
  47.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  48.       (setq p2 (polar p3 TxtRot TxtWd))
  49.       (setq p4 (polar p1 TxtRot TxtWd))
  50.      )
  51.      ((= TxtJust 3)
  52.       (setq p2 Inspt)
  53.       (setq p3 (polar p2 (+ (DTR 180) TxtRot) TxtWd))
  54.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  55.       (setq p4 (polar p1 TxtRot TxtWd))
  56.      )
  57.      ((= TxtJust 4)
  58.       (setq p3 (polar Inspt (+ (DTR 90) TxtRot) (/ TxtHt 2)))
  59.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  60.       (setq p2 (polar p3 TxtRot TxtWd))
  61.       (setq p4 (polar p1 TxtRot TxtWd))
  62.      )
  63.      ((= TxtJust 5)
  64.       (setq temp (polar Inspt (+ (DTR 90) TxtRot) (/ TxtHt 2)))
  65.       (setq p3 (polar temp (+ (DTR 180) TxtRot) (/ TxtWd 2)))
  66.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  67.       (setq p2 (polar p3 TxtRot TxtWd))
  68.       (setq p4 (polar p1 TxtRot TxtWd))
  69.      )
  70.      ((= TxtJust 6)
  71.       (setq p2 (polar Inspt (+ (DTR 90) TxtRot) (/ TxtHt 2)))
  72.       (setq p3 (polar p2 (+ (DTR 180) TxtRot) TxtWd))
  73.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  74.       (setq p4 (polar p1 TxtRot TxtWd))
  75.      )
  76.      ((= TxtJust 7)
  77.       (setq p1 Inspt)
  78.       (setq p3 (polar p1 (+ (DTR 90) TxtRot) TxtHt))
  79.       (setq p2 (polar p3 TxtRot TxtWd))
  80.       (setq p4 (polar p1 TxtRot TxtWd))
  81.      )
  82.      ((= TxtJust
  83.       (setq p1 (polar Inspt (+ (DTR 180) TxtRot) (/ TxtWd 2)))
  84.       (setq p3 (polar p1 (+ (DTR 90) TxtRot) TxtHt))
  85.       (setq p2 (polar p3 TxtRot TxtWd))
  86.       (setq p4 (polar p1 TxtRot TxtWd))
  87.      )
  88.      ((= TxtJust 9)
  89.       (setq p4 Inspt)
  90.       (setq p2 (polar p4 (+ (DTR 90) TxtRot) TxtHt))
  91.       (setq p3 (polar p2 (+ (DTR 180) TxtRot) TxtWd))
  92.       (setq p1 (polar p3 (+ (DTR 270) TxtRot) TxtHt))
  93.      )
  94.    )
  95.    (list p1 p2 p3 p4)
  96. )
  97. (setq ogt (getvar 'offsetgaptype))
  98. (setvar 'offsetgaptype 0)
  99. (if (not (tblsearch "LAYER" "dim_revcloud"))
  100.    (entmake '((0 . "LAYER") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLayerTableRecord") (2 . "dim_revcloud") (70 . 0) (62 . 6) (6 . "Continuous")))
  101.    (prompt "\nLayer : "dim_revcloud" already exist - setting it to current and proceeding with routine...")
  102. )
  103. (setvar 'clayer "dim_revcloud")
  104. (initget "1 2")
  105. (setq ch (getkword "\nChoose text of dimension [1.? D.E. / 2.? E.O.S.] <?>: "))
  106. (cond
  107.    ( (eq ch nil)
  108.      (prompt "\nPick start and end point of linear dimension...")
  109.      (command "_.dimaligned" "\" "\" "t" "?")
  110.      (while (> (getvar 'cmdactive) 0) (command "\"))
  111.    )
  112.    ( (eq ch "1")
  113.      (prompt "\nPick start and end point of linear dimension...")
  114.      (command "_.dimaligned" "\" "\" "t" "? D.E.")
  115.      (while (> (getvar 'cmdactive) 0) (command "\"))
  116.    )
  117.    ( (eq ch "2")
  118.      (prompt "\nPick start and end point of linear dimension...")
  119.      (command "_.dimaligned" "\" "\" "t" "? E.O.S.")
  120.      (while (> (getvar 'cmdactive) 0) (command "\"))
  121.    )
  122. )
  123. (setq d (entlast))
  124. (setq mt (car (nentselp (mapcar '/ (mapcar '+ (acet-dxf 10 (entget d)) (acet-dxf 11 (entget d))) '(2.0 2.0 2.0)))))
  125. (if (not (eq (acet-dxf 0 (entget mt)) "MTEXT"))
  126.    (while (not (eq (acet-dxf 0 (entget (setq mt (entnext mt)))) "MTEXT")))
  127. )
  128. (setq pts (GetMTextBB mt))
  129. (setq p1 (car pts) p2 (cadr pts) p3 (caddr pts) p4 (cadddr pts))
  130. (command "_.pline" p1 p4 p2 p3 "c")
  131. (setq pl (entlast))
  132. (command "_.offset" "t" pl (mapcar '+ p2 (mapcar '- p2 p1)) "")
  133. (command "_.revcloud" "s" "n" "o" (entlast) "")
  134. (entdel pl)
  135. (*error* nil)
  136. (princ)
  137. )
HTH,M.R。
回复

使用道具 举报

18

主题

59

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 00:06:09 | 显示全部楼层
这基本上就是我想要的。是否可以在文本周围自动添加revcloud?我也需要能够改变层,但我这里有一个人谁应该能够做到这一点,如果我不能。谢谢你的命令。我认为这已经是一个帮助,因为它是,但云会使它变成金色。
 
再次感谢,
诺布尔
回复

使用道具 举报

18

主题

59

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 00:11:51 | 显示全部楼层
我算出了层次。但revcloud函数的行为似乎有些奇怪。它不会在周围形成云,而是更多地穿过它。我能选择书法风格吗(因为这是我们在其他方面使用的风格)。对不起,我绝对是Lisp程序的新手。我计划留出一些时间来学习各种可用的教程。
 
-诺布尔
回复

使用道具 举报

18

主题

59

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 00:15:33 | 显示全部楼层
有没有人可以查看上面列出的代码?它接近我需要的,但只是一辆小马车。。。
 
-诺布尔
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 00:27:56 | 显示全部楼层
最近我没有太多时间做CADTutor,但我快速看了一下这个。当我运行它时,Revcloud根本没有出现,它应该是由什么组成的矩形也没有出现。
 
该例程似乎有一个偏移量,可以控制Revcloud的大小。也许你应该上传一张带着结果的图,让别人来评估。
 
至于你的图层问题,只需在这里将“dim\u revcloud”更改为你的名字。
或者,如果您的层不存在,则更改所有“dim\u revcloud”出现。
回复

使用道具 举报

18

主题

59

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 00:37:06 | 显示全部楼层
我已经解决了图层问题,但它是给我带来麻烦的云
 
附件是如何出来,如果你做一个尺寸超过一定的大小,这可能是另一个问题。如果使用的维度太小,则不会显示云。
 
它还只允许使用数字键盘而不是简单地点击回车键来确定后缀,即“D.e.”或“e.O.S.”。它不像现在这样对用户友好,但这些小问题确实是我最不担心的问题。需要做的主要事情是让云正确显示,并可能将云样式更改为书法。
 
任何帮助都将不胜感激。
 
-诺布尔
004510vgagz77yzzbzl6fl.png
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 00:44:07 | 显示全部楼层
这很好,但实际上你应该发布解决方案,这样其他人也能从中受益。 
您的其他信息在这里很有帮助。图像正常。通常,DWG要好得多。 
查看REVCLOUD命令的所有选项,因为它实际上在例程中使用。请参见此行:
在有“n”的地方,如果你想要书法,你应该放“c”。就这么简单。弧长选项也可能有用。
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 00:51:03 | 显示全部楼层
好的,根据我之前的回复,你应该正在解决主要问题的路上。 
我不清楚你在输入方面的问题。您建议如何设置它,以便只需按Enter键即可选择您想要的内容?好吧,只有当你总是选择默认值时,这才有效。Marko设置了3个选项,因为这就是你所指出的。你真的只有一个选择吗?在这种情况下,您甚至不需要按Enter键。只是把它硬编码到例程中。也许你有一个主要的选择,而其他的并不常见?然后,将其设置为默认值。如果您有其他想法,但不知道如何实现,请更清楚地说明,包括显示您想象的提示应该是什么样子。这是一种真正能帮助别人为你解决问题的方法。顺便问一下,你的D.E和E.O.S.代表什么?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:26 , Processed in 0.423718 second(s), 72 queries .

© 2020-2025 乐筑天下

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