乐筑天下

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

[编程交流] 使用AutoLisp重新定义块

[复制链接]

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 11:34:05 | 显示全部楼层 |阅读模式
我有一些插入块的Lisp。Lisp使用完整文件路径定位图形,然后插入。但是,如果图形中已存在同名块,Lisp将使用图形中的文件,而不是路径定义的文件。
 
如果我使用标准的“插入”对话框浏览文件,然后尝试插入,如果我想重新定义它,我会收到提示。
 
如何在LISP中将此选项设置为redfine?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:41:44 | 显示全部楼层
我有时使用vla insertblock插入块,这总是重新定义现有块。
 
PS>重新定义~对不起,我忍不住了。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:49:41 | 显示全部楼层
 
你不会错过任何一个技巧。
回复

使用道具 举报

29

主题

196

帖子

168

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 11:58:54 | 显示全部楼层
 
你到底想要什么?
 
http://www.cadtutor.net/forum/showthread.php?t=40217
http://forums.augi.com/showthread.php?p=1035107
http://forums.augi.com/showthread.php?t=74579&highlight=blockredef
 
http://paracadd.com/lisp/lisp_lst.htm
;;;重新定义块并更新其属性
;;; *******************************************************************
;;; ATTREDEF。LSP
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 12:02:27 | 显示全部楼层
 
“重新定义”是给新手的。认真地认为我不介意被纠正。那不是那种类型我只是拼写错了哈哈
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:12:24 | 显示全部楼层
 
哇,我的代码真的到处都是。。。
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 12:16:12 | 显示全部楼层
我试过这个
  1. (defun C:test ()
  2. (vl-load-com)
  3. (vla-insertblock (getpoint) "L:/DrawingUtilities/F-Part" 1 1 1 0)
  4. )

但我发现了这个错误
错误:错误的参数类型:VLA-OBJECT(-85.2136 19.2445 0.0)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:24:40 | 显示全部楼层
您看过Visual LISP帮助文件中的引用了吗?
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:27:35 | 显示全部楼层
您需要提供要插入块的块VLA对象(即模型/图纸空间、块定义)。
 
这一点需要是一个变体。
 
例如:
 
  1. (defun InsertBlock (bNme Pt)
  2. (vl-load-com)
  3. ;; Lee Mac  ~  05.03.10
  4. (vla-InsertBlock
  5.    (if (eq acPaperSpace
  6.            (vla-get-ActiveSpace
  7.              (setq doc (vla-get-ActiveDocument
  8.                          (vlax-get-acad-object)))))
  9.      
  10.      (if (eq :vlax-true (vla-get-MSpace doc))
  11.        (vla-get-ModelSpace doc)
  12.        (vla-get-PaperSpace doc))
  13.      (vla-get-ModelSpace doc))
  14.    (vlax-3D-point Pt) bNme 1. 1. 1. 0.))
  15. (defun c:test (/ iPt file)
  16. (if (and (setq iPt  (getpoint "\nPick point for Block: "))
  17.           (setq file (findfile "L:\\DrawingUtilities\\F-Part.dwg")))
  18.    
  19.    (InsertBlock file iPt))
  20. (princ))
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 12:40:15 | 显示全部楼层
我确实看了帮助文件,我认为我做得对。我将学习afralisp VLisp教程。看到你们使用所有的vl-东西让我嫉妒。
 
我刚做了“开始”教程,我想这让我大吃一惊。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:15 , Processed in 1.092764 second(s), 72 queries .

© 2020-2025 乐筑天下

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