乐筑天下

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

[编程交流] (变量)名称中有什么?

[复制链接]

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 06:37:04 | 显示全部楼层 |阅读模式
我不希望在这里得到答案,但也许有人愿意发表评论。
 
(这部分是LISP,部分是脚本。)
 
我有一个脚本文件来打印很多图纸。这很好,但我总是在开始之前将SDI设置为1,因为我不喜欢一次打开500多个文件。没问题,反正我通常在SDI模式下工作。然而,我已经调整了脚本生成器,因为一位同事希望在最后重置SDI。没问题,在脚本的开头和结尾添加以下行。
 
tbh,它不是SDIMode,但我不记得我用了什么,但它是相关的。
 
然而,当脚本达到纸张大小时
  1. A3 (297 x 420 mm)

脚本退出,AutoCAD将下一个命令(m)导出为指令。我试着在纸张大小周围加引号,但没有影响。
 
我最终通过将变量名更改为“mySDI”来“纠正”它。
 
正如我所说,我并不期待得到答案,但以前有人遇到过这种行为吗?
 
 
 
事实上,我想起了我们曾经有过的另一个奇怪之处。我们的平面图总是旋转90度。我们最终将其重命名,并正确绘制。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 06:43:47 | 显示全部楼层
变量丢失,因为每个图形都有自己的名称空间;这样,您可以在一个名称空间中设置它,并尝试在另一个名称空间中还原它,而在另一个名称空间中不可用。
我认为有两种解决方法:
 
[列表=1]
  • 使用黑板,这是所有图形可用的通用命名空间。请检查VL-BB-SET和VL-BB-REF函数。
  • 根据用户名设置SDI系统变量:
    [/列表]
    1. (if (member (getenv "USERNAME") '("User1st" "User2nd")) (setvar "SDI" 0))
  • 回复

    使用道具 举报

    48

    主题

    1073

    帖子

    1043

    银币

    后起之秀

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

    铜币
    238
    发表于 2022-7-6 06:48:21 | 显示全部楼层
    谢谢你的评论,不过它看起来确实有效。我遇到的“问题”是,剧本在第一幅画的某一行出现了问题。当我重新命名变量时,一切都如期进行。
     
    我希望返工的例行程序运行在VB中。Net,但目前它只是一个简单的脚本,只有两个LISP语句,并不想让它变得更复杂。
    回复

    使用道具 举报

    48

    主题

    1073

    帖子

    1043

    银币

    后起之秀

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

    铜币
    238
    发表于 2022-7-6 06:55:51 | 显示全部楼层
    MSasu,
     
    我现在已经看了(vl bb…,可以看出这是一个比我以前做的更好的选择。
     
    我修改了代码并将其发送出去进行测试。。。。。
    回复

    使用道具 举报

    2

    主题

    389

    帖子

    387

    银币

    初来乍到

    Rank: 1

    铜币
    10
    发表于 2022-7-6 06:57:47 | 显示全部楼层
    你简单描述的行为是不可能的lol:说真的,虽然SDI在我的2012中没有调用任何输入帮助,但它确实可以作为命令工作。嗯。我想知道是否有任何其他“未记录”的SDI ish命令,您可能在工作中无意中遇到。你最初的选择可能非常相关。如果你能准确地回忆起你所拥有的。。。
    回复

    使用道具 举报

    44

    主题

    3166

    帖子

    2803

    银币

    中流砥柱

    Rank: 25

    铜币
    557
    发表于 2022-7-6 07:03:24 | 显示全部楼层
     
    我恭敬地表示不同意。。。下面将详细介绍。
     
     
    SDI(Single Drawing Interface,单图形界面)是一个系统变量,尽管Civil 3D的前身Land Desktop大量使用了剩余的功能,但直到最近才被记录在案。
     
    输入SDI命令的能力产生与通过LISP设置系统变量完全相同的结果:
    1. (setvar 'sdi 1)

     
    ... 这两种情况都可以通过SystemVariableChanged事件在SDI分别为0或1时启用/禁用Autodesk的图形选项卡插件来说明。
     
     
    从逻辑上讲,当您排除关闭调用时,您的脚本必须在本质上考虑SDI=1。。。在SDI=1时,保存活动文档后可以简单地调用OPEN,而在SDI=0时,必须先关闭活动文档(除非希望在同一会话中保持打开无数图形)。
     
    也就是说,在没有看到您的脚本的情况下,我大胆猜测它取决于SDI=1。。。在强制SDI=1(全局变量仅存在于该文档的命名空间中)之前,您可以考虑将原始值写入用户注册表,而不是尝试使用LISP跨文档命名空间恢复原始值。
     
    1. 4

     
    ... 此外,有一天(很快?)通过正确使用静态属性对象、字段、端数据库和核心控制台,您将利用您对黑暗面(也称为.NET开发)的丰富而不断增长的知识,不再需要担心这些琐事。。。Mwaaatttahhhhahahahahaha!
     
    /邪恶的笑声
    回复

    使用道具 举报

    48

    主题

    1073

    帖子

    1043

    银币

    后起之秀

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

    铜币
    238
    发表于 2022-7-6 07:11:57 | 显示全部楼层
    目前,使用MSasu’(VL-BB位)脚本运行良好,因此我不会再次更改它,但我确实想知道如何使用LISP写入注册表,非常感谢。
     
    脚本取决于在SDI模式下运行(正如BB正确所说)。我打开下一个图形,而不必关闭上一个图形。我画一条线来确保所有文件都已更改,然后放弃更改。我们这里的大多数人选择在SDI中工作,因为多年前的网络不可靠(崩溃时只失去1个绘图而不是抽签),所以在SDI模式下运行脚本是明智的。我曾经将代码转换为VBA,但无法在SDI中工作(听起来很熟悉BB?)而且不确定这些机器如何处理一次打开500张图纸。在SDI中运行脚本要容易得多,但确实是VB。Net解决方案在列表中。
     
    至于影响脚本的变量的名称,我知道它不应该,但确实如此。像我引用的另一个例子一样,文件名不应该影响打印的方向,但确实会影响。这只是我们爱上AutoCAD的原因之一。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 07:14:27 | 显示全部楼层
     
    一次不会打开500个图形-脚本将打开、修改、保存和关闭每个已处理的图形,这意味着将只打开两个图形(正在处理的图形和运行脚本的图形)。
    回复

    使用道具 举报

    48

    主题

    1073

    帖子

    1043

    银币

    后起之秀

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

    铜币
    238
    发表于 2022-7-6 07:20:52 | 显示全部楼层
    即使在MDI模式下?
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 07:22:12 | 显示全部楼层
     
    是的,在处理下一个图形之前,脚本可以在MDI模式下打开、修改、保存和关闭每个图形。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-10 14:56 , Processed in 0.476261 second(s), 72 queries .

    © 2020-2025 乐筑天下

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