乐筑天下

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

[编程交流] 深入CIV3d风格

[复制链接]

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:50:52 | 显示全部楼层
现在到达那里将生成输出的csv文件,以便可以排序等,需要设置重复循环,然后再次执行所有操作,一个问题'AlignmentLabelStyles,同时我可以通过dump获取它们的名称,再次努力将其作为变量返回。最终也会做点什么。
 
  1. (load "vercheck")
  2. (AH:vercheck)
  3. ;Get the Alignment Label Styles
  4. (setq als (vlax-get-property *AeccDoc* 'AlignmentLabelStyles))
  5. ; Property values:
  6. ;   CurveLabelStyles
  7. ;   DesignSpeedLabelStyles
  8. ;   GeometryPointLabelStyles >
  9. ;   LineLabelStyles
  10. ;   MajorStationLabelStyles
  11. ;   MinorStationLabelStyles
  12. ;   SpiralLabelStyles
  13. ;   StationEquationLabelStyles
  14. ;   StationOffsetLabelStyles
  15. ;   TangentIntersectionLabelStyles
  16. ;Get the Line Label Styles
  17. (setq lls (vlax-get-property als 'LineLabelStyles))
  18. ; (vla-get-count lls)  ; is how many style names
  19. ;Get the Style
  20. (setq style (vlax-get-property lls 'Item 0))  ; count is number of styles start at 0
  21. ; (vla-get-Name style) is style name
  22. ;Get the Label Properties
  23. (setq lp (vlax-get-property style 'LabelProperties))
  24. ;Get the Aecc Layer Properties
  25. (setq lay (vlax-get-property lp 'Layer))
  26. ;Get the Name of the Layer
  27. (setq layname (vlax-get-property lay 'Value))
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:55:37 | 显示全部楼层
由于点样式从更高级别开始,从点开始的方法略有不同。
 
明天我会发布对齐代码,可能会从点开始。这是一个使用Vlax转储对象获取下一级信息的例子。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:58:53 | 显示全部楼层
这是一个开始,我现在已经跳到要点,我要做的是提供一个代码示例,但将提供一个词。通过VLAX-DUMP突出显示子实体,以便您可以看到树并添加您可能想要自定义的任何“组件”设置,我需要将其作为点样式,例如8个组件和大约6个+项目=48个+变量。甚至可以将树中的代码粘贴到Autocad DWG中。我遇到的一件事是在标签样式中使用块。重新缩放的问题意味着更改8个组件。见下文
 
  1. (defun getstyleinfo (count stname / stylname lp lay layname)
  2. ;Get the Style info and write out
  3. (setq x 0)
  4. (repeat count
  5. (setq style (vlax-get-property lls 'Item x))  ; count is number of styles start at 0
  6. (setq stylname (vla-get-Name style)); is style name
  7. ;Get the Label Properties
  8. (setq lp (vlax-get-property style 'LabelProperties))
  9. ;Get the Aecc Layer Properties
  10. (setq lay (vlax-get-property lp 'Layer))
  11. ;Get the Name of the Layer
  12. (setq layname (vlax-get-property lay 'Value))
  13. (write-line (strcat stname "," stylname "," layname) fo)
  14. (setq x (+ x 1))
  15. )
  16. )
  17. (load "vercheck")
  18. (AH:vercheck)
  19. ;Get the Alignment Label Styles
  20. (setq als (vlax-get-property *AeccDoc* 'AlignmentLabelStyles))
  21. ; Property values:
  22. ;   CurveLabelStyles
  23. ;   DesignSpeedLabelStyles
  24. ;   GeometryPointLabelStyles
  25. ;   LineLabelStyles
  26. ;   MajorStationLabelStyles
  27. ;   MinorStationLabelStyles
  28. ;   SpiralLabelStyles
  29. ;   StationEquationLabelStyles
  30. ;   StationOffsetLabelStyles
  31. ;   TangentIntersectionLabelStyles
  32. (setq fo (open "c:\\temp\\aligns2.lst" "W"))
  33. ;Get the Line Label Styles
  34. (setq stname "CurveLabelStyles")
  35. (setq lls (vlax-get-property als 'CurveLabelStyles))
  36. (setq count (vla-get-count lls))  ; is how many style names
  37. (getstyleinfo count stname)
  38. (setq stname "DesignSpeedLabelStyles")
  39. (setq lls (vlax-get-property als 'DesignSpeedLabelStyles))
  40. (setq count (vla-get-count lls))  ; is how many style names
  41. (getstyleinfo count stname)
  42. (setq stname "GeometryPointLabelStyles")
  43. (setq lls (vlax-get-property als 'GeometryPointLabelStyles))
  44. (setq count (vla-get-count lls))  ; is how many style names
  45. (getstyleinfo count stname)
  46. (setq stname "LineLabelStyles")
  47. (setq lls (vlax-get-property als 'LineLabelStyles))
  48. (setq count (vla-get-count lls))  ; is how many style names
  49. (getstyleinfo count stname)
  50. (setq stname "MajorStationLabelStyles")
  51. (setq lls (vlax-get-property als 'MajorStationLabelStyles))
  52. (setq count (vla-get-count lls))  ; is how many style names
  53. (getstyleinfo count stname)
  54. (setq stname "CurveLabelStyles")
  55. (setq lls (vlax-get-property als 'CurveLabelStyles))
  56. (setq count (vla-get-count lls))  ; is how many style names
  57. (getstyleinfo count stname)
  58. (setq stname "MinorStationLabelStyles")
  59. (setq lls (vlax-get-property als 'MinorStationLabelStyles))
  60. (setq count (vla-get-count lls))  ; is how many style names
  61. (getstyleinfo count stname)
  62. (setq stname "SpiralLabelStyles")
  63. (setq lls (vlax-get-property als 'SpiralLabelStyles))
  64. (setq count (vla-get-count lls))  ; is how many style names
  65. (getstyleinfo count stname)
  66. (setq stname "StationEquationLabelStyles")
  67. (setq lls (vlax-get-property als 'StationEquationLabelStyles))
  68. (setq count (vla-get-count lls))  ; is how many style names
  69. (getstyleinfo count stname)
  70. (setq stname "TangentIntersectionLabelStyles")
  71. (setq lls (vlax-get-property als 'TangentIntersectionLabelStyles))
  72. (setq count (vla-get-count lls))  ; is how many style names
  73. (getstyleinfo count stname)
  74. (close fo)
  75. (princ)

 
img-218115827-0001。pdf
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 21:02:48 | 显示全部楼层
比加尔,
 
我喜欢你在这里试图做的事情的意图。我也在努力寻找使用特定图层的风格。不过,我会想象这种方法会略有不同。
 
我设想了一个函数,该函数将返回使用给定层名称的所有样式(样式名称)。然后遍历所有样式并返回使用该特定层的样式。我还会检查“对象层”,看看那里是否也使用了该层。我还可以想象一个函数除了查找使用特定块的样式外,还可以做相同的事情。
 
在某种意义上,这就是你想要实现的吗?
 
当做
 
hippe013
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:06:29 | 显示全部楼层
Hippe013我们希望清理我们的模板,消除层命名和管理中的一些过度热情。
 
最终结果将是一个csv文件,我们可以将更改添加到该文件中,然后重新运行相反的文件来更新许多值。可能会添加更多内容,如文字样式颜色等。
 
第三部分是转储到excel,并使用它通过复制和修改来创建新样式。
 
关键的事情来了,有点费时。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:09:51 | 显示全部楼层
还有一点,做了一些研究,在Blackbox的AUGI论坛上发现了一些不错的链接,这些链接涉及可用的商业软件,这些软件在层名称和使用它的风格方面做得很好。目前,我们只需下载csv并使用excel对计数进行排序等,最终的方法是反向处理,将csv+新图层名,返回到样式中,然后处理更多方面,如缩放预定义的标签样式。
 
任何人,如果你创建一个点样式这个例子TBM ie x y z D在一个盒子里使用一个块,我找不到任何全局比例因子,但属性指的是x-y比例?如果你改变旋转角度,它就会起作用
 
  1. ;(defun getstyleinfo ( / count ptstys stylname lp lay layname)
  2. ;Get the Style info and write out
  3. (if (not AH:vercheck) (load "vercheck"))
  4. (AH:vercheck)
  5. ;(setq fo (open "c:\\temp\\aligns2.lst" "W"))
  6. Alignment Label Styles
  7. (setq ptstys (vlax-get-property *AeccDoc* 'PointLabelStyles))
  8. (setq count (vla-get-count ptstys))  ; is how many style names
  9. (setq lblstyl1 (vlax-get-property Ptstys 'item 0)) ; gets the first lable style use repeat to walk through item x
  10. ; Property values a dump of lblsty1
  11. ;   Application (RO) = #<VLA-OBJECT IAeccApplication 000000002fcff590>
  12. ;   BlockComponents (RO) = #<VLA-OBJECT IAeccLabelStyleBlockComponents 000000002fcfecc0>
  13. ;   Children (RO) = #<VLA-OBJECT IAeccLabelStyles 000000002fceb588>
  14. ;   CreatedBy = "autodesk"
  15. ;   DateCreated (RO) = "21/08/2004 12:50:58 AM"
  16. ;   DateModified (RO) = "18/06/2007 5:31:48 PM"
  17. ;   Descendants (RO) = #<VLA-OBJECT IAeccLabelStyles 000000002fceaec8>
  18. ;   Description = "Point Number"
  19. ;   DirectionArrowComponents (RO) = #<VLA-OBJECT IAeccLabelStyleDirectionArrowComponents 000000002fcff080>
  20. ;   Document (RO) = #<VLA-OBJECT IAeccDocument 000000002fcfeb10>
  21. ;   DraggedComponentStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedComponentStyle 000000002fcfed80>
  22. ;   DraggedLeaderStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedLeaderStyle 000000002fcfe630>
  23. ;   Handle (RO) = "F663"
  24. ;   HasExtensionDictionary (RO) = 0
  25. ;   LabelProperties (RO) = #<VLA-OBJECT IAeccLabelStyleProperties 000000002fcfee10>
  26. ;   LineComponents (RO) = #<VLA-OBJECT IAeccLabelStyleLineComponents 000000002fcfe780>
  27. ;   ModifiedBy (RO) = "GH0276"
  28. ;   Name = "_COGG Point Number"
  29. ;   ObjectID (RO) = 48
  30. ;   ObjectID32 (RO) = 48
  31. ;   ObjectName (RO) = "AeccDbLabelStyleCollector"
  32. ;   OwnerID (RO) = 49
  33. ;   OwnerID32 (RO) = 49
  34. ;   Parent (RO) = #<VLA-OBJECT IAeccLabelStyle 00000000306bb2d0>
  35. ;   TextComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTextComponents 000000002fcfe750>
  36. ;   TickComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTickComponents 000000002fcfe2d0>
  37. ;   Type (RO) =:
  38. ;   Application (RO) = #<VLA-OBJECT IAeccApplication 000000002fcff590>
  39. ;   BlockComponents (RO) = #<VLA-OBJECT IAeccLabelStyleBlockComponents 000000002fcfecc0>
  40. ;   Children (RO) = #<VLA-OBJECT IAeccLabelStyles 000000002fceb588>
  41. ;   CreatedBy = "autodesk"
  42. ;   DateCreated (RO) = "21/08/2004 12:50:58 AM"
  43. ;   DateModified (RO) = "18/06/2007 5:31:48 PM"
  44. ;   Descendants (RO) = #<VLA-OBJECT IAeccLabelStyles 000000002fceaec8>
  45. ;   Description = "Point Number"
  46. ;   DirectionArrowComponents (RO) = #<VLA-OBJECT IAeccLabelStyleDirectionArrowComponents 000000002fcff080>
  47. ;   Document (RO) = #<VLA-OBJECT IAeccDocument 000000002fcfeb10>
  48. ;   DraggedComponentStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedComponentStyle 000000002fcfed80>
  49. ;   DraggedLeaderStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedLeaderStyle 000000002fcfe630>
  50. ;   Handle (RO) = "F663"
  51. ;   HasExtensionDictionary (RO) = 0
  52. ;   LabelProperties (RO) = #<VLA-OBJECT IAeccLabelStyleProperties 000000002fcfee10>
  53. ;   LineComponents (RO) = #<VLA-OBJECT IAeccLabelStyleLineComponents 000000002fcfe780>
  54. ;   ModifiedBy (RO) = "GH0276"
  55. ;   Name = "_Point Number"
  56. ;   ObjectID (RO) = 48
  57. ;   ObjectID32 (RO) = 48
  58. ;   ObjectName (RO) = "AeccDbLabelStyleCollector"
  59. ;   OwnerID (RO) = 49
  60. ;   OwnerID32 (RO) = 49
  61. ;   Parent (RO) = #<VLA-OBJECT IAeccLabelStyle 00000000306bb2d0>
  62. ;   TextComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTextComponents 000000002fcfe750>
  63. ;   TickComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTickComponents 000000002fcfe2d0>
  64. ;   Type (RO) = 15
  65. (setq txtcomps (vlax-get lblstyl1 'LabelProperties))
  66. (setq stname (vlax-get lblstyl1 'name)) ; name of label
  67. ; Property values:
  68. ;   ForcedInsertion (RO) = #<VLA-OBJECT IAeccPropertyEnumForcedInsertion 00000000304e51b0>
  69. ;   ForceInsideCurve (RO) = #<VLA-OBJECT IAeccPropertyBoolean 00000000304de220>
  70. ;   Layer (RO) = #<VLA-OBJECT IAeccPropertyLayer 00000000304e4250>
  71. ;   OrientationReference (RO) = #<VLA-OBJECT IAeccPropertyEnumOrientationReference 00000000304e0b00>
  72. ;   PlanReadable (RO) = #<VLA-OBJECT IAeccPropertyBoolean 00000000304e26f0>
  73. ;   PlanReadableBias (RO) = #<VLA-OBJECT IAeccPropertyDouble 00000000304defd0>
  74. ;   PlanReadableFlipAnchors (RO) = #<VLA-OBJECT IAeccPropertyBoolean 00000000304de7c0>
  75. ;   TagDisplayMode (RO) = #<VLA-OBJECT IAeccPropertyBoolean 00000000304df0c0>
  76. ;   TextStyle (RO) = #<VLA-OBJECT IAeccPropertyTextStyle 00000000304df630>
  77. ;   Visibility (RO) = #<VLA-OBJECT IAeccPropertyBoolean 00000000304de670>
  78. ;   YOffset (RO) = #<VLA-OBJECT IAeccPropertyDouble 00000000304e30e0>
  79. (setq lay (vlax-get-property txtcomps 'layer))
  80. (setq LayVal (vlax-get-property lay 'value)) ;this is layer name for Stname
  81. ;(setq xOff (vlax-get-property txtcomps 'XOffset))
  82. ;(setq xVal (vlax-get-property xOff 'value))
  83. ;(setq yOff (vlax-get-property txtcomps'YOffset))
  84. ;(setq yVal (vlax-get-property yOff 'value))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:29 , Processed in 0.871492 second(s), 63 queries .

© 2020-2025 乐筑天下

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