乐筑天下

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

[编程交流] 代码在特定

[复制链接]

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 08:12:47 | 显示全部楼层 |阅读模式
这可能是第一次。。。我希望有人能对这个问题发表评论:
 
一直在客户办公室的特定计算机上工作。它使用了ACAD2K9,效果很好。机器位于Novell网络上,显然有一些TSR允许对机器进行维护和监控。偶尔会发生一些意想不到的延迟,但除此之外一切都还好。今天早上,我正在调试这台机器过去4周用来开发的代码。我做了一些改变,一切似乎都很好,然后砰的一声。突然,代码开始表现得非常糟糕。我把范围缩小到mleader命令。这就是我注释掉mleader命令的时候,代码稳定下来了。但多重引线的这个简单问题导致忽略了行,引线指向了与代码无关的奇怪方向,这只会造成真正的混乱。由于与客户的保密协议,无法发送任何屏幕截图。
 
我们已经将其缩小到这台机器,因为包括我的笔记本电脑在内的其他三台工作站使用相同的dwg文件和VLISP代码进行了测试,在这些工作站上一切都很好。
 
IT人员将重新安装AutoCAD。。。也许这会管用,但我恳求他们炸掉硬盘,重新安装一切,甚至主动提出自己动手,但他们坚持可以通过重新安装来修复。
 
有人听说过这样的事吗?对于这样的事件,人们会尝试哪些补救措施。
 
根据我的经验,如果这是我的电话,我会彻底清理硬盘,重新安装操作系统和软件,然后完成。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:21:16 | 显示全部楼层
你在使用命令调用吗?因为命令提示会因版本而异,有些提示也取决于上次使用的设置和当前样式,这是我不惜一切代价避免主流应用程序调用命令的主要原因。
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 08:27:41 | 显示全部楼层
以下是其中一个mleader命令的示例:
 
最麻烦的是,这台机器从一开始就运转良好。即使是今天早上,一切都很好。就在上午9点45分左右,一切都向南发展。到目前为止,只有这台工作站有问题。AutoCAD文本窗口显示一系列无效的输入消息,但仅在此计算机上运行时才显示。
 
我应该包括这个警告。这段代码中的几个MLEADER是使用entmake创建的。我这样做只是为了获得一些entmake过程的经验。但是,如果您曾经复制过mleader的属性,然后将其粘贴到一个需要大约20行的entmake命令中,那么您就会明白为什么人们会选择命令版本而不是entmake。使用entmake创建的MLEADER工作正常,没有问题。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:32:09 | 显示全部楼层
错误消息应该给出例程遇到的问题的一些指示-您收到了什么消息?
 
我假设您在向命令函数提供点时考虑了OSMODE?
 
作为替代,我不会使用entmake(这方面的DXF组太多了!),而是“AddMLeader”方法。
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 08:42:26 | 显示全部楼层
在文本窗口中唯一发生的事情是我看到4行包含“无效输入”。我刚刚注意到了一件事。我删除并重新输入了上面的mleader命令,愿意尝试任何东西。。。似乎发生的是,第一个坐标不是箭头的点,而是文本所在的位置,但箭头的点在BF中消失了,我无法解释ACAD是如何选择该位置的。它与代码中的极坐标无关。我想知道默认mleader的属性是否发生了变化,但看看它们,我看不出有什么异常,这台机器上的设置与另一台运行代码的机器上的设置相匹配。无论如何,多重引线设置都是dwg文件中固有的,并且两台机器使用的是相同的文件。
 
以下是mleader在坏机器上绘制时的属性:
 
  1. ((-1 . <Entity name: 7ef52158>) (0 . "MULTILEADER") (330 .
  2. <Entity name: 7ef01cf8>) (5 . "9CBA3") (100 . "AcDbEntity") (67 . 0) (410 .
  3. "Model") (8 . "Text1") (100 . "AcDbMLeader") (300 . "CONTEXT_DATA{") (40 . 1.0)
  4. (10 44.5 -2.525 0.0) (41 . 1.5) (140 . 1.5) (145 . 1.0) (174 . 1) (175 . 1)
  5. (176 . 0) (177 . 0) (290 . 1) (304 . "TEXT FOR THE\\PMLEADER ENTITY")
  6. (11 0.0 0.0 1.0) (340 . <Entity name: 7ef02420>) (12 45.5 -1.625 0.0) (13 1.0
  7. 0.0 0.0) (42 . 0.0) (43 . 5.0) (44 . 10.25) (45 . 1.0) (170 . 1) (90 .
  8. -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 15737888)
  9. (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295
  10. . 0) (296 . 0) (110 45.5 -1.625 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 .
  11. 0) (302 . "LEADER{") (290 . 1) (291 . 1) (10 42.8125 -2.525 0.0) (11 1.0 0.0
  12. 0.0) (90 . 0) (40 . 1.6875) (304 . "LEADER_LINE{") (10 1.5 -4.4375 0.0) (91 .
  13. 0) (305 . "}") (303 . "}") (301 . "}") (340 . <Entity name: 7ef02080>) (90 .
  14. 279552) (170 . 1) (91 . -1056964608) (341 . <Entity name: 7ef01ca0>) (171 . -2)
  15. (290 . 1) (291 . 1) (41 . 1.6875) (42 . 1.5) (172 . 2) (343 . <Entity name:
  16. 7ef02420>) (173 . 1) (95 . 1) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0)
  17. (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0)
  18. (178 . 0) (179 . 1) (45 . 1.0))

 
