乐筑天下

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

[编程交流] 文本之间的链接

[复制链接]

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 12:58:35 | 显示全部楼层 |阅读模式
当编辑第二个更改的文本时,lisp是否可以在两个文本之间创建链接
 
我用field做,但需要很长时间。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:05:31 | 显示全部楼层
也许是使用对象反应器?
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 13:11:26 | 显示全部楼层
我不明白。
解释plz
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:12:48 | 显示全部楼层
好的,您提供了一个带有VLA对象(所有者)列表的对象反应器,当列表中的任何对象被修改时(取决于回调数据),反应器将启动。
 
因此,您可能可以将文本对象的句柄存储在其扩展数据中,以便在触发对象反应器时,程序知道链接了哪些对象。
 
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 13:17:12 | 显示全部楼层
还要注意,为了使反应器正常工作,必须在图形中加载LISP例程。
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 13:24:16 | 显示全部楼层
这不是Lisp程序的答案,但:
链接两个对象(如文本)的简单方法是将文本制作成块。
然后,您可以将该块复制到任何位置,并根据需要制作尽可能多的副本。因此,当您编辑一个块时,所有其他块都会更新。
要编辑文本块,双击它,将出现“块信息”对话框,然后单击“确定”,将出现“参照编辑”工具栏框。现在双击要编辑的文本,完成后单击“参照编辑”工具栏上的最后一个按钮,以更新图形中的所有相同块。
我在画作中经常使用这种技巧来完成笔记。
注意:如果单击“参照编辑”工具栏上的红色X关闭按钮,它将消失,并且屏幕仍处于参照编辑模式。如果发生这种情况,只需键入refedit,工具栏就会重新出现。
对于lisp解决方案,您需要使用一个使用vlr修改的对象反应器,
vlr openedForModify事件和vlr复制的事件。
所以基本上
程序将要求用户选择文本(如果嵌入lisp,则将emane传递给程序)。
然后程序将反应堆连接到该对象。
vlr复制事件将用于将反应堆连接到文本的新副本
vlr openedForModify首先获取原始文本(DXF代码1),并将其保存到变量中
vlr modified事件将使用ssget,使用来自vlr openedForModify的变量来获取所有类似的文本对象,然后更改它们的文本。
我看到的问题是,如果您有50个类似的文本对象,则会为每个对象触发vlr修改事件,即使由于ssget将它们剔除,它不会更改其他文本。这将是大量的程序执行,毫无意义。我不认为这会因为文本对象的数量而变得糟糕,只是可能需要更多的时间来完成大量的对象。
有人对此有想法吗
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:28:29 | 显示全部楼层
我只是想链接特定的文本对象,通过将它们的句柄存储在对象的扩展数据中,然后反应器很快知道要查找哪些对象。
 
如本例所示:
 
http://www.cadtutor.net/forum/showpost.php?p=251211&postcount=12
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 13:31:43 | 显示全部楼层
正如OP所说的“在两个文本之间”,所以李提到的选项也是我的方法。
我怀疑这两个文本对象可能不完全相同,但共享一些需要更新的数据。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:34:32 | 显示全部楼层
谢谢Alan
 
Asos,这将帮助您编写对象扩展数据的句柄,只需创建一个有效的应用程序字符串(用于“app”参数)来标识数据。
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] putxdat [b][color=RED]([/color][/b]Obj App Data [b][color=BLUE]/[/color][/b] ent type1 valeur[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] xtype
  3.    [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-variant[/color][/b]
  4.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b]
  5.        [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b]
  6.          [color=Blue][b]vlax-vbInteger[/b][/color] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]1001[/color][/b] [b][color=#009900]1000[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] xval
  8.    [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-variant[/color][/b]
  9.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b]
  10.        [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b]
  11.          [b][color=Blue]vlax-vbVariant[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] App Data[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12. [b][color=RED]([/color][/b][b][color=BLUE]vla-setXData[/color][/b] Obj xtype xval[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 13:38:49 | 显示全部楼层
我认为需要更多信息
问题:
会有两个以上的文本对象吗?
两个文本对象中的数据是否总是相同的,或者只是部分文本将被更改?
这是多行文字还是单行文字?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 06:21 , Processed in 0.348651 second(s), 72 queries .

© 2020-2025 乐筑天下

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