乐筑天下

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

[编程交流] 坐标dime的Lisp例程

[复制链接]

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 22:56:15 | 显示全部楼层 |阅读模式
你好
 
我正在寻找一些帮助来创建lisp例程。
 
我希望从一个特定点创建一个具有X和Y维度的引线。
 
我找到了一些代码并对其进行了修改以显示英尺和英寸。
 
出于某种原因,我将UCS设置为我正在标注尺寸的工件的底部中心点,但当我运行lisp例程并选择基点时,我不会得到零值。
 
我真正想要的是一个例程,它会询问基点,然后让我单击对象周围的点,直到完成。
 
这是我现在拥有的代码。有人知道为什么我在基点处没有得到零值吗?如果可能的话,例程可以先求基点吗?
 
谢谢你的帮助。
 
顺便说一句,我对编程一无所知!
  1. (defun C:xy (/ oldecho pt1 pt2 txtx txty )
  2. (setq oldecho (getvar "cmdecho" ))
  3. (setvar "cmdecho" 0)
  4. (setq pt1 (getpoint "\nPick coordinate point: "))
  5. (if pt1
  6. (progn
  7. (setq pt2 (getpoint pt1 "\nPick text location: "))
  8. (if pt2
  9. (progn
  10. (setq txtx (strcat "W:" (rtos (car pt2) 4 3) " "))
  11. (setq txty (strcat "H:" (rtos (cadr pt2) 4 3) "\n"))
  12. (command "leader" pt1 pt2 "Annotation" txtx txty "")
  13. )
  14. )
  15. )
  16. )
  17. (setvar "cmdecho" oldecho)
  18. (princ)
  19. )
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-5 23:20:11 | 显示全部楼层
试试这个,没有经过广泛测试
  1. (defun C:xy (/ oldecho pt1 pt2 txtx txty )
  2. (setq oldecho (getvar "cmdecho" ))
  3. (setvar "cmdecho" 0)
  4. (setq ptb (getpoint "Pick base point: "))
  5. (command "ucs" "o" ptb)
  6. (setq pt1 T)
  7. (while  (not (null pt1))
  8. (setq pt1 (getpoint "\nPick coordinate point: "))
  9. (if pt1
  10. (progn
  11. (setq pt2 (getpoint  pt1 "\nPick text location: "))
  12. (if pt2
  13. (progn
  14. (setq txtx (strcat "W:" (rtos (car pt1) 4 3) " "))
  15. (setq txty (strcat "H:" (rtos (cadr pt1) 4 3) "\n"))
  16. (command "leader" pt1 pt2 "Annotation" txtx txty "")
  17. )
  18. )
  19. )
  20. )
  21. );while
  22. (setvar "cmdecho" oldecho)
  23. (princ)
  24. )
回复

使用道具 举报

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:30:59 | 显示全部楼层
这正是我想要的,谢谢!
 
它正是我所需要的,但我对格式有几个问题:
 
有没有办法放大文本周围的方框?我一直在搞乱代码,它似乎要么打开要么关闭。它看起来像是在触摸文本。
 
可以修改例程以先显示高度,然后显示宽度吗?我在别处找到了一个例程,它将值存储为A1、A2,切换它们很简单。
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-5 23:34:34 | 显示全部楼层
这将修复H W交换,但对于长方体,这可能是在尺寸样式中设置的。代码无法控制它。
盒子的大小由DIMGAP变量控制;用负数得到一个盒子;我用的是-0.1,在我的电脑上看起来很好,你可能需要实验才能让它看起来像你想要的那样。我添加了几行来设置dimgap。由于没有错误控制,您需要按enter键退出例程,因此Esc不会重置变量。
  1. (defun C:xy (/ oldecho pt1 pt2 txth txtw dg )
  2. (setq oldecho (getvar "cmdecho" )
  3.               dg (getvar "dimgap")
  4. );setq
  5. (setvar "cmdecho" 0)
  6. (setvar "dimgap" -0.1)
  7. (setq ptb (getpoint "Pick base point: "))
  8. (command "ucs" "o" ptb)
  9. (setq pt1 T)
  10. (while  (not (null pt1))
  11. (setq pt1 (getpoint "\nPick coordinate point: "))
  12. (if pt1
  13. (progn
  14. (setq pt2 (getpoint  pt1 "\nPick text location: "))
  15. (if pt2
  16. (progn
  17. (setq txth (strcat "H:" (rtos (cadr pt1) 4 3) " "))
  18. (setq txtw (strcat "W:" (rtos (car pt1) 4 3) "\n"))
  19. (command "leader" pt1 pt2 "Annotation" txth txtw "")
  20. )
  21. )
  22. )
  23. )
  24. );while
  25. (setvar "cmdecho" oldecho)
  26. (setvar "dimgap" dg)
  27. (princ)
  28. )
回复

使用道具 举报

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:45:38 | 显示全部楼层
再次感谢。这正是我想要的。
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:01:46 | 显示全部楼层
我使用CraneGuy和lpseifert的lisp例程创建了类似的东西,只是稍微修改了代码:
变化:
-H: &W:已切换到x:&y:
-分离的x:&y:lisp(defun C:xy和(defun C:yx)生成“x”或“y”轴坐标尺寸
-消除了文本周围的框(setvar“dimgap”0
-设置默认的DimStyle(命令“-DimStyle”
-添加了层搜索/层创建者(tblesearch“层”)
-将新层设置为当前层(setvar“clayer”)
 
它工作得很好,我想把它展示给任何其他可能需要这样的东西或给别人更多想法的人。。。
顺便说一句,我是一个n00b的lisp,我只使用的想法,我可以在网上找到并调试它,直到它一起工作得很好。
  1. ;;;
  2. ;;; ========================= X Ordinates for In-Wall ===========================
  3. ;;;
  4. (defun C:xy (/ oldecho pt1 pt2 txtx txty dg )
  5. (setq oldecho (getvar "cmdecho" )
  6.               dg (getvar "dimgap")
  7. );setq
  8. (setvar "cmdecho" 0)
  9. (setvar "dimgap" 0)
  10. (setq ptb (getpoint "Pick base point: "))
  11. (command "ucs" "o" ptb)
  12. (setq pt1 T)
  13. (while  (not (null pt1))
  14. (setq pt1 (getpoint "\nPick coordinate point: "))
  15. (if pt1
  16. (progn
  17. (setq pt2 (getpoint  pt1 "\nPick text location: "))
  18. (if pt2
  19. (progn
  20. (setq txtx (strcat "y:" (rtos (cadr pt1) 4 3) " "))
  21. (setq txty (strcat "x:" (rtos (car pt1) 4 3) "\n"))
  22. (command "-dimstyle" "r" "BLA 32 Ordinates")
  23. (if (null (tblsearch "layer" "B-DimXYOrdinates"))
  24. (command "-layer" "Make" "B-DimXYOrdinates" "C" "140" "" "L" "Continuous" "" "LW" ".25" "" "D" "B-DimXYOrdinates = Dimensional In-Wall Layout" "B-DimXYOrdinates" "")
  25. (setvar "clayer" "B-DimXYOrdinates")
  26. )
  27. (command "leader" pt1 pt2 "Annotation" txty "")
  28. )
  29. )
  30. )
  31. )
  32. );while
  33. (setvar "cmdecho" oldecho)
  34. (setvar "dimgap" dg)
  35. (princ)
  36. )
  37. ;;;
  38. ;;; ========================= Y Ordinates for In-Wall ===========================
  39. ;;;
  40. (defun C:yx (/ oldecho pt1 pt2 txtx txty dg )
  41. (setq oldecho (getvar "cmdecho" )
  42.               dg (getvar "dimgap")
  43. );setq
  44. (setvar "cmdecho" 0)
  45. (setvar "dimgap" 0)
  46. (setq ptb (getpoint "Pick base point: "))
  47. (command "ucs" "o" ptb)
  48. (setq pt1 T)
  49. (while  (not (null pt1))
  50. (setq pt1 (getpoint "\nPick coordinate point: "))
  51. (if pt1
  52. (progn
  53. (setq pt2 (getpoint  pt1 "\nPick text location: "))
  54. (if pt2
  55. (progn
  56. (setq txtx (strcat "y:" (rtos (cadr pt1) 4 3) " "))
  57. (setq txty (strcat "x:" (rtos (car pt1) 4 3) "\n"))
  58. (command "-dimstyle" "r" "BLA 32 Ordinates")
  59. (if (null (tblsearch "layer" "B-DimXYOrdinates"))
  60. (command "-layer" "Make" "B-DimXYOrdinates" "C" "140" "" "L" "Continuous" "" "LW" ".25" "" "D" "B-DimXYOrdinates = Dimensional In-Wall Layout" "B-DimXYOrdinates" "")
  61. (setvar "clayer" "B-DimXYOrdinates")
  62. )
  63. (command "leader" pt1 pt2 "Annotation" txtx "")
  64. )
  65. )
  66. )
  67. )
  68. );while
  69. (setvar "cmdecho" oldecho)
  70. (setvar "dimgap" dg)
  71. (princ)
  72. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 02:57 , Processed in 1.038879 second(s), 64 queries .

© 2020-2025 乐筑天下

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