乐筑天下

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

[编程交流] 旧Lisp不';t工作于

[复制链接]

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 12:04:13 | 显示全部楼层 |阅读模式
大家好,
 
我有一个旧的Lisp程序写了一个善良的人从这个网站,(谢谢李Mac)。我在ACAD 2006中使用了这个lisp,效果很好!现在,我的公司已经转移到ACAD 2008,lisp不再正常工作。我猜可能是某个命令的文本在从06升级到08的过程中发生了变化。不太确定。
 
在ACAD 06中,lisp通过选择我正在使用的块的属性来工作。如果选择块的任何其他部分,则命令结束。此外,我一次只能选择一个区块。当我需要更换数百个时,这可能会很耗时。但是lisp仍然非常有用。
 
 
 
 
尽管如此,我有两个目标。
[列表]
  • 在ACAD 2008中找到使此lisp工作的方法。即使Lisp程序的能力没有改变,只要能够在08年使用它将是非常有益的。
  • 下一步是询问某人是否感觉自己像青蛙一样,能够找到一种方法来调整lisp,以便能够一次抓住几个块进行重新编号。重新编号顺序可以是随机的。
    我附加了lisp例程和我使用它的块。块的属性部分是中心文本,另一个文本是Dtext。我还将其保存在ACAD 2000版本中。
     
    P、 我重写了这个帖子,这样我可以更好地总结我想找到的东西,而不是重复帖子。
    雷纳姆。lsp
    ACAD点块。图纸
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 12:09:51 | 显示全部楼层
    Jadeous-
     
    你看到我最近在你的另一个帖子上的帖子了吗?
     
    编辑>你确定是我写的Lisp程序。。。看起来不像我要写的东西。。。
    回复

    使用道具 举报

    7

    主题

    55

    帖子

    48

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-6 12:12:34 | 显示全部楼层
    是的,我试过了。没有运气。这与你给我的06年效果很好的那一个大不相同。
    回复

    使用道具 举报

    7

    主题

    55

    帖子

    48

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-6 12:14:08 | 显示全部楼层
    我收到的错误是-“错误。无法pase文本。”
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 12:18:29 | 显示全部楼层
    如果在块中选择除属性之外的任何内容,LISP当然会失败,因为它使用nentsel进行选择。
     
    但是我看不出这个Lisp程序在你的另一个帖子中发布的reNum上实现了什么。。。
    回复

    使用道具 举报

    7

    主题

    55

    帖子

    48

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-6 12:21:23 | 显示全部楼层
    在原始线程中,较长的lisp(由于缺乏更好的描述,附加到此线程的lisp)在06中运行良好。我从来没用过的那个短的。我坚持了更长的时间,因为它奏效了。
     
    所以现在我只需要弄清楚当我切换到ACAD 2008时它为什么停止工作。即使它的工作原理与06完全相同,我也没问题。关于同时选择多个的另一部分,可以等待。我只需要能够像2006年ACAD那样使用它。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 12:23:28 | 显示全部楼层
    这就是我要说的——我在你的另一个线程中发布的代码应该可以按要求工作,具有多个块选择。
     
    如果你还没有试过,那么就没有必要再继续了。
    回复

    使用道具 举报

    7

    主题

    55

    帖子

    48

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-6 12:28:02 | 显示全部楼层
    我试过短一点的。它以回复结束,什么都没有发生。所有区块均未编号。这就是为什么取而代之的是更长的一个。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 12:31:27 | 显示全部楼层
     
     
    不应该有再生-你确定你正在尝试这个。
    回复

    使用道具 举报

    7

    主题

    55

    帖子

    48

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-6 12:34:12 | 显示全部楼层
    对我试了一个。
     
    让我们重新开始一会儿。。。。这让人非常困惑。
     
    这是我唯一使用的Renum lisp。。。我在ACAD 2008中需要的那个
     
    (定义c:renum(/oldPref oldSuf oldStart curText curStr vlaObj keepText)
    (vl load com)
    (defun TTC_Paste(pasteStr keepText/nslLst vlaObj)
    (如果(setq nslLst(nentsel“\n粘贴文本>>”))
    (progn(cond
    ((和(=4(长度nslLst))
    (=“DIMENSION”(cdr(assoc 0(entget(car(last nslLst)1072;а)а)а)а);结束和
    (setq vlaObj(vlax ename->vla object(cdr(assoc-1(entget(car(last nslLst ϞϞ)Ϟ)))))
    (setq oldStat(vla get Measurement vlaObj))
    (如果是keepText
    (如果(=(vla get TextOverride vlaObj)“”)
    (setq pasteStr(strcat pasteStr(rtos oldStat(vla get UnitsFormat vlaObj)(vla get PrimaryUnitsPrecision vlaObj)))
    (setq pasteStr(strcat pasteStr(vla get TextOverride vlaObj 107;)а)а)
    (if(vl-catch-all-error-p(vl catch all apply’vla put TextOverride(list vlaObj pasteStr)))
    (princ“\n无法粘贴。对象可能位于锁定层。”);结束条件#1
    ((和(=4(长度nslLst))
    (=“ACAD_TABLE”(cdr(assoc 0(entget(car(last nslLst k)а)а))));结束和
    (setq vlaObj(vlax ename->vla对象(car nslLst)))
    (if keepText(setq pasteStr(strcat pasteStr(vla get TextString vlaobj)))
    (if(vl-catch-all-error-p(vl catch all apply’vla put TextString(list vlaObj pasteStr)))
    (普林斯“\n错误。无法pase文本。”)(entupd(car(last nslLst  kа)а));结束条件#2
    ((和(=4(长度nslLst))
    (=“INSERT”(cdr(assoc 0(entget(car(last nslLst)1072;а)а)а)а);结束和
    (princ“\n无法粘贴到块的DText或MText。”);结束条件#3
    ((和(=2(长度nslLst))
    (成员(cdr(assoc 0(entget(car nslLst)))'(“TEXT”“MTEXT”“ATTRIB”“ATTDEF”)));结束和
    (setq vlaObj(vlax ename->vla对象(car nslLst)))
    (if keepText(setq pasteStr(strcat pasteStr(vla get TextString vlaobj)))
    (if(vl-catch-all-error-p(vl catch all apply’vla put TextString(list vlaObj pasteStr)))
    (princ“\n错误。无法传递文本。”);结束条件#4
    (T(princ“\n无法粘贴。无效对象。”);结束条件#5
    ); 结束条件
    T) ;结束程序
    无);如果结束
    );_TTC_粘贴
    (setq aDoc(vla get ActiveDocument(vlax get acad object)))
    (vla StartUndoMark aDoc)
    (if(非rnm:Pref)(setq rnm:Pref“”)(if(非rnm:Suf)(setq rnm:Suf“”))
    (如果(非rnm:启动)(setq rnm:启动1))
    (setq oldPref rnm:Pref oldSuf rnm:Suf oldStart rnm:Start);结束setq
    (setq rnm:Pref(getstring T(strcat“\n类型前缀:”))
    (if(=“”rnm:Pref)(setq rnm:Pref oldPref))(if(=“”rnm:Pref)(setq rnm:Pref“”)
    (setq rnm:Suf(getstring T(strcat“\n类型后缀:”))
    (如果(=“”rnm:Suf)(setq rnm:Suf oldSuf));(如果(=“”rnm:Suf)(setq rnm:Suf“”)
    (setq rnm:Start(输入起始编号
    (itoa rnm:开始)“>:”)
    (如果(null rnm:启动)(setq rnm:启动oldStart))
    (initget“Yes NoÄ
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-5 10:30 , Processed in 0.453070 second(s), 72 queries .

    © 2020-2025 乐筑天下

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