乐筑天下

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

[编程交流] 如何获取属性和方法

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:15:54 | 显示全部楼层 |阅读模式
大家好。
 
我想知道如何获得图层、布局、尺寸样式和文档等的属性。。。。。。。。
无法通过使用函数*vlax dump object*或任何其他函数进行选择。
 
我的目的是获得可用于此类事情的属性和方法。
 
谢谢。
 
塔瓦特
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:24:03 | 显示全部楼层
[编辑]
我有点惊讶你竟然提出了这个问题。
 
无论如何。。。
[/编辑]
 
这适用于任何有效的VLA-OBJECT:
 
  1. (defun DUMP (arg)
  2. (if (= 'VLA-OBJECT (type arg))
  3.    (progn
  4.       (textpage)
  5.       (vlax-dump-object arg T))
  6.    (prompt "\n** Invalid argument ** "))
  7. (princ))

 
 
然而,以下是我的工具箱中特定于层的转储例程的一些示例:
 
  1. (defun c:DUMPLAY  (/ layerName)
  2. (if (and (setq layerName (getstring "\nEnter layer name: "))
  3.           (tblsearch "layer" layerName))
  4.    (DUMPLAY layerName)
  5.    (prompt "\n** Layer does not exist ** "))
  6. (princ))
  7. (defun DUMPLAY  (layerName)
  8. (if (tblsearch "layer" layerName)
  9.    (progn
  10.      (textpage)
  11.      (vlax-dump-object
  12.        (vla-item (vla-get-layers
  13.                    (vla-get-activedocument (vlax-get-acad-object)))
  14.                  layerName)
  15.        T))
  16.    (prompt "\n** Layer does not exist ** "))
  17. (princ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:30:40 | 显示全部楼层
正如Renderman正确指出的那样,vlax转储对象将与任何VLA对象一起使用,无论此类VLA对象是AutoCAD对象模型的一部分还是其他对象。
 
为了研究AutoCAD对象模型层次结构中的对象,我有时发现在ActiveX Developer Reference中使用对象模型流程图更容易。
 
要访问它,请在VLIDE帮助文档中导航到:
 
ActiveX和VBA参考»对象模型
 
从这里,您可以单击对象模型流程图上列出的任何对象,以查看与该对象相关的属性/方法,此外,您可以快速导航到每个属性/方法的文档。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:39:51 | 显示全部楼层
李-你会笑的,如果我找不到我想要的东西,我甚至会去VBAIDE/Visual Studio仔细阅读Object Viewer。英雄联盟
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:44:32 | 显示全部楼层
谢谢你的代码,它们非常有用。
 
ً亲爱的伦德曼,你为什么感到惊讶?
 
谢谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:49:23 | 显示全部楼层
 
嗯,VS Object Browser可能最适合AutoCAD对象模型之外的对象,因此您不会错得太多
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:01:15 | 显示全部楼层
 
这就是我知道的,但不知道如何让它的Vla对象提取其道具和方法。
 
那么DIM、组和视口等呢。。。。。。
 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:09:01 | 显示全部楼层
 
单击图表上的项目。
 
 
列出了模型中的每个对象。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 10:11:52 | 显示全部楼层
如果我完全偏离主题,那么我道歉。但我以前也有过类似的“问题”。蒂姆·威利把我推上了TblInf32。DLL文件。您需要通过vlax导入类型库函数加载它,然后通过下载此帮助文件来查看其中的内容:http://support.microsoft.com/kb/q224331/
 
这样,您就可以将所有属性/方法放到一个列表中,这样您就可以将它们(比如)放在一个对话框中。这实际上是VBA中的对象浏览器本身所使用的。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:20:26 | 显示全部楼层
 
在这个主题下,这是一个非常有趣的调查,调查用于公开其他对象(TlbInf32.dll)的属性和方法的工具的属性和方法。正如迈克尔在那篇文章中所说,它确实在语句的递归性中有一种美感。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 03:25 , Processed in 0.603426 second(s), 72 queries .

© 2020-2025 乐筑天下

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