这里是好的一个属性。它们都是用相同的代码绘制的,只是在不同的机器上。
 
  1. ((-1 . <Entity name: 7ef2f4f8>) (0 . "MULTILEADER") (330 .
  2. <Entity name: 7ef01cf8>) (5 . "9C66F") (100 . "AcDbEntity") (67 . 0) (410 .
  3. "Model") (8 . "Text1") (100 . "AcDbMLeader") (270 . 2) (300 . "CONTEXT_DATA{")
  4. (40 . 1.0) (10 52.1875 -11.875 0.0) (41 . 1.5) (140 . 1.5) (145 . 1.0) (174 .
  5. 1) (175 . 1) (176 . 0) (177 . 0) (290 . 1) (304 . "TEXT FOR THE\\PMLEADER ENTITY")
  6. (11 0.0 0.0 1.0) (340 . <Entity name: 7ef02420>) (12 53.1875
  7. -10.975 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170
  8. . 1) (90 . -1073741824) (171 . 1) (172 . 5) (91 . -1073741824) (141 . 0.0) (92
  9. . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0)
  10. (295 . 0) (296 . 0) (110 45.5 -1.625 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0)
  11. (297 . 0) (302 . "LEADER{") (290 . 1) (291 . 1) (10 50.5 -11.875 0.0) (11 1.0
  12. 0.0 0.0) (90 . 0) (40 . 1.6875) (304 . "LEADER_LINE{") (10 45.5 -1.625 0.0) (91
  13. . 0) (170 . 1) (92 . -1056964608) (340 . <Entity name: 0>) (171 . -2) (40 .
  14. 0.0) (341 . <Entity name: 0>) (93 . 0) (305 . "}") (271 . 0) (303 . "}") (272 .
  15. 9) (273 . 9) (301 . "}") (340 . <Entity name: 7ef02080>) (90 . 279552) (170 .
  16. 1) (91 . -1056964608) (341 . <Entity name: 7ef01ca0>) (171 . -2) (290 . 1) (291
  17. . 1) (41 . 1.6875) (42 . 1.5) (172 . 2) (343 . <Entity name: 7ef02420>) (173 .
  18. 1) (95 . 1) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608)
  19. (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1)
  20. (45 . 1.0) (271 . 0) (272 . 9) (273 . 9))

 
我自己还在研究这个。顺便说一句pt2=(48.0.0)。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:47:07 | 显示全部楼层
比尔,请考虑一下,正如我在上一篇关于命令调用的即时命令的帖子中所提到的:
 
 
  1. [color=blue]Command: MLEADER[/color]
  2. [color=green]Specify leader arrowhead location[/color] or [leader Landing first/[color=red]Content first[/color]/Options] <Options>: [color=red]C[/color]
  3. Specify first corner of text or [leader arrowHead first/leader Landing first/Options] <Options>:
  4. Specify opposite corner:
  5. Specify leader arrowhead location:
  6. [color=blue]Command: MLEADER[/color]
  7. [color=red]Specify first corner of text or[/color] [[color=green]leader arrowHead first[/color]/leader Landing first/Options] <Options>: *Cancel*
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 08:50:35 | 显示全部楼层
好的,我明白你的意思,不幸的是我现在不在可疑机器旁。但如果发生了这种情况,那么应该很容易修复。可能发生的事情是,虽然今天在使用一些命令,确切地说是mleader命令,但我可能改变了AutoCAD副本处理mleader命令的方式。
 
因此,尽管我关闭了AutoCAD并冷启动了计算机,但当我回到AutoCAD的下一个会话时,它会想起某个白痴(可能是我)无意中设置了mleader的默认操作,将文本作为第一个输入。这当然可以解释一切。我只是没有想到,重新启动AutoCAD不会使事情回到出厂默认模式。我当然希望是这样,但我要到明天早上才能知道。
 
更新:我在家里的2K12机器上测试了这个,果然,这是所有问题的根源。显然,我只是对AutoCAD的行为了解得不够,无法理解这一点。所以,请大家齐声。。。。
 
  1. 4

谢谢你的建议。
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-6 08:58:49 | 显示全部楼层
一个很好的经验法则。当一切都失败时,寻找一些简单的东西,它通常就在那里。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:04:40 | 显示全部楼层
 
但是,如果另一个用户决定以不同的顺序构造MLeader,那么现在您的程序将再次崩溃。。。
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 09:10:21 | 显示全部楼层
是的,这是正确的。但现在我将更改mleader的命令,使其以“H”选项开始。这将迫使我需要足够长的时间来研究AddMLeader方法。我同意你的建议,尽量不要直接指挥。在我推进这些项目的过程中,我会牢记这一点。
 
今天早上我询问了周围的用户,他们都不知道mleader有这个历史跟踪。他们还同意,如果我强制使用“H”开关,所有人都很好,这也将成为他们工作站上mleader的默认设置。首先,我们有更多的理由了解AddMLeader可以做些什么来避免这种情况。
 
顺便说一句,我相信你可能知道,但我在AfraLISP发现的错误处理例程对我来说很好。即使用户在程序运行期间按Esc键,它也会重置我调整过的所有变量,如pickbox、osmode和cmdecho。用户对此非常感谢。仍然有一些人抱怨说,自从运行我的程序以来,他们的机器速度变慢了。我无法解释这一点。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:19 , Processed in 1.552952 second(s), 72 queries .

© 2020-2025 乐筑天下

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