乐筑天下

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

[编程交流] 插入动态块,错误:ba

[复制链接]

40

主题

177

帖子

100

银币

后起之秀

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

铜币
248
发表于 2022-7-5 23:33:46 | 显示全部楼层 |阅读模式
大家好,我需要帮助。
使用LISP插入动态块,但显示:错误:错误参数类型:lentyp nil。我不知道是怎么回事。
 
代码如下:
  1. ;Modify the dynamic property values
  2. (defun DynamicProps (ename propname value / obj prpL cla cll prp)
  3. (vl-load-com)
  4. (setq obj (if (= (type ename) 'VLA-OBJECT) ename (vlax-ename->vla-object ename)))
  5. (if vla-getdynamicblockproperties (setq prpL (vlax-invoke obj 'getdynamicblockproperties)))
  6. (setq return
  7.    (if (setq prp (vl-remove-if-not (function (lambda(x)(= (vlax-get-property x 'PropertyName) propname))) prpL))
  8.      (mapcar (function (lambda(v)
  9.        (if (and (/= value nil)(vlax-property-available-p v 'Value)(/= (type value)'LIST))
  10.          (progn (vlax-put-property v 'Value value)(vla-update obj))
  11.        )
  12.        (if (and (vlax-property-available-p v 'AllowedValues) (vlax-get v 'AllowedValues))
  13.          (list (vlax-get v 'Value)(vlax-get v 'AllowedValues))
  14.   (vlax-get v 'Value)
  15.        )
  16.      )) prp)
  17.      (mapcar (function (lambda(v)(list (vla-get-propertyName v)(vlax-get v 'Value) v))) prpL)
  18.    )
  19. )
  20. return
  21. )
  22. ;===============================================================
  23. ;Get polyline vertex
  24. (defun verpoytexs (ename / plist pp n)
  25. (setq obj (vlax-ename->vla-object ename))
  26. (setq plist (vlax-safearray->list
  27. (vlax-variant-value
  28.     (vla-get-coordinates obj))))
  29. (setq n 0)
  30. (repeat (/ (length plist) 2)
  31.     (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))
  32.     (setq n (+ n 2))
  33. )
  34. pp
  35. )
  36. ;===============================================================
  37. (defun c:tt ( / ss pt_copy pl_pt_lst off_real)
  38. (princ  "\n Select the block to be processed:" )
  39. (setq ss (ssget ":S" '((0 . "insert"))))
  40. (setq pt_copy (cdr (assoc 10 (entget  (ssname ss 0)))))
  41. (or (= (vla-get-isdynamicblock (vlax-ename->vla-object e)):vlax-true) (exit))
  42. (princ  "\n Select polyline to be processed:" )
  43. (setq pl_pt_lst (verpoytexs  (ssname (ssget ":S" '((0 . "LWPOLYLINE"))) 0)))
  44. (setq off_real (getreal "\n Enter the interval width:"))
  45. (mapcar
  46.        '(lambda (p1 p2)
  47.           (vl-cmdf ".copy" ss "" "_none" pt_copy "_none" p1)
  48.           (vl-cmdf ".rotate" (entlast) "" "_none" p1 "R" 0 p2)
  49.           (DynamicProps (entlast) "L" (- (distance p1 p2) off_real))
  50.         )
  51.        pl_pt_lst
  52.        (cdr pl_pt_lst)
  53.      )
  54. (princ)
  55. )
  56. (vl-load-com)

插入动态块。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 23:49:32 | 显示全部楼层
  1. (defun c:tt ( / ss pt_copy pl_pt_lst off_real)
  2. (princ  "\n Select the block to be processed:" )
  3. [b]  (if (and
  4. (setq ss (ssget ":S" '((0 . "insert"))))
  5. (or (= (vla-get-isdynamicblock (vlax-ename->vla-object [color="blue"](setq e (ssname ss 0))[/color])):vlax-true) (exit))
  6. (princ "\n Select polyline to be processed:")
  7. (setq pl (ssget ":S" '((0 . "LWPOLYLINE"))))
  8. (setq off_real (getreal "\n Enter the interval width:"))
  9.      )[/b]
  10.    (progn
  11.   (setq pt_copy (cdr (assoc 10 (entget  [b][color="blue"]e[/color][/b]))))
  12.   (setq pl_pt_lst (verpoytexs  (ssname [b]pl[/b] 0)))
  13.   (mapcar
  14.         '(lambda (p1 p2)
  15.            (vl-cmdf ".copy" ss "" "_none" pt_copy "_none" p1)
  16.            (vl-cmdf ".rotate" (entlast) "" "_none" p1 "R" 0 p2)
  17.            (DynamicProps (entlast) "L" (- (distance p1 p2) off_real))
  18.          )
  19.         pl_pt_lst
  20.         (cdr pl_pt_lst)
  21.       )
  22.    [b]  ); progn
  23.    ); if[/b]
  24. (princ)
  25. )
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

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

铜币
248
发表于 2022-7-6 00:01:18 | 显示全部楼层
 
谢谢你的帮助。但问题仍然存在。选择块时,中断并显示“错误:错误参数类型:lentyp nil”
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:13:33 | 显示全部楼层
更改:
  1. (vlax-ename->vla-object e)

收件人:
  1. (vlax-ename->vla-object (ssname ss 0))
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

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

铜币
248
发表于 2022-7-6 00:22:53 | 显示全部楼层
 
李,现在没事了!非常感谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:31:40 | 显示全部楼层
 
把一切都搞混了。感谢您捕获错误LM
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:41:13 | 显示全部楼层
 
别担心,伙计
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:41 , Processed in 1.419342 second(s), 66 queries .

© 2020-2025 乐筑天下

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