乐筑天下

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

[编程交流] 重叠两个标题栏

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:04:08 | 显示全部楼层 |阅读模式
大家好,
我是这个论坛的新手。需要你们的全力帮助。
在图形文件中,客户希望创建2个标题栏。两个标题栏应添加到同一图形中。在任何时候,用户都只能看到一个。基本上,一个国家的用户将看到第一个标题栏,而另一个国家的用户将看到第二个标题栏。
这可能吗?如果是的话,我应该付出什么样的努力来实现这一点?
Alisp、Vlisp、ARX。。。。?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:15:56 | 显示全部楼层
欢迎来到CADTutor!
 
为什么不简单地创建一个具有可选可见性状态(每个国家一个)的动态标题栏(使用块编辑器)?
 
我想到的唯一选择是使用一些定义的全局变量(由AcadDoc.lsp?设置),或注册表项(在设置期间设置),该注册表项通过国家代码标识用户的计算机,并以编程方式操作各个国家图层的冻结/解冻。
 
HTH公司
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:25:23 | 显示全部楼层
谢谢RenderMan。
你的意思是说,如果动态块不工作,那么必须编写一些程序?
问题是不同国家的客户将使用相同的文件。因此,当他们打开文件时,无论国家如何,图纸都应相同,只有标题栏应根据国家进行切换。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:43:13 | 显示全部楼层
这可能有用。。。。
 
将TitleBlock1更改为您的真实姓名block,第二个也更改为Titleblock2,以及您计算机的用户名。
 
  1. (defun c:Test (/ selectionset increment selectionsetname)(vl-load-com)
  2. ;;; Tharwat 07. April. 2012 ;;;
  3. (if (eq (getenv "USERNAME") [color=red][b]"Tharwat"[/b][/color])
  4.    (if (setq selectionset
  5.               (ssget "_x"
  6.                      '((0 . "INSERT") (2 .[b][color=blue] "TitleBlock1"[/color][/b]))
  7.               )
  8.        )
  9.      (repeat (setq increment (sslength selectionset))
  10.        (setq selectionsetname
  11.               (ssname selectionset
  12.                       (setq increment (1- increment))
  13.               )
  14.        )
  15.        (vla-put-visible
  16.          (vlax-ename->vla-object selectionsetname)
  17.          :vlax-false
  18.        )
  19.      )
  20.    )
  21.    (if (setq selectionset
  22.               (ssget "_x"
  23.                      '((0 . "INSERT") (2 . [color=blue][b]"TitleBlock2"[/b][/color]))
  24.               )
  25.        )
  26.      (repeat (setq increment (sslength selectionset))
  27.        (setq selectionsetname
  28.               (ssname selectionset
  29.                       (setq increment (1- increment))
  30.               )
  31.        )
  32.        (vla-put-visible
  33.          (vlax-ename->vla-object selectionsetname)
  34.          :vlax-true
  35.        )
  36.      )
  37.    )
  38. )
  39. (princ)
  40. )
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:52:56 | 显示全部楼层
 
使用动态块可以解决您的问题,方法是在一个单独的块中提供两个标题块,然后客户可以操纵这些标题块以适应他们的国家。然而,如果您不擅长操纵可见性状态和处理匿名块,那么使用代码进行操作可能更具挑战性。
 
不幸的是,你正在与客户打交道。人们通常不能轻易地将客户降低到自己的标准,必须考虑到大多数客户都想按自己的方式做事。考虑向客户提供选项,使其能够灵活地提供您寻求的功能,同时不干扰客户的设置。
 
一种选择是提供一个简单的CUI(x),它提供了一个菜单或功能区按钮,然后可以将其集成到客户的工作空间中。只需在其中包含所需的LISP。mnl和此代码将在启动时加载。cui(x)已加载。
 
一个可能更简单的选择是,将每个国家/地区标题栏放置在标题栏本身内的唯一图层上,然后以编程方式(打开绘图时)冻结所有不适用的国家/地区图层,并确保解冻确实适用的国家/地区图层。这需要一个代码系统来确定最终用户是哪个国家的成员,而无需用户输入(多次)。
 
... 这有意义吗?
 
 
我不会向要求客户修改每个用户的源代码的客户提供代码。这可能会产生极大的问题,并导致客户对您或您的雇主形成负面意见。内部使用也可能会出现问题,在将其分发给最终用户之前,应进行充分测试。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:58:43 | 显示全部楼层
 
我还打算建议使用冻结层,但我认为没有必要在这方面进行编程-当然,用户可以在将图形发送给客户之前冻结/解冻必要的层?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:04:21 | 显示全部楼层
我不得不同意。。。让我质疑这一点的部分是,这一行提到同一个文件将在不同的国家使用。需要更多信息。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:00 , Processed in 0.393134 second(s), 77 queries .

© 2020-2025 乐筑天下

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