乐筑天下

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

[编程交流] 将此代码更改为以C语言运行

[复制链接]

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 06:55:49 | 显示全部楼层 |阅读模式
我从某人那里偷了这个代码并修改了它。它可能效率极低,但我几乎不知道自己在做什么。不管怎样,它所做的是将块库中的一组块插入到图形中。我肯定有人有一个10行代码,我很乐意偷。
 
我希望能够更改它,以便可以将其作为命令与脚本一起运行,因为我有一些其他代码块,我正在与脚本一起运行,我想添加这个代码块。我如何修改这个?
 
  1. (defun open_dbx (dwg / dbx)
  2. (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
  3. (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
  4. (setq dbx (vlax-create-object
  5. (strcat "ObjectDBX.AxDbDocument."
  6. (substr (getvar "ACADVER") 1 2)))))
  7. (vla-open dbx dwg)
  8. dbx
  9. )
  10. ;Get "Valve" in 'ValveBlock_TapCard.dwg" file :
  11. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/ValveBlock_TapCard.dwg")) ; file name containing block
  12. (vla-CopyObjects
  13. Dbx
  14. (vlax-safearray-fill
  15. (vlax-make-safearray vlax-vbObject '(0 . 0))
  16. (list (vla-item (vla-get-blocks dbx) "Valve")))
  17. (vla-get-blocks
  18. (vla-get-activedocument (vlax-get-acad-object))))
  19. (vlax-release-object dbx) ;Clean-up
  20. ;Next block import
  21. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/ManholeBlock_TapCard.dwg")) ; file name containing block
  22. (vla-CopyObjects
  23. Dbx
  24. (vlax-safearray-fill
  25. (vlax-make-safearray vlax-vbObject '(0 . 0))
  26. (list (vla-item (vla-get-blocks dbx) "Manhole")))
  27. (vla-get-blocks
  28. (vla-get-activedocument (vlax-get-acad-object))))
  29. (vlax-release-object dbx) ;Clean-up
  30. ;Next block import
  31. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/BuildingBlock_TapCard.dwg")) ; file name containing block
  32. (vla-CopyObjects
  33. Dbx
  34. (vlax-safearray-fill
  35. (vlax-make-safearray vlax-vbObject '(0 . 0))
  36. (list (vla-item (vla-get-blocks dbx) "Building")))
  37. (vla-get-blocks
  38. (vla-get-activedocument (vlax-get-acad-object))))
  39. (vlax-release-object dbx) ;Clean-up
  40. ;Next block import
  41. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/CurbValveBlock_TapCard.dwg")) ; file name containing block
  42. (vla-CopyObjects
  43. Dbx
  44. (vlax-safearray-fill
  45. (vlax-make-safearray vlax-vbObject '(0 . 0))
  46. (list (vla-item (vla-get-blocks dbx) "CurbValve")))
  47. (vla-get-blocks
  48. (vla-get-activedocument (vlax-get-acad-object))))
  49. (vlax-release-object dbx) ;Clean-up
  50. ;Next block import
  51. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/GateValveBlock_TapCard.dwg")) ; file name containing block
  52. (vla-CopyObjects
  53. Dbx
  54. (vlax-safearray-fill
  55. (vlax-make-safearray vlax-vbObject '(0 . 0))
  56. (list (vla-item (vla-get-blocks dbx) "GateValve")))
  57. (vla-get-blocks
  58. (vla-get-activedocument (vlax-get-acad-object))))
  59. (vlax-release-object dbx) ;Clean-up
  60. ;Next block import
  61. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/HydrantBlock_TapCard.dwg")) ; file name containing block
  62. (vla-CopyObjects
  63. Dbx
  64. (vlax-safearray-fill
  65. (vlax-make-safearray vlax-vbObject '(0 . 0))
  66. (list (vla-item (vla-get-blocks dbx) "Hydrant")))
  67. (vla-get-blocks
  68. (vla-get-activedocument (vlax-get-acad-object))))
  69. (vlax-release-object dbx) ;Clean-up
  70. ;Next block import
  71. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/MeterPitBlock_TapCard.dwg")) ; file name containing block
  72. (vla-CopyObjects
  73. Dbx
  74. (vlax-safearray-fill
  75. (vlax-make-safearray vlax-vbObject '(0 . 0))
  76. (list (vla-item (vla-get-blocks dbx) "MeterPit")))
  77. (vla-get-blocks
  78. (vla-get-activedocument (vlax-get-acad-object))))
  79. (vlax-release-object dbx) ;Clean-up
  80. ;Next block import
  81. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/NArrowBlock_TapCard.dwg")) ; file name containing block
  82. (vla-CopyObjects
  83. Dbx
  84. (vlax-safearray-fill
  85. (vlax-make-safearray vlax-vbObject '(0 . 0))
  86. (list (vla-item (vla-get-blocks dbx) "NorthArrow")))
  87. (vla-get-blocks
  88. (vla-get-activedocument (vlax-get-acad-object))))
  89. (vlax-release-object dbx) ;Clean-up
  90. ;Next block import
  91. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/PoleBlock_TapCard.dwg")) ; file name containing block
  92. (vla-CopyObjects
  93. Dbx
  94. (vlax-safearray-fill
  95. (vlax-make-safearray vlax-vbObject '(0 . 0))
  96. (list (vla-item (vla-get-blocks dbx) "Pole")))
  97. (vla-get-blocks
  98. (vla-get-activedocument (vlax-get-acad-object))))
  99. (vlax-release-object dbx) ;Clean-up
  100. ;Next block import
  101. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/StreetNameBlock_TapCard.dwg")) ; file name containing block
  102. (vla-CopyObjects
  103. Dbx
  104. (vlax-safearray-fill
  105. (vlax-make-safearray vlax-vbObject '(0 . 0))
  106. (list (vla-item (vla-get-blocks dbx) "StreetName")))
  107. (vla-get-blocks
  108. (vla-get-activedocument (vlax-get-acad-object))))
  109. (vlax-release-object dbx) ;Clean-up
  110. ;Next block import
  111. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/TapCardNumberBlock_TapCard.dwg")) ; file name containing block
  112. (vla-CopyObjects
  113. Dbx
  114. (vlax-safearray-fill
  115. (vlax-make-safearray vlax-vbObject '(0 . 0))
  116. (list (vla-item (vla-get-blocks dbx) "TapCardNumber")))
  117. (vla-get-blocks
  118. (vla-get-activedocument (vlax-get-acad-object))))
  119. (vlax-release-object dbx) ;Clean-up
  120. ;Next block import
  121. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/WallBlock_TapCard.dwg")) ; file name containing block
  122. (vla-CopyObjects
  123. Dbx
  124. (vlax-safearray-fill
  125. (vlax-make-safearray vlax-vbObject '(0 . 0))
  126. (list (vla-item (vla-get-blocks dbx) "Wall")))
  127. (vla-get-blocks
  128. (vla-get-activedocument (vlax-get-acad-object))))
  129. (vlax-release-object dbx) ;Clean-up
  130. ;Next block import
  131. (setq Dbx (open_dbx "I:/Water_CAD_Details/TAP_BlockLibrary/WaterMainBlock_TapCard.dwg")) ; file name containing block
  132. (vla-CopyObjects
  133. Dbx
  134. (vlax-safearray-fill
  135. (vlax-make-safearray vlax-vbObject '(0 . 0))
  136. (list (vla-item (vla-get-blocks dbx) "WaterMain")))
  137. (vla-get-blocks
  138. (vla-get-activedocument (vlax-get-acad-object))))
  139. (vlax-release-object dbx) ;Clean-up
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:17:14 | 显示全部楼层
我们不会偷我们借的代码!
 
我不会按照代码中的方式来做,而只是有一个块列表或一个文本文件和一个defun来做插入部分,就像你说的10行一样,如果你想做一个脚本,只需写下1行必要的命令步骤,并复制和更改块名另存为脚本。
回复

使用道具 举报

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:28:30 | 显示全部楼层
我不知道如何使用脚本来运行这个。我有一个运行另一个lisp的,它有一个命令“tapconvert”我如何获得一个命令,这样我就可以预加载这个脚本,然后用一个脚本运行它很多次?我尝试在open\u dbx之前添加C:。我想更改它,以便可以将其作为脚本运行,但我不知道如何更改它或让脚本打开并运行它。
回复

使用道具 举报

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:38:22 | 显示全部楼层
 
我只是把这一切添加到另一个lisp中。我不知道如何让它在脚本中运行,但那会,因为C:可以工作。不幸的是,我不知道如何做你提到的列表,但理论上听起来不错
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:53:13 | 显示全部楼层
脚本示例just type script
 
打开dwg1 z e插入块1 0,0 1 0插入块2 0,0 1 1 0插入块3 z e关闭y
打开dwg2 z e插入块1 0,0 1 0插入块2 0,0 1 1 0插入块3 z e关闭y
等等
回复

使用道具 举报

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:01:37 | 显示全部楼层
 
我使用AutoScript是因为它可以让你选择充满文件的文件夹,我可以在12000多个文件夹上运行它。所以我希望脚本应用于所有这些文件,由AScript处理,然后运行一些。lsp的。我可以预加载那些用命令运行的,但是如果它没有C:要设置一些东西作为命令运行,我不知道如何让脚本运行它。似乎任何地方都没有关于脚本的文档。。。我有ACAD圣经和互联网,但真的看不到太多。我知道这很简单,但就是不知道语法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:30 , Processed in 0.445389 second(s), 75 queries .

© 2020-2025 乐筑天下

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