明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 751|回复: 9

[提问] 已知字形名,怎么获得该字型的对象

[复制链接]
发表于 2021-11-1 16:06:05 | 显示全部楼层 |阅读模式
本帖最后由 fen00 于 2021-11-1 17:29 编辑

请教各位大侠,已知字形名,怎么获得该字型的的VLA 对象的名称,有直接获得该字型的对象的vlisp函数吗?
就像下面这个是当前字形的vla的对象名称:

ActiveTextStyle = #<VLA-OBJECT IAcadTextStyle 000001e41439dca8>


发表于 2021-11-1 17:09:09 | 显示全部楼层
findfile,shx文件
 楼主| 发表于 2021-11-1 17:26:41 | 显示全部楼层

我要的是字形的VLA 对象的名称,比如下面这个是当前字形的对象名称
ActiveTextStyle = #<VLA-OBJECT IAcadTextStyle 000001e41439dca8>
发表于 2021-11-1 19:15:41 | 显示全部楼层
vla-get-name
 楼主| 发表于 2021-11-2 09:02:27 | 显示全部楼层
本帖最后由 fen00 于 2021-11-2 09:07 编辑

这个函数后面是要跟的vla-object,不是StyleName ,我想要的函数是反向的从StyleName得到vla-object,这个vla-object是IAcadTextStyle

返回的错误信息:
$ (vla-get-name StyleName)
; 错误: 参数类型错误: VLA-OBJECT "GB"
发表于 2021-11-3 09:54:36 | 显示全部楼层
本帖最后由 e2002 于 2021-11-3 09:58 编辑

最简单的,而不是从 ObjectModel 一层一层访问下来:

(vlax-ename->vla-object (tblobjname "TableName" "YourName"))

TableName: 字符串,例如 "LYAER";
YourName: 字符串,你的要查找的这个样式等的名称, 例如 "STANDARD","0")。

 楼主| 发表于 2021-11-3 16:47:53 | 显示全部楼层
e2002 发表于 2021-11-3 09:54
最简单的,而不是从 ObjectModel 一层一层访问下来:

(vlax-ename->vla-object (tblobjname "TableName" ...

谢谢,函数tblobjname,对应的vlisp的函数,是不是没有?

点评

这是AutoLISP直接提供的函数,为啥还要舍近求远? 非要从 vlax-get-acad-object 开始一层层的访问对象也是可以的, 获得 Styles 集合之后使用 Item 方法就可以返回你需要的Style对象。  发表于 2021-11-4 16:54
 楼主| 发表于 2021-11-8 17:08:27 | 显示全部楼层
本帖最后由 fen00 于 2021-11-8 17:33 编辑
e2002 发表于 2021-11-3 09:54
最简单的,而不是从 ObjectModel 一层一层访问下来:

(vlax-ename->vla-object (tblobjname "TableName" ...

嗯嗯,主要是在学习vlisp,所以想用vlisp的扩展函数试试编程。试着把以前用基本lisp函数编的程序改为用vl函数。
用vla-add添加了一个样式,然后要用vla-put-bigfontfile设置字体。
试了一下,用vla-item 可以实现,原来这个函数的参数不单单是索引号,还可以用name返回object






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2021-11-10 10:12:18 | 显示全部楼层
如果你要在 AutoCAD for Mac 上用,你还得把这些vla-xxxx的改回到普通lisp代码上...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-17 08:29 , Processed in 0.177320 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表