乐筑天下

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

[编程交流] 使用Entmake创建块

[复制链接]

56

主题

259

帖子

213

银币

后起之秀

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

铜币
270
发表于 2022-7-5 17:58:57 | 显示全部楼层 |阅读模式
你好
 
我试图创建一个块,我不知道为什么它不起作用。
 
有人能帮我一下吗。
 
  1. (defun CreationBois (Nom Dim1 Dim2)
  2.    
  3.    
  4.     (entmake (list '(0 . "BLOCK")
  5.                    (cons 2 nom)
  6.                    (cons 10 (list (/ Dim1 2) Dim2))
  7.                    '(70 . 1)
  8.               )
  9.     )
  10.     (entmake
  11.         (list '(0 . "LINE")
  12.               '(8 . "-LU BOIS")
  13.               '(10 0 0)
  14.               (cons 11 (list Dim1 0))
  15.         )
  16.     )
  17.     (entmake (list '(0 . "LINE")
  18.                    '(8 . "-LU BOIS")
  19.                    (cons 10 (list Dim1 0))
  20.                    (cons 11 (list Dim1 Dim2))
  21.              )
  22.     )
  23.     (entmake (list '(0 . "LINE")
  24.                    '(8 . "-LU BOIS")
  25.                     (cons 10 (list Dim1 Dim2))
  26.                     (cons 11 (list 0 Dim2))
  27.              )
  28.     )
  29.     (entmake (list '(0 . "LINE")
  30.                    '(8 . "-LU BOIS")
  31.                     (cons 10 (list 0 Dim1))
  32.                    '(11 0 0)
  33.                )
  34.     )
  35.     (entmake (list '(0 . "LINE")
  36.                    '(8 . "-LU BOIS")
  37.                    '(10 0 0)
  38.                    (cons 11 (list Dim1 Dim2))
  39.              )
  40.     )
  41.     (entmake (list '(0 . "LINE")
  42.                    '(8 . "-LU BOIS")
  43.                    (cons 10 (list Dim1 0))
  44.                    (cons 11 (list 0 Dim2))
  45.              )
  46.     )
  47.     (entmake (list '(0 . "ENDBLK")                          
  48.                    '(8 . "_LU BOIS")
  49.                 )
  50.     )
  51. )

 
它曾经有用!但并不完全像这样。
我没有收到任何错误。
 
当做
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-5 18:05:44 | 显示全部楼层
你是不是特别想制造一个匿名区块?
 
如果是这样,您将向函数传递什么块名?
 
这对我有用:(CreationBois“*U1”8 9)
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

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

铜币
270
发表于 2022-7-5 18:09:09 | 显示全部楼层
我试图传递4x4的块名。
 
这不是匿名的
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

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

铜币
270
发表于 2022-7-5 18:10:18 | 显示全部楼层
好吧,我想出来了!!
 
不得不把
  1. (70 . 1) to (70 . 2)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:14:08 | 显示全部楼层
嗨,弗兰克,
 
试试这个最小化的代码
 
  1. (defun CreationBois  (nom Dim1 Dim2)
  2. (if (tblsearch "BLOCK" nom)
  3.    (princ
  4.      (strcat "\nBlock name <" nom "> is already existed !"))
  5.    (progn
  6.      (entmake (list '(0 . "BLOCK")
  7.                     (cons 2 nom)
  8.                     (cons 10 (list (/ Dim1 2) Dim2))
  9.                     '(70 . 0)
  10.                     )
  11.               )
  12.      (mapcar '(lambda (x y)
  13.                 (entmake
  14.                   (list '(0 . "LINE")
  15.                         '(8 . "-LU BOIS")
  16.                         x
  17.                         y
  18.                         )
  19.                   ))
  20.              (list '(10 0 0)
  21.                    (cons 10 (list Dim1 0))
  22.                    (cons 10 (list Dim1 Dim2))
  23.                    (cons 10 (list 0 Dim1))
  24.                    '(10 0 0)
  25.                    (cons 10 (list Dim1 0)))
  26.              (list (cons 11 (list Dim1 0))
  27.                    (cons 11 (list Dim1 Dim2))
  28.                    (cons 11 (list 0 Dim2))
  29.                    '(11 0 0)
  30.                    (cons 11 (list Dim1 Dim2))
  31.                    (cons 11 (list 0 Dim2)))
  32.              )
  33.      (entmake (list '(0 . "ENDBLK")
  34.                     '(8 . "-LU BOIS")
  35.                     )
  36.               )
  37.      )
  38.    )
  39. (princ)
  40. )
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

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

铜币
270
发表于 2022-7-5 18:20:02 | 显示全部楼层
我试图用foreach最小化代码
 
如果我做不到。我试试你的。
 
感谢
 
干杯和啤酒!
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-5 18:20:52 | 显示全部楼层
 
如果将位代码1传递给组70,则块名必须以开头
  • 因为这将是一个匿名块。
    您应该将组70更改为0,而不是2,因为2表示您将向其附加属性。
  • 回复

    使用道具 举报

    56

    主题

    259

    帖子

    213

    银币

    后起之秀

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

    铜币
    270
    发表于 2022-7-5 18:26:13 | 显示全部楼层
    好的,我已经走了这么远,我认为他们的一些东西,我没有得到与列表和引用。
     
    1. (defun CreationBois (Nom Dim1 Dim2)
    2.    (entmake (list '(0 . "BLOCK")
    3.            '(100 . "AcDbEntity")
    4.            '(100 . "AcDbBlockBegin")
    5.            (cons 2 nom)
    6.            '(8 . "_LU BOIS")
    7.            (cons 10 (list (/ Dim1 2) Dim2))
    8.            '(70 . 0)
    9.      )
    10.    )
    11.    
    12.    (setq points  (list (list (list(0 0)) (list (Dim1 0)))
    13. ;;;                        '((list Dim1 0) (list Dim1 Dim2))
    14. ;;;                        '((list Dim1 Dim2) (list 0 Dim2))
    15. ;;;                        '((list 0 Dim1) (list 0 0))
    16. ;;;                        '((list Dim1 Dim2) (list 0 0))
    17. ;;;                        '((list Dim1 0) (list 0 Dim2))
    18.            )
    19.    )
    20.    
    21.    (foreach point points
    22. (entmake
    23.     (list '(0 . "LINE")
    24.           '(8 . "_LU BOIS")       
    25.           (cons 10 (car points))
    26.           (cons 11 (cadr points))
    27.     )
    28. )
    29.    )
    30.    (entmake (list '(0 . "ENDBLK")
    31.            '(100 . "AcDbBlockEnd")
    32.            '(100 . "AcDbBlockEnd")
    33.            '(8 . "_LU BOIS")
    34.      )
    35.    )
    36. )

     
    现在无论我做什么,它总是给我和错误。
     
    有什么建议吗?
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-5 18:28:36 | 显示全部楼层
    对于初学者:
     
    将(车点)更改为(车点)等
     
    据我所知,这100个小组没有真正的必要
     
    “块”组10需要x、y和z值
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 18:31:20 | 显示全部楼层
    提示:
    1. (cons 1 (list 2 3 4)) == (1 2 3 4) == (list 1 2 3 4)
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-13 01:09 , Processed in 0.901643 second(s), 72 queries .

    © 2020-2025 乐筑天下

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