乐筑天下

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

[编程交流] 质量块缩放

[复制链接]

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:00:23 | 显示全部楼层 |阅读模式
我有多个绘图文件,每个都有多个块(几个有2-3层深的嵌套块)。。。我需要从公制到英制进行缩放。
 
lisp/宏是否可以打开图形中的所有块(忽略块名,因为有1000多个块,每个块的名称不同)、缩放并将“块单位”特性更改为“英寸”?
 
在我研究所需的实际编码之前,我想知道这样的事情是否可能。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:05:42 | 显示全部楼层
使用Visual LISP,InsUnts属性为只读(RO),无法修改。
 
也许这可以通过DXF代码输入块定义,但目前我无法确定。
 
编辑:一旦知道所需比例的转换因子,就可以成功地缩放块以适应图形,但是仍然需要在块编辑器中修改此设置。
回复

使用道具 举报

1

主题

96

帖子

101

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:09:25 | 显示全部楼层
 
你不能设置一个宏来运行lisp吗?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:10:55 | 显示全部楼层
 
如果OP想要更改的InsUnits属性是只读的(RO),那么会是什么LISP?
回复

使用道具 举报

1

主题

96

帖子

101

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:14:07 | 显示全部楼层
 
你要写的那个!说真的,我并不是说已经有了lisp,我只是在想宏和lisp之间的组合可能会得到IBMut想要的东西。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:18:20 | 显示全部楼层
别担心;这对我来说是新的,因为我们所有的块都创建为“无单位”,而不是指定“英尺”等。
 
实际上,我已经开始为此编写代码,在完成框架设置后,我测试了一个块以获得准确的属性名称(我不可能全部记住!),然后在我需要的属性旁边看到(RO)>。
 
于是,我打开开发人员文档,浏览DXF代码以查找插入实体,并在(Ctrl+F)中搜索“ins”和“unit”,但找不到任何有用的东西。事实上,我对目前的结果相当失望。我真的没有时间跳进C/VB。NET,否则我会仔细阅读Object Viewer。
回复

使用道具 举报

1

主题

96

帖子

101

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:20:58 | 显示全部楼层
脚本的一部分难道不能完成并将它们全部设置为读/写吗?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:25:05 | 显示全部楼层
 
澄清;这些对象模型属性,如某些系统变量(即RIBBONSTATE等)是只读的,无法修改。
 
Visual LISP无法使用以下任一选项修改块对象的InsUnits特性:
 
  1. ([color=red]vla-put-insunits[/color] <BlockObject> <Value>)                                ; <- Function does not exist
  2. (vlax-put <BlockObject> 'InsUnits <Value>)
  3. (vlax-put-property <BlockObject> 'InsUnits <Value>)

 
^^将其复制并粘贴到命令行中,然后按Enter键。然后键入“FOO”(不带引号),然后按Enter键。。。遵循命令提示。
 
HTH公司
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:26:12 | 显示全部楼层
也许这对你有帮助。可以轻松修改以更改图形中的所有块。
克鲁格
区块单元。lsp
回复

使用道具 举报

1

主题

96

帖子

101

银币

初来乍到

Rank: 1

铜币
3
发表于 2022-7-6 09:29:55 | 显示全部楼层
太棒了,克鲁格!
 
看,我对使用tblobjname进行操作知之甚少,因此必须查找DXF 330。
 
编辑:
 
  1. ; ============================================================ ;
  2. ; Set block units                                              ;
  3. ;   Blks
  4. [list] - block(s) name                                ;
  5. ;   Units [iNT] - new block units                              ;
  6. ; ============================================================ ;
  7. (defun kr:BLK_SetBlockUnits (Blks Units)
  8. (foreach % Blks
  9.    (vla-Put-Units
  10.      (vlax-Ename->vla-Object
  11.        (cdr (assoc 330 (entget (tblobjname "BLOCK" %))))
  12.      )
  13.      Units
  14.    )
  15. )
  16. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 05:53 , Processed in 1.118360 second(s), 72 queries .

© 2020-2025 乐筑天下

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