乐筑天下

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

[编程交流] 谁能帮我查一下

[复制链接]

19

主题

124

帖子

105

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 23:48:52 | 显示全部楼层 |阅读模式
代码操作不正常,画一个铅标签,但只有标签,没有铅!
为什么?谁能帮我修改非常感谢。
 
正常,应该像这张照片!
Dim编号。LSP
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 23:54:01 | 显示全部楼层
好奇的是,你在哪里得到你发布的lucas3的所有iisp代码?奇怪的是,在代码的任何地方我都看不到作者的名字,在这种情况下。。
 
.
 
我想说的是,为什么不问问原作者或者在源网站上发布你的问题来修改代码呢?
回复

使用道具 举报

19

主题

124

帖子

105

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 23:58:28 | 显示全部楼层
 
我理解你的问题
不知道作者在哪里,其他人都转发到BBS,我下载并使用,但不正常,在源网站上,有人问了同样的问题,但没有人回答!
回复

使用道具 举报

19

主题

124

帖子

105

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 23:59:52 | 显示全部楼层
请帮帮我!
 
  1. (vl-load-com)
  2.       
  3. (setq *ActiveDocument*
  4.       (vla-get-ActiveDocument
  5.         (vlax-get-acad-object)
  6.       ) ;_ end of vla-get-ActiveDocument
  7. ) ;_ end of setq
  8. (setq *ModelSpace*
  9.       (vla-get-ModelSpace
  10.         *ActiveDocument*
  11.       ) ;_ end of vla-get-ModelSpace
  12. ) ;_ end of setq
  13. (setq *AcadBlock*
  14.       (vla-get-blocks
  15.         *ActiveDocument*
  16.       ) ;_ end of vla-get-blocks
  17. ) ;_ end of setq
  18. ;;;Creat Num block with attribute
  19. (defun Creat_Num_block (TextHight    radius          /
  20.                 cirPnt             blockObj          circleObj
  21.                 attributeObj
  22.                )
  23. (setq cirPnt (list radius radius 0.0))
  24. (setq        blockObj     (vla-add *AcadBlock*
  25.                       (vlax-3d-point cirPnt)
  26.                       "num"
  27.              )
  28. circleObj    (vla-AddCircle
  29.                blockObj
  30.                (vlax-3d-point cirPnt)
  31.                radius
  32.              )
  33. attributeObj
  34.              (vla-AddAttribute
  35.                blockObj
  36.                TextHight
  37.                acAttributeModeVerify
  38.                ""
  39.                (vlax-3d-point cirPnt)
  40.                "nums"
  41.                ""
  42.              )
  43. )
  44. (vla-put-Alignment attributeObj acAlignmentMiddle)
  45. (if (> (setq v (distof (substr (getvar "acadver") 1 3))) 16.2)
  46.    (vla-put-TextAlignmentPoint
  47.      attributeObj
  48.      (vlax-3d-point cirPnt)
  49.    )
  50. )
  51. (vla-Update attributeObj)
  52. )
  53. (defun draw_leader (pt1 pt2 / leaderobj) ;draw leader
  54. (command "leader" pt1 pt2 "f" "st" "f" "a" "" "" "n")
  55. (setq leaderobj (vlax-ename->vla-object (entlast)))
  56. (vla-put-ArrowheadType leaderobj acArrowDotSmall)
  57. (vla-Update leaderobj)
  58. leaderobj
  59. )
  60. ;;;set Attributes
  61. (defun SetAtts (Obj Lst / AttVal)
  62. (mapcar
  63.    '(lambda (Att)
  64.       (if (setq AttVal (cdr (assoc (vla-get-TagString Att) Lst)))
  65. (vla-put-TextString Att AttVal)
  66.       )
  67.     )
  68.    (vlax-invoke Obj "GetAttributes")
  69. )
  70. (vla-update Obj)
  71. (princ)
  72. )
  73. ;;;Get numbers of block reference Object  in ModelSpace
  74. (defun Get_blkRef_Num (blkRef_name / count objEnt)
  75. (setq count 0)
  76. (vlax-for objEnt *ModelSpace*
  77.    (if        (equal (vla-get-ObjectName objEnt) "AcDbBlockReference")
  78.      (progn (if (equal (vla-get-Name objEnt) blkRef_name)
  79.        (setq count (1+ count))
  80.      )
  81.      )
  82.    )
  83. )
  84. count
  85. )
  86. ;;;check if have "num" block exist
  87. (defun check_num_block (/)
  88. (if (ssget "X"
  89.      '((0 . "INSERT")
  90.        (2 . "num")
  91.       )
  92.      )
  93.    T
  94.    nil
  95. )
  96. )
  97. ;;;--------------------------------------------------------------------;
  98. ;;;       Function:  set-params-obj                                    ;
  99. ;;;                                                                    ;
  100. ;;;    Description:  This function sets the parameters required        ;
  101. ;;;                  to associate a dimension object               .   ;
  102. ;;;                                                                    ;
  103. ;;;      Arguments:                                                    ;
  104. ;;;      vla-blk_bef = a valid vla blk_bef object.                     ;
  105. ;;;      vla-leader = a valid vla leader object.                       ;
  106. ;;;                                                                    ;
  107. ;;; Returned Value:  coordinates to the leader object.                 ;
  108. ;;;                                                                    ;
  109. ;;;          Usage:                                                    ;
  110. ;;;              (set-params-obj                                       ;
  111. ;;;                 vla-blk_bef  vla-leader                            ;
  112. ;;;               )                                                    ;
  113. ;;;--------------------------------------------------------------------;
  114. (defun set-params-obj
  115.       (vla-blk_bef vla-leader / ins-pnt lead-pnt1 lead-pnt2 sca rad)
  116. (if (and (= (type vla-blk_bef) 'VLA-OBJECT)
  117.    (vlax-read-enabled-p vla-blk_bef)
  118.      )
  119.    (progn
  120.      (setq ins-pnt (vla-get-InsertionPoint vla-blk_bef))
  121.      (if (eq (type ins-pnt) 'VARIANT)
  122. (if (> (vlax-variant-type ins-pnt) 8192)
  123.   (setq
  124.     ins-pnt (vlax-safearray->list (vlax-variant-value ins-pnt))
  125.   )
  126. )
  127.      )
  128.      (setq sca                (vla-get-XScaleFactor vla-blk_bef)
  129.     rad         (vlax-ldata-get vla-blk_bef "radius")
  130.     lead-pnt1        (vlax-curve-getstartpoint vla-leader)
  131.     lead-pnt2        (polar ins-pnt (angle ins-pnt lead-pnt1) (* sca rad))
  132.     Coordinates        (append lead-pnt1 lead-pnt2)
  133.      )
  134.    )
  135. )
  136. )
  137. ;;;--------------------------------------------------------------------;
  138. ;;;       Function:  UPDATE-PARAMETER-MDIM                             ;
  139. ;;;                                                                    ;
  140. ;;;    Description:  This function is responsible for updating a       ;
  141. ;;;                  vla-object's parameter.                           ;
  142. ;;;                                                                    ;
  143. ;;;      Arguments:                                                    ;
  144. ;;;         vla-obj = a valid vla object.                              ;
  145. ;;;        par-name = a parameter name.                                ;
  146. ;;;       par-value = a new parameter value                            ;
  147. ;;;                                                                    ;
  148. ;;; Returned Value:  A vla object.                                     ;
  149. ;;;                                                                    ;
  150. ;;;          Usage:                                                    ;
  151. ;;;              (update-parameter-mdim                                ;
  152. ;;;                 vla-obj  par-name par-value                        ;
  153. ;;;               )                                                    ;
  154. ;;;--------------------------------------------------------------------;
  155. (defun update-parameter-mdim (vla-obj par-name par-value)
  156. (if (and (= (type vla-obj) 'VLA-OBJECT)
  157.    (vlax-write-enabled-p vla-obj)
  158.    (not (equal (vlax-get vla-obj par-name) par-value))
  159.      )
  160.    (vlax-put vla-obj par-name par-value)
  161. )
  162. )
  163. ;;;--------------------------------------------------------------------;
  164. ;;;       Function:  UPDATE-LEADER                                     ;
  165. ;;;                                                                    ;
  166. ;;;    Description:  This function updates the "coordinate" property   ;
  167. ;;;                  for the leader object.                            ;
  168. ;;;                                                                    ;
  169. ;;;      Arguments:                                                    ;
  170. ;;;         notifier = a valid vla object.                             ;
  171. ;;;         obj-list = a list of vla object.                           ;
  172. ;;;                                                                    ;
  173. ;;; Returned Value:  An updated leader object.                         ;
  174. ;;;                                                                    ;
  175. ;;;          Usage:                                                    ;
  176. ;;;              (update-leader                                        ;
  177. ;;;                   notifier obj-list                                ;
  178. ;;;               )                                                    ;
  179. ;;;--------------------------------------------------------------------;
  180. (defun update-leader
  181.              (notifier obj-list        / vla-blk_bef vla-leader)
  182. (setq        vla-blk_bef (nth 0 obj-list)
  183. vla-leader  (nth 1 obj-list)
  184. )
  185. (if (set-params-obj vla-blk_bef vla-leader)
  186.    (update-parameter-mdim vla-leader "Coordinates" Coordinates)
  187. )
  188. )
  189. ;;;--------------------------------------------------------------------;
  190. ;;;       Function:  reactor-leader_blk_bef                           ;
  191. ;;;                                                                    ;
  192. ;;;    Description:  This function will be called inside               ;
  193. ;;;                  :vlr-modified event.                              ;
  194. ;;;                                                                    ;
  195. ;;;                  Required Functions:                               ;
  196. ;;;                         update-leader-for-blk_bef                  ;
  197. ;;;                                                                    ;
  198. ;;;      Arguments:                                                    ;
  199. ;;;        notifier = a valid vla object. Filled in by the calling     ;
  200. ;;;                   reactor.                                         ;
  201. ;;;         reactor = a valid vlr object reactor. Filled in by the     ;
  202. ;;;                   calling reactor.                                 ;
  203. ;;;        arg-list = argument list filled in by the calling reactor.  ;
  204. ;;;                   Filled in by the calling reactor.                ;
  205. ;;;                                                                    ;
  206. ;;; Returned Value:  A valid vla object.                        ;
  207. ;;;                                                                    ;
  208. ;;;          Usage:  Intended to be called from a reactor call back.   ;
  209. ;;;       (reactor-leader_blk_bef notifier reactor arg-list)          ;
  210. ;;;--------------------------------------------------------------------;
  211. (defun reactor-leader_blk_bef (notifier reactor arg-list)
  212. (update-leader notifier (vlr-data reactor))
  213. )
  214. ;;;--------------------------------------------------------------------;
  215. ;;;                       main Function                                 ;
  216. ;;;--------------------------------------------------------------------;
  217. (defun c:draw_numbers (/          vla-leader TextHight        radius
  218.                sca          loop1             loop2        pt0
  219.                vla-blkref count             count_str        att_lst
  220.                vla-leader sp             source        Points
  221.                reactor
  222.               )
  223. (setvar "CMDECHO" 0)
  224. (setq        TextHight 5
  225. radius 5
  226. sca 1
  227. loop1 T
  228. )
  229. (if (not (check_num_block))
  230.    (Creat_Num_block TextHight radius)
  231. )
  232. (while loop1
  233.    (if        (setq pt0
  234.        (getpoint
  235.          "\nPick up a point (Enter & MouseRight exit):"
  236.        )
  237. )
  238.      (progn
  239. (setq vla-blkref
  240.                  (vla-InsertBlock
  241.                    *ModelSpace*
  242.                    (vlax-3d-point pt0)
  243.                    "num"
  244.                    sca
  245.                    sca
  246.                    sca
  247.                    0
  248.                  )
  249.       count         (Get_blkRef_Num "num")
  250.       count_str         (itoa count)
  251.       att_lst         (list (cons '"nums" count_str))
  252.       loop2         T
  253. )
  254. (SetAtts vla-blkref att_lst)
  255. (setq vla-leader (draw_leader pt0 (polar pt0 0 0.001)))
  256. (prompt "\nConfirm number place:")
  257. (while loop2
  258.   (setq        sp     (grread T)
  259.         source (car sp)
  260.         sp     (cadr sp)
  261.   ) ;_ end setq
  262.   (cond        ((= source 5)
  263.          (vla-put-InsertionPoint vla-blkref (vlax-3d-point sp))
  264.          (setq
  265.            Points
  266.             (vlax-safearray-fill
  267.               (vlax-make-safearray
  268.                 vlax-vbdouble
  269.                 '(0 . 5)
  270.               )
  271.               (append pt0
  272.                       (polar sp (angle sp pt0) (* radius sca))
  273.               )
  274.             )
  275.          )
  276.          (if (> (distance sp pt0) (* radius sca))
  277.            (vla-put-coordinates vla-leader Points)
  278.          )
  279.         )
  280.         (t
  281.          (progn        (setq loop2   nil
  282.                       obj-lst (list vla-blkref vla-leader)
  283.                 )
  284.                 (vlax-ldata-put vla-blkref "radius" radius)
  285.                 (function reactor-leader_blk_bef)
  286.                 (setq reactor
  287.                        (VLR-Object-reactor
  288.                          obj-lst
  289.                          obj-lst
  290.                          '((:vlr-modified . reactor-leader_blk_bef))
  291.                        )
  292.                 )
  293.          )
  294.         )
  295.   )
  296. )
  297.      )
  298.      (setq loop1 nil)
  299.    )
  300. )
  301. (princ)
  302. )
回复

使用道具 举报

19

主题

124

帖子

105

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-6 00:03:03 | 显示全部楼层
我需要帮助!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 00:05:10 | 显示全部楼层
是的,我们明白了,卢卡斯。请记住,有些人将要休假(许多会员庆祝圣诞节),这里的每个人都是志愿者,因此我们没有报酬来回答您的问题。试着表现出一些耐心。
 
顺便说一句,我刚刚使用AutoCAD 2014测试了lisp例程。它的工作原理与视频剪辑中显示的方式相同。再试一次。
回复

使用道具 举报

19

主题

124

帖子

105

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-6 00:08:10 | 显示全部楼层
 
谢谢你的评论!你在那里正常运转吗
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 00:12:55 | 显示全部楼层
我跑得正常吗?取决于你问谁。我正在运行纯AutoCAD 2014。我使用英制和公制模板测试了例程。它在两种情况下都有效。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:16:08 | 显示全部楼层
如果我理解正确,请添加此行(蓝色)并根据需要更改值(红色):
 
  1. (defun draw_leader (pt1 pt2 / leaderobj) ;draw leader
  2. (command "leader" pt1 pt2 "f" "st" "f" "a" "" "" "n")
  3. (setq leaderobj (vlax-ename->vla-object (entlast)))
  4. (vla-put-ArrowheadType leaderobj acArrowDotSmall)
  5. [color=blue](vla-put-Arrowheadsize leaderobj (/ TextHight [color=red]1.0[/color]))[/color]
  6. (vla-Update leaderobj)
  7. leaderobj
  8. )
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 00:20:11 | 显示全部楼层
OP在哪里问的?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

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

© 2020-2025 乐筑天下

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