乐筑天下

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

[编程交流] 可以计数和命名的LISP

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 22:38:17 | 显示全部楼层 |阅读模式
您好,亲爱的大师们,
 
我的名字叫肖恩,我对Lisp编程非常陌生。现在已经两周了,我开始对自己的代码无法正常工作感到沮丧。第一件事,我能够使lisp计算块被选中,我很高兴它。然后我决定也命名被选中的块。我知道“BCOUNT”命令,但AutoCAD的旧版本还没有BCOUNT命令(AutoCAD 2010)。我真的很想学习LISP,但每次都被卡住了。请帮我输入这个代码。我去过很多网站,仍然不知道下一步该做什么。提前感谢各位大师。
 
 
这是我的密码
 
  1. (defun c:BL (/ ssblks ssblks2 en ctr blk ent enlist) ;define funcntion
  2. (vl-load-com)
  3.        
  4. (if (setq ssblks (ssget))) ;|selects blocks|;
  5.         (prog
  6.                
  7.                 (setq blk (sslength ssblks)) ;|get number of blocks|;
  8.                 (setq ct 0) ;|set counter to zero|;
  9.                 (repeat (ssget ssblks2)) ;|repeat the selecting blocks|;
  10.                 (ssadd (ssname ssblks2 ct) ssblks) ;|add ssname froms ssblks selection|;
  11.                 (setq en (car(entsel ssblks2)) ;|gets entity from ssblks2|;
  12.                 (setq enlist(cdr (assoc 2 (entget en)))) ;|get the dxf group codes of the entity;|
  13.                 (alert (strcat "\n There are " (itoa blk) " blocks and these are: " (vla-get-effectivename (vlax-ename->vla-object enlist)) )) ;|display result|;
  14.         ) ;end prog
  15.         (princ)
  16. ) ;end if
  17. (princ)
  18. );end defun
  19. (princ)
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 22:53:08 | 显示全部楼层
欢迎来到论坛,肖恩!
 
 
 
 
概览:
[列表]
  • 没有PROG语句,可能是PROGN。
  • 请检查帮助中的重复功能;它需要循环次数和动作。
  • SSGET将返回一个应检索到变量中的选择集,它不支持通过引用赋值。
  • ct计数器无索引。
  • ENTSEL需要字符串(提示)作为参数,而不是选择集。
  • VLAX-ENAME->VLA-OBJECT需要实体名(DXF代码-1)。
    [/列表]
  • 回复

    使用道具 举报

    4

    主题

    2143

    帖子

    2197

    银币

    限制会员

    铜币
    -24
    发表于 2022-7-5 22:57:09 | 显示全部楼层
    仅供参考,BCOUNT已经存在很长一段时间了,它是一种快速工具。也许您没有加载Express Tools?
     
    回复

    使用道具 举报

    1

    主题

    3

    帖子

    2

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 23:11:50 | 显示全部楼层
    @MSasu公司
    非常感谢您提供的信息。帮了我很多。现在,我将首先分解代码。Autolisp是我学过的第一个编程。在网页制作方面非常不同。哈哈。
     
    @SLW210
    是的,我已经知道了。这是一个伟大的工具,但对于那些谁有较低版本的cad像2010年。Bcount尚未加入该计划。这就是为什么我要做一个。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 23:15:34 | 显示全部楼层
    也许这些项目会有所帮助?
     
    块计数器
    动态块计数器
    嵌套块计数器
    回复

    使用道具 举报

    4

    主题

    2143

    帖子

    2197

    银币

    限制会员

    铜币
    -24
    发表于 2022-7-5 23:29:36 | 显示全部楼层
    请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
    回复

    使用道具 举报

    4

    主题

    14

    帖子

    10

    银币

    初来乍到

    Rank: 1

    铜币
    20
    发表于 2022-7-5 23:32:06 | 显示全部楼层
    根据指南重新发布。。。我希望如此。
     
    你好,肖恩,
    我十年前工作过的一家公司使用以下代码来显示每个块名和每个块出现的实例数。它可能是通过这样的论坛找到/复制的。没有任何文档说明是谁编写了这段代码,也没有说明它的实际使用时间。如果有人认出它是他们的,我衷心感谢您的使用!
     
    当您运行BLKLST并要求您选择对象时,请键入ALL。F2显示列表。希望它能按你的需要工作。。。
     
    [code](定义C:BLKLST(/BLKS CHK I J K L L1 N BNAME ENAME EDATA BLIST BNUM BNAME1 BNAME2 TEMP1 TEMP2)(原则“\N使用标准选择方法”)(setq BLKS(ssget(list(cons 0“INSERT”)))(setq L(sslength BLKS))(setq L(-L 1))(setq I 0)(setq BLIST(list“BLOCK NAMES”))(setq BNUM(list“INSTANCES”))(而(
    回复

    使用道具 举报

    1

    主题

    3

    帖子

    2

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 23:40:46 | 显示全部楼层
    非常感谢李·麦克先生和奥格伦先生为我提供口吃。我会学习你分享给我的Lisp程序。正如我在李·麦克爵士的节目中看到的那样,我的表情就像“啊!怎么了???他是怎么做的?”你真的怎么样?我想知道。哈哈。ORgrown先生,为了理解你展示的lisp,我还有很多东西需要学习,有些是熟悉的代码,但我仍然需要学习更多。这将是我创建LISP的第一步。非常感谢各位大师!
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-11 06:02 , Processed in 0.354557 second(s), 68 queries .

    © 2020-2025 乐筑天下

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