乐筑天下

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

[编程交流] 关于Entma示例代码的帮助

[复制链接]

7

主题

19

帖子

11

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:02:41 | 显示全部楼层 |阅读模式
我试图用ENTMAKE在一个简单的多边形上做一个实体图案填充。
 
知道为什么下面的顺序不起作用吗?
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. (setq layername "0" x1 0.0 y1 0.0 z1 0.0 x2 120.0 y2 0.0 z2 0.0
  3.      x3 120.0 y3 120.0 z3 0.0 x4 0.0 y4 120.0 z4 0.0)
  4. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  5. (setq dummyhatch
  6. (list (cons 0 "HATCH")               
  7.        (cons 2 "SOLID")
  8.        (cons 8 layername)
  9.        (cons 62 256)
  10.        (cons 10 (list 0.0 0.0 0.0))
  11.        (cons 210 (list 0.0 0.0 0.0))
  12.        (cons 70 1)
  13.        (cons 71 0)
  14.        (cons 91 1)
  15.        (cons 92 1)
  16.        (cons 93 4)
  17.        (cons 72 1)
  18.        (cons 10 (list x1 y1 z1))
  19.        (cons 11 (list x2 y2 z2))
  20.        (cons 72 1)
  21.        (cons 10 (list x2 y2 z2))
  22.        (cons 11 (list x3 y3 z3))
  23.        (cons 72 1)
  24.        (cons 10 (list x3 y3 z3))
  25.        (cons 11 (list x4 y4 z4))
  26.        (cons 72 1)
  27.        (cons 10 (list x4 y4 z4))
  28.        (cons 11 (list x1 y1 z1))
  29.        (cons 97 0)
  30.        (cons 75 2)
  31.        (cons 76 1)
  32.        (cons 98 1)
  33.        (cons 10 (list 0.0 0.0 0.0))
  34.        (cons 470 "LINEAR")))
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. (entmake dummyhatch)
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 12:22:54 | 显示全部楼层
我玩了你的代码,并使其工作。似乎需要100个组码来填充。加上210代码应该是“0 0 1”。以下工作有效,不知道重新订购是否有任何影响:
 
  1. (setq layername "0" x1 0.0 y1 0.0 z1 0.0 x2 120.0 y2 0.0 z2 0.0
  2. x3 120.0 y3 120.0 z3 0.0 x4 0.0 y4 120.0 z4 0.0)
  3. (setq dummyhatch
  4. (list (cons 0 "HATCH")
  5. '(100 . "AcDbEntity")
  6. (cons 8 layername)
  7. '(100 . "AcDbHatch")
  8. (cons 62 256)
  9. (cons 10 (list 0.0 0.0 0.0))
  10. (cons 210 (list 0.0 0.0 1.0)) ;;changed z
  11. (cons 2 "SOLID")
  12. (cons 70 1)
  13. (cons 71 0)
  14. (cons 91 1)
  15. (cons 92 1)
  16. (cons 93 4)
  17. (cons 72 1)
  18. (cons 10 (list x1 y1 z1))
  19. (cons 11 (list x2 y2 z2))
  20. (cons 72 1)
  21. (cons 10 (list x2 y2 z2))
  22. (cons 11 (list x3 y3 z3))
  23. (cons 72 1)
  24. (cons 10 (list x3 y3 z3))
  25. (cons 11 (list x4 y4 z4))
  26. (cons 72 1)
  27. (cons 10 (list x4 y4 z4))
  28. (cons 11 (list x1 y1 z1))
  29. (cons 97 0)
  30. (cons 75 2)
  31. (cons 76 1)
  32. (cons 98 1)
  33. (cons 10 (list 0.0 0.0 0.0))
  34. (cons 470 "LINEAR")))
  35. (entmake dummyhatch)
回复

使用道具 举报

7

主题

19

帖子

11

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:28:43 | 显示全部楼层
  1. ;;;;;; begin entmake_insert----format: (entmake_insert "testme" "0" 0.0 0.0 0.0 45 1.0 1.0 1.0 0 1 1 0.0 0.0 0.0 0.0 1.0)
  2. (defun entmake_insert  (blockname layername xcoord ycoord zcoord ang xscale yscale zscale attribflag colmncnt rowcnt
  3.            colmnspcng rowspcng xvectr yvectr zvectr / dummy)
  4. (setq    dummy (list (cons 0 "INSERT")
  5.            (cons 2 blockname)
  6.            (cons 100 "AcDbEntity")
  7.            (cons 8 layername)
  8.            (cons 100 "AcDbBlockReference")
  9.            (cons 10 (list xcoord ycoord zcoord))
  10.            (cons 50 (* pi (/ ang 180.0)))
  11.            (cons 41 xscale)
  12.            (cons 42 yscale)
  13.            (cons 43 zscale)
  14.            (cons 66 attribflag)
  15.            ;(cons 70 colmncnt)
  16.            ;(cons 71 rowcnt)
  17.            ;(cons 44 colmnspcng)
  18.            ;(cons 45 rowspcng)
  19.            (cons 210 (list xvectr yvectr zvectr))))
  20. (entmake dummy))
  21. ;;;;;;;;;end entmake_insert
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 12:46:49 | 显示全部楼层
谢谢你们的例子。我可以把它稍微修改一下,这样我也可以设置比例。Carl的代码很好用,但当切换到模式(与实体相反)和您想要设置比例时,需要进行必要的更改。
 
