乐筑天下

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

[编程交流] 编辑字段链接

[复制链接]

17

主题

72

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 18:10:32 | 显示全部楼层 |阅读模式
我正在尝试读取和编辑字段的链接,我使用以下代码:
 
  1. (defun c:testar ( / a e o s x texto tipodepeca z y obj)
  2.    (if (setq s (ssget "_:L" '((0 . "TEXT")) ))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (ssname s (setq i (1- i)))
  5.                  x (entget e)
  6.           obj (vlax-ename->vla-object e) ;define object
  7.           a (vla-get-textstring obj) ;assign the object textstring to variable a
  8.            )
  9.            
  10.                 (prin1 a)
  11.                 (vla-put-textstring obj "%<\AcExpr (Table(%<\_ObjId 8796083039968>%).E6) \f ""%lu2%pr2>%")
  12.                
  13.        )
  14.    )
  15.    (princ)
  16. )

 
第一个问题是,当我使用vla get textstring时,代码检索的不是链接,而是静态字段显示的文字文本或值。
第二个问题是,vla put textstring完全用“”中的内容替换内容。如果我有“hi”,它会在文本中放置hi,删除任何类型的字段。我做错了什么?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:23:01 | 显示全部楼层
误读了帖子对不起。
回复

使用道具 举报

17

主题

72

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 18:28:15 | 显示全部楼层
我不知道你是什么意思,塔尔瓦,我所有的字段都在文本对象中
 
191036sra8u7zia8k0olre.png
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:37:42 | 显示全部楼层
抱歉给你带来了困惑。
 
我想你需要这个函数vla fieldcode
回复

使用道具 举报

17

主题

72

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 18:51:25 | 显示全部楼层
非常感谢。这个函数似乎只检索当前代码,你知道有什么可以直接编辑或修改它的吗?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:57:11 | 显示全部楼层
你在说什么样的修改?
回复

使用道具 举报

17

主题

72

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 19:07:55 | 显示全部楼层
作为最后手段,更改字段链接到的表id,但理想情况下,我可以更改整个字段代码。
 
无论如何,我发现了一些有趣的事情,关于检索表的组码,有以下内容
 
191038xnpcf443nrqps16f.png
 
现在,表id是什么?
 
191042b2aaok99yfv2fkv2.png
 
879... 某物
 
但是为什么字母表中有这么多的ff和ee以及不超过“f”的字符呢?它可以是十六进制吗?
 
191042cblkbpb36ppn6w6o.png
 
因此,我可以交换表的id,而不是更改每个表上的表代码。。我试试看
回复

使用道具 举报

17

主题

72

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 19:10:45 | 显示全部楼层
运气不好,我试图直接这样改变身份:
 
  1. (defun c:teste ( / a e o s x texto tipodepeca z y)
  2.    (if (setq s (ssget "_:L" '((0 . "TEXT,ACAD_TABLE")) ))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (ssname s (setq i (1- i)))
  5.                  x (entget e)
  6.                  a (assoc -1 x)
  7.            )
  8.                
  9.                           ;(setq y (entmod (subst '(-1 . "<Entity name: 7ffffb02970>") a x))) ;original entity code so i dont forget
  10.                                   
  11.                                   (setq y (entmod (subst '(-1 . "<Entity name: 7ffffb0297f>") a x))) ;entity code that i'm trying to setup
  12.                                         (entmod y)
  13.                
  14.                        
  15.            
  16.        )
  17.    )
  18.    (princ)
  19. )

 
结果:
; 错误:错误的DXF组:(-1“”“”)
 
这是某种autocad锁,这样ID就不会被弄乱吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:52 , Processed in 0.475947 second(s), 70 queries .

© 2020-2025 乐筑天下

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