明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1554|回复: 4

[已解答] 关于 Autodesk Mechanical 零件参照属性的 Lisp 写入

[复制链接]
发表于 2013-10-30 21:58 | 显示全部楼层 |阅读模式
5明经币


读取属性代码如下:
  1. (vlax-safearray->list
  2.           (vlax-variant-value
  3.             (vlax-get-property (vlax-ename->vla-object x) 'Data)
  4.           )
  5. )


请安装有Mechanical CAD的小伙伴们试试.

附件: 您需要 登录 才可以下载或查看,没有账号?注册
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2013-10-31 13:03 | 显示全部楼层
(setq point (vlax-make-safearray vlax-vbString '(0 . 1) '(0 . 1)))
(vlax-make-variant point)
(vlax-safearray-put-element point 0 0 "DESCR")
(vlax-safearray-put-element point 0 1 value)
(vlax-put-property (*en2obj* en) 'Data point)
回复

使用道具 举报

发表于 2021-9-29 22:16 | 显示全部楼层
你这个是无法写入的,会提示你“; 错误: Automation 错误。未提供说明。”,应为你的二维数组没有填写完成,你需要指定二维数组的各个键值对,增加:
(vlax-safearray-put-element point 1 0 "MATERIAL")
(vlax-safearray-put-element point 1 1 "Q235")
这样,你再put-property时,才不会报错,而且,你的0 0 和1 0对应的值,必须是你的特性表存在的值,否则也会报错。
回复

使用道具 举报

发表于 2021-9-29 22:20 | 显示全部楼层
需要把对应的值对用二维数组赋值完整,并对应特性表中的值有效,才不会报错。
(setq point (vlax-make-safearray vlax-vbString '(0 . 1) '(0 . 1)))
(vlax-make-variant point)
(vlax-safearray-put-element point 0 0 "DESCR")
(vlax-safearray-put-element point 0 1 “aa”)
(vlax-safearray-put-element point 1 0 "MATERIAL")
(vlax-safearray-put-element point 1 1 "Q235")
(vlax-put-property (vlax-ename->vla-object (car (entsel))) 'Data point)
这样就能修改了
回复

使用道具 举报

发表于 2021-9-29 22:31 | 显示全部楼层
注意数组赋值要完整且与零件特性中的值对应上,现在我的问题是,那个“块零件参照”,我无法获取他的对象,这样我无法对他进行操作。有机械版CAD的,可以试一下。可以去看看我的帖子:块零件参照的数据如何lisp读取,重新修改写入http://bbs.mjtd.com/forum.php?mo ... mp;extra=#pid898355
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 06:25 , Processed in 0.175801 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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