例子:
 
  1. ;;; this setq is only needed to populate variables used below.
  2. (setq pt7 (list 0.0 0.0 0.0)
  3.      pt3 (list 15.0 0.0 0.0)
  4.      pt4 (list 15.0 18.5 0.0)
  5.      pt8 (list 0.0 18.5 0.0)     )
  6. (setq dummyhatch
  7.       (list (cons 0 "HATCH")
  8.      (cons 100 "AcDbEntity")
  9.      (cons 8 "0")
  10.      (cons 100 "AcDbHatch")             
  11.      (cons 10 (list 0.0 0.0 0.0))
  12.      (cons 210 (list 0.0 0.0 1.0))             
  13.      (cons 2 "ANSI31")
  14.      (cons 70 0)
  15.      (cons 71 0)
  16.      (cons 91 1)
  17.      (cons 92 1)
  18.      (cons 93 4)
  19.       
  20.      (cons 72 1)
  21.      (cons 10 pt7)
  22.      (cons 11 pt3)
  23.      (cons 72 1)
  24.      (cons 10 pt3)
  25.      (cons 11 pt4)
  26.      (cons 72 1)
  27.      (cons 10 pt4)
  28.      (cons 11 pt8)
  29.      (cons 72 1)
  30.      (cons 10 pt8)
  31.      (cons 11 pt7)             
  32.      (cons 97 0)
  33.      (cons 75 0)
  34.      (cons 76 1)
  35.      
  36.      (cons 52 0.0)         ;angle
  37.      (cons 41 20.0)        ;scale
  38.      (cons 77 0)           ;double flag
  39.      (cons 78 1)           ;# of pat def lines
  40.      (cons 53 (* 0.25 pi)) ;pat line angle (45° in this case)
  41.      (cons 43 0.0)         ; x pat base pt
  42.      (cons 44 0.0)         ; y pat base pt
  43.      (cons 45 -1.0)        ; x pat line offset ***
  44.      (cons 46 1.0)         ; y pat line offset ***
  45.      (cons 79 0)           ; # of dash length items
  46.      
  47.      (cons 98 1)
  48.      (cons 10 (list 0.0 0.0 0.0))             
  49.       )
  50. )
  51. (entmake dummyhatch)
  52. (redraw)
  53. ;*** = I have found it doesn't matter what you set these to.
  54. The values appear to be generated automatically, but you
  55. cannot omit these lines
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:56:21 | 显示全部楼层
 
这是尤金埃尔帕诺夫写的
也许你也会感兴趣
 
  1. (defun entmakex-hatch (L)
  2. ;; By ElpanovEvgeniy
  3. ;; 03.04.2007 10:03:51:
  4. (entmakex
  5. (apply
  6.   'append
  7.   (list
  8.    (list '(0 . "HATCH")
  9.          '(100 . "AcDbEntity")
  10.          '(410 . "Model")
  11.          '(100 . "AcDbHatch")
  12.          '(10 0.0 0.0 0.0)
  13.          '(210 0.0 0.0 1.0)
  14.          '(2 . "ANSI31")
  15.          '(70 . 1)
  16.          '(71 . 0)
  17.          (cons 91 (length l))
  18.    ) ;_  list
  19.    (apply 'append
  20.    (mapcar '(lambda (a)
  21.             (apply 'append
  22.                    (list (list '(92 . 7) '(72 . 0) '(73 . 1) (cons 93 (length a)))
  23.                          (mapcar '(lambda (b) (cons 10 b)) a)
  24.                          '((97 . 0))
  25.                    ) ;_  list
  26.             ) ;_  apply
  27.            ) ;_  lambda
  28.            l
  29.    ) ;_  mapcar
  30.           )
  31.    '((75 . 0)
  32.      (76 . 1)
  33.      (47 . 1.)
  34.      (98 . 2)
  35.      (10 0. 0. 0.0)
  36.      (10 0. 0. 0.0)
  37.      (451 . 0)
  38.      (460 . 0.0)
  39.      (461 . 0.0)
  40.      (452 . 1)
  41.      (462 . 1.0)
  42.      (453 . 2)
  43.      (463 . 0.0)
  44.      (463 . 1.0)
  45.      (470 . "LINEAR")
  46.     )
  47.   ) ;_  list
  48. ) ;_  apply
  49. ) ;_  entmakex
  50. ); _
  51. ;;Call:
  52. (setq h (entmakex-hatch
  53.         '(((538.794 584.563) (895.629 584.563) (895.629 997.377) (538.794 997.377))
  54.           ((386.809 345.13) (670.955 345.13) (670.955 855.369) (386.809 855.369))
  55.          )
  56.        ) ;_  entmakex-hatch
  57. ) ;_  setq

 
~'J'~
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 13:10:29 | 显示全部楼层
是的,我的下一个冒险是使它更像一个可扩展的函数,可以接受可变长度的实体列表。谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:17 , Processed in 0.896740 second(s), 64 queries .

© 2020-2025 乐筑天下

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