乐筑天下

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

[编程交流] Lisp动态块(&D)

[复制链接]

6

主题

20

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 11:41:26 | 显示全部楼层
那是我的错。这是一个完全不同的问题。与此线程无关。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:45:47 | 显示全部楼层
我使用vla explode得到了一些奇怪的结果(双块),因此如果得到相同的结果,请删除它并取消注释用红色标记的vl cmdf expolde。
 
  1. REMOVED
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:49:50 | 显示全部楼层
请记住,vla explode将在图形中保留原始块,而新对象将是副本。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:51:44 | 显示全部楼层
啊,好的。这是有道理的。
 
试试这个。。。
  1. (defun c:LongWall (/ blockname p1 p2)
  2. ;; Insert and array "LONG WALL" block (required)
  3. ;; Alan J. Thompson, 05.05.10
  4. (vl-load-com)
  5. (setq blockname "LONG WALL")
  6. (if (and (or (tblsearch "block" blockname)
  7.               (findfile (strcat blockname ".dwg"))
  8.               (alert (strcat blockname " cannot be found!"))
  9.           )
  10.           (setq p1 (getpoint "\nSpecify block insertion point: "))
  11.           (setq p2 (getpoint p1 "\nSpecify block end point: "))
  12.      )
  13.    ((lambda (block)
  14.       (foreach x (vlax-invoke block 'GetDynamicBlockProperties)
  15.         (and (eq (vla-get-propertyname x) "Distance")
  16.              (vla-put-value
  17.                x
  18.                ((lambda (dist / num)
  19.                   (cond
  20.                     ((>= 1. (/ dist 46.)) 46.)
  21.                     ((< 1. (setq num (/ dist 46.))) (* 46. (1+ (fix num))))
  22.                     (46.)
  23.                   )
  24.                 )
  25.                  (distance p1 p2)
  26.                )
  27.              )
  28.         )
  29.       )
  30.       (vl-catch-all-apply (function (lambda () (vla-explode block) (vla-delete block))))
  31.     )
  32.      (vla-insertblock
  33.        (if
  34.          (or (eq acmodelspace
  35.                  (vla-get-activespace
  36.                    (cond (*AcadDoc*)
  37.                          ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
  38.                    )
  39.                  )
  40.              )
  41.              (eq :vlax-true (vla-get-mspace *AcadDoc*))
  42.          )
  43.           (vla-get-modelspace *AcadDoc*)
  44.           (vla-get-paperspace *AcadDoc*)
  45.        )
  46.        (vlax-3d-point (trans p1 1 0))
  47.        blockname
  48.        1.
  49.        1.
  50.        1.
  51.        (angle (trans p1 1 0) (trans p2 1 0))
  52.      )
  53.    )
  54. )
  55. (princ)
  56. )
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 11:53:52 | 显示全部楼层
我并没有真正遵循这个思路,但当修改动态块(在AutoCAD中)时,它们会得到匿名名称。这会对您使用代码所做的任何事情产生任何影响吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:59:34 | 显示全部楼层
 
与通过动态夹点进行更改时相同。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:02:50 | 显示全部楼层
刚记起来,我忘了在角度上解释非WCS;以上更新。
回复

使用道具 举报

6

主题

20

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 12:03:13 | 显示全部楼层
你就是那个男人!!这正是我想要的。谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:08:28 | 显示全部楼层
 
不客气。很乐意帮忙。
 
支票在邮寄吗眨眼:
回复

使用道具 举报

6

主题

20

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 12:09:43 | 显示全部楼层
肯定
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:14 , Processed in 0.382567 second(s), 70 queries .

© 2020-2025 乐筑天下

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