乐筑天下

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

[编程交流] 拾取尺寸以设置dimst

[复制链接]

170

主题

347

帖子

174

银币

中流砥柱

Rank: 25

铜币
870
发表于 2022-7-6 15:11:04 | 显示全部楼层 |阅读模式
拾取尺寸以设置dimstyle特性,AutoCAD 2009。
 
有人做了一个程序来匹配dimstyle吗
属性设置为拾取的标注。
 
允许用户选择
标注对象并具有所有dimstyle特性
匹配该维度?
 
使用VBA或Lisp。
 
非常感谢。
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 15:20:42 | 显示全部楼层
如果它有过多功能,您是否希望更新样式以包含过多功能?您是否正在尝试更新现有样式以匹配您选择的样式?如果可以选择尺寸,则该样式似乎已存在于该图形中。
回复

使用道具 举报

170

主题

347

帖子

174

银币

中流砥柱

Rank: 25

铜币
870
发表于 2022-7-6 15:30:43 | 显示全部楼层
好的,是的,匹配文本样式,但我更感兴趣的是暗文本高度,箭头大小,暗偏移等,这将保持一个人手动重置变量,以获得匹配的暗设置。
 
非常感谢。
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:35:05 | 显示全部楼层
我还一直在寻找一个例程,将尺寸变量从一个dimstyle匹配到另一个dimstyle(在我工作的地方,图形是以“传统”的方式完成的,每个比例有一个dimstyle;许多图形有几个不同的比例模型和一系列尺寸样式,它们看起来几乎总是不同的)。
 
我还没有在网上找到这个,所以我可能只是自己写LISP。其想法是使用entget和assoc获得原始DimStyle的每个变量的值,然后相应地entmod目标DimStyle(Dimscale除外)的每个变量,将组码可能与“if”函数匹配。如果我做完了,我会把它寄出去。这可能是一个相当简单的函数,我只是还没有开始讨论它。
 
我还需要一个维度风格的合并工具(如txtmrg),但这是另一个主题,可能超出了我的编程能力。
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 15:47:09 | 显示全部楼层
不确定这是否是你想要的。
GetDimorText。lsp
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 15:52:03 | 显示全部楼层
在大家的帮助下,我制作了一个不需要任何DimStyles的lisp:
 
我称之为AIX\u DIMVariabler。保存我想要的所有变量的lsp。
然后,我调用了我想通过菜单访问的不同尺寸样式的变量。
 
 
这是AIX\u DimVariabler。lsp您可以删除(如果…样式行导致我搜索应在dimstyles中的样式)。
我搜索AIX\u ISO,如果没有,我通过C:AIXTXT加载它。。。
如果你想删除这行,你可以
(setvar“dimtxsty”“AIX\u ISO”)
或者将其设置为标准或其他。。。
 
(变量):
 
  1. defun dim_variabler ()
  2. (if (not (tblsearch "style" "AIX_ISO"))
  3.    (C:AIXTXT)
  4. )
  5. (setvar "dimadec" 0)
  6. (setvar "dimalttz" 0)
  7. (setvar "dimcen" 4.0)
  8. (setvar "dimdec" 0)
  9. (setvar "dimtix" 0)
  10. (setvar "dimatfit" 3)
  11. (setvar "dimtmove" 2)
  12. (setvar "dimdli" 3)
  13. (setvar "dimdsep" ",")
  14. (setvar "dimdle" 2.0)
  15. (setvar "dimexe" 2.0)
  16. (setvar "dimexo" 3.0)
  17. (setvar "dimlfac" 1)
  18. (command "dimtxt" 3.0)
  19. (command "dimtih" "off")
  20. (command "dimtoh" "off")
  21. (setvar "dimtxsty" "AIX_ISO")
  22. )
  23. (defun LinjerDim ()
  24. (setvar "dimgap" 1)
  25. (setvar "dimjust" 0)
  26. (command "dimsd1" "off")
  27. (command "dimse1" "off")
  28. (setvar "dimtad" 1)
  29. (setvar "dimasz" 3)
  30. ;;;    (setvar "dimanno" 1) ;annotative måttsättning
  31. (setvar "dimblk" "Oblique")
  32. (setvar "dimblk1" "Oblique")
  33. (setvar "dimblk2" "Oblique")
  34.     ;(setvar "dimclrd" 4)
  35. (setvar "dimclrt" 1)
  36. (setvar "dimdle" 2)
  37. )
  38. (defun PilDim ()
  39. (setvar "dimgap" 1)
  40. ;;;    (setvar "dimanno" 1) ;annotative måttsättning
  41. (setvar "dimjust" 2)
  42. (setvar "dimtad" 2)
  43. (setvar "dimasz" 3)
  44. (setvar "dimblk1" "None")
  45. (setvar "dimblk2" "Open90")
  46. (setvar "dimldrblk" "None")
  47. (setvar "dimclrt" 1)
  48.     ;(setvar "dimclrd" 1)
  49. (command "dimsah" "ON")
  50. (command "dimsd1" "ON")
  51. (command "dimsd2" "OFF")
  52. (command "dimsoxd" "OFF")
  53. (command "dimse1" "ON")
  54. (command "dimse2" "OFF")
  55. (setvar "dimdle" 0)
  56. )
  57. ;;

 
这是AIX\u Dim。lsp那个尺寸。。我在这里所做的更改只是,我根据比例进行放大:(setvar“dimscale”1)
 
  1. (defun C:AIX:DIM1 (/ cDim oldlay)
  2. (setq oldlay (getvar "clayer"))
  3. (vl-load-com)
  4. (if (not (tblsearch "LAYER" "A-------D2-------A"))
  5.            (command "-layer" "M" "A-------D2-------A" "C" "cyan" "A-------D2-------A" "")
  6.            (setvar "clayer" "A-------D2-------A")
  7.            ) ; end if
  8.      (load "K:\\CAD\\AIX-meny-2008\\Lisp\\Dim\\AIX_DimVariabler.lsp")
  9.      (Dim_Variabler)
  10.      (LinjerDim)
  11. (setvar "dimscale" 1)  
  12. (setq p1 (getpoint "\nVälj Första Punkten: "))
  13. (setq p2 (getpoint p1 "\nVälj andra Punkten: "))
  14. (setq p3 (getpoint p2 "\nAnge Placering: "))
  15. (princ)
  16. (and(vl-cmdf "_.dimlinear" p1 p2 p3)
  17.    (setq cDim(vlax-ename->vla-object(entlast)))
  18.    (vla-get-Measurement cDim))
  19. (setvar "clayer" oldlay)
  20. (princ)
  21. ); end
  22. ;;; Detalj_Måttsättning 1:5
  23. (defun C:AIX:DIM5 (/ cDim oldlay)
  24. (setq oldlay (getvar "clayer"))
  25. (vl-load-com)
  26. (if (not (tblsearch "LAYER" "A-------D2-------B"))
  27.            (command "-layer" "M" "A-------D2-------B" "C" "cyan" "A-------D2-------B" "")
  28.            (setvar "clayer" "A-------D2-------B")
  29.            ) ; end if
  30. (load "K:\\CAD\\AIX-meny-2008\\Lisp\\Dim\\AIX_DimVariabler.lsp")
  31.      (Dim_Variabler)
  32.      (LinjerDim)
  33. (setvar "dimscale" 5)  
  34. (setq p1 (getpoint "\nVälj Första Punkten: "))
  35. (setq p2 (getpoint p1 "\nVälj andra Punkten: "))
  36. (setq p3 (getpoint p2 "\nAnge Placering: "))
  37. (princ)
  38. (and(vl-cmdf "_.dimlinear" p1 p2 p3)
  39.    (setq cDim(vlax-ename->vla-object(entlast)))
  40.    (vla-get-Measurement cDim))
  41. (setvar "clayer" oldlay)
  42. (princ)
  43. ); end
  44. ;;; Detalj_Måttsättning 1:10
  45. (defun C:AIX:DIM10 (/ cDim oldlay)
  46. (setq oldlay (getvar "clayer"))
  47. (vl-load-com)
  48. (if (not (tblsearch "LAYER" "A-------D2-------C"))
  49.            (command "-layer" "M" "A-------D2-------C" "C" "cyan" "A-------D2-------C" "")
  50.            (setvar "clayer" "A-------D2-------C")
  51.            ) ; end if
  52. (load "K:\\CAD\\AIX-meny-2008\\Lisp\\Dim\\AIX_DimVariabler.lsp")
  53.      (Dim_Variabler)
  54.      (LinjerDim)
  55. (setvar "dimscale" 10)  
  56. (setq p1 (getpoint "\nVälj Första Punkten: "))
  57. (setq p2 (getpoint p1 "\nVälj andra Punkten: "))
  58. (setq p3 (getpoint p2 "\nAnge Placering: "))
  59. (princ)
  60. (and(vl-cmdf "_.dimlinear" p1 p2 p3)
  61.    (setq cDim(vlax-ename->vla-object(entlast)))
  62.    (vla-get-Measurement cDim))
  63. (setvar "clayer" oldlay)
  64. (princ)
  65. ); end
  66. ;;; Det_Måttsättning 1:20
  67. (defun C:AIX:DIM20 (/ cDim oldlay)
  68. (setq oldlay (getvar "clayer"))
  69. (vl-load-com)
  70. (if (not (tblsearch "LAYER" "A-------D2-------D"))
  71.            (command "-layer" "M" "A-------D2-------D" "C" "cyan" "A-------D2-------D" "")
  72.            (setvar "clayer" "A-------D2-------D")
  73.            ) ; end if
  74. (load "K:\\CAD\\AIX-meny-2008\\Lisp\\Dim\\AIX_DimVariabler.lsp")
  75.      (Dim_Variabler)
  76.      (LinjerDim)
  77. (setvar "dimscale" 20)
  78. (setq p1 (getpoint "\nVälj Första Punkten: "))
  79. (setq p2 (getpoint p1 "\nVälj andra Punkten: "))
  80. (setq p3 (getpoint p2 "\nAnge Placering: "))
  81. (princ)
  82. (and(vl-cmdf "_.dimlinear" p1 p2 p3)
  83.    (setq cDim(vlax-ename->vla-object(entlast)))
  84.    (vla-get-Measurement cDim))
  85. (setvar "clayer" oldlay)
  86. (princ)
  87. ); end
  88. (defun C:AIX:DIMPIL100 (/ cDim oldlay)
  89. (setq oldlay (getvar "clayer"))
  90. (vl-load-com)
  91. (if (not (tblsearch "LAYER" "A-------Z1-------F"))
  92.            (command "-layer" "M" "A-------Z1-------F" "C" "cyan" "A-------Z1-------F" "")
  93.            (setvar "clayer" "A-------Z1-------F")
  94.            ) ; end if
  95. (load "K:\\CAD\\AIX-meny-2008\\Lisp\\Dim\\AIX_DimVariabler.lsp")
  96.      (Dim_Variabler)
  97.      (PilDim)
  98. (setvar "dimscale" 100)
  99. (setq p1 (getpoint "\nVälj Första Punkten: "))
  100. (setq p2 (getpoint p1 "\nVälj andra Punkten: "))
  101. (setq p3 (getpoint p2 "\nAnge Placering: "))
  102. (princ)
  103. (and(vl-cmdf "_.dimlinear" p1 p2 p3)
  104.    (setq cDim(vlax-ename->vla-object(entlast)))
  105.    (vla-get-Measurement cDim))
  106. (setvar "clayer" oldlay)
  107. (princ)
  108. ); end
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 16:01:40 | 显示全部楼层
您的例程允许将选定图元的图层、DimStyle和文字样式设置为当前。不错,但我们讨论的是(如果我错了,请纠正我)类似“Matchprop”的函数,它将获取源DimStyle的变量值,并将其应用于不同比例的目标DimStyle。可能类似于“检查标准”,但简化了。 
我肯定这已经完成了,我只是还没有找到。
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 16:10:34 | 显示全部楼层
看看特里先生的dm。lsp:
 
http://web2.airmail.net/terrycad/AutoLISP-Code.htm
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 16:13:59 | 显示全部楼层
谢谢你的链接,好先生。 
DM。lsp实际上修改的是选定的维度实体,而不是它们的DimStyle(表对象),但可以根据需要应用此代码的概念。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:17 , Processed in 0.408703 second(s), 70 queries .

© 2020-2025 乐筑天下

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