乐筑天下

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

[编程交流] LISP的BlockAtt

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:48:29 | 显示全部楼层 |阅读模式
请帮我用LISP做,谢谢。
DCT\u TP。图纸
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:01:24 | 显示全部楼层
帮助我!!!
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:12:27 | 显示全部楼层
 
 
你被抢劫犯袭击了吗?
要我报警吗?
 
你知道对你来说做一点解释会有帮助。
你是想学习Lisp程序,还是要求它落在你的膝盖上。
虽然你说“请”,但似乎你希望它是为你写的。
你不要问你想知道什么。
人们自愿在这里工作。
对你来说,付出一些努力并不过分。
 
这是一个很好的开始:http://www.afralisp.net/index.php
 
以下是我的一个线程请求,与您想要的内容大致相同:http://www.cadtutor.net/forum/showthread.php?t=36793
 
这是一条很长的线,所以请继续阅读。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:17:24 | 显示全部楼层
下面是一个代码,它使用一个属性生成左摆门块。
层是用Entmake创建的,字体样式也是用Entmake创建的,块是用Entmake制作的。
 
这将使您了解需要为代码做什么。
 
我可以写你的代码吗?对
我会写你的代码吗?不
 
你必须这么做。
如果你问一些你不懂的问题,我很乐意回答。
 
注意:可以参考AutoCAD的“开发人员帮助”部分来查找此处使用的函数。另请查看DXF参考。您将在这段代码中找到所有内容的解释。学习过程的一部分是做研究。
 
开始工作。
 
  1. (defun C:LD (/ INPT AFAP AFAP01 ASAP ASAP01 BNAM INPT EXDR ASTY AWID ASIZ TLNAM WID THK
  2.               PT01 PT02 PT03 PT04 SANG EANG BRPT)
  3. (setq ASTY  "Romans")
  4. (LD_FS ASTY)
  5. (setq AWID    1.0)
  6. (setq ASIZ    4.5)
  7. (setq TLNAM "A-DOOR-IDEN")
  8. (setq DLNAM "A-DOOR-FULL")
  9. (setq BNAM  "LDR")
  10. (setq BRPT (list 0.0 0.0 0.0))
  11. (setq EXDR (list 0.0 0.0 1.0))
  12. (setq WID 36.0)
  13. (setq THK  2.0)
  14. (LD_ML TLNAM 2 "Continuous" 35)
  15. (LD_ML DLNAM 3 "Continuous" 50)
  16. (if (null (tblsearch "block" BNAM))(LD_BD))
  17. (setq INPT (getpoint "\nGet insertion point:"))
  18. (setq AFAP   (polar INPT (DTR 270.0)      11.25))
  19. (setq AFAP01 (polar AFAP (DTR   0.0)      15.0))
  20. (setq ASAP   (polar INPT (DTR 270.0)       6.75))
  21. (setq ASAP01 (polar ASAP (DTR   0.0)(/ WID 2.0)))
  22. (entmake
  23.    (list
  24.      (cons 0   "INSERT")
  25.      (cons 67   0)
  26.      (cons 410 "Model")
  27.      (cons 8    DLNAM)   
  28.      (cons 66   1)
  29.      (cons 2    BNAM)
  30.      (cons 10   INPT)
  31.      (cons 41   1)
  32.      (cons 42   1)
  33.      (cons 50   0)
  34.      (cons 43   1)
  35.      (cons 70   0)
  36.      (cons 71   0)
  37.      (cons 44   0)
  38.      (cons 45   0)
  39.      (cons 210  EXDR)
  40.      (cons 62   256)
  41.      (cons 39   0)
  42.      (cons 6   "BYLAYER")))
  43. (entmake
  44.    (list
  45.      (cons 0   "attrib")
  46.      (cons 67   0)
  47.      (cons 410 "Model")
  48.      (cons 8    TLNAM)
  49.      (cons 10   AFAP01)
  50.      (cons 40   ASIZ)
  51.      (cons 1   "D01")
  52.      (cons 2   "ID")
  53.      (cons 70   
  54.      (cons 73   0)
  55.      (cons 50   0.0)
  56.      (cons 41   AWID)
  57.      (cons 51   0.0)
  58.      (cons 7    ASTY)
  59.      (cons 71   0)
  60.      (cons 72   1)
  61.      (cons 11   ASAP01)
  62.      (cons 210  EXDR)
  63.      (cons 74   2)))
  64. (entmake
  65.    (list
  66.      (cons 0   "SEQEND")
  67.      (cons 8   "0")))
  68. (prompt "\nRotation Angle: ")
  69. (command "_.rotate" "last" "" INPT pause))
  70. ;Degrees to Radians
  71. (defun DTR (a) (* pi (/ a 180.0)))
  72. ;Block Definition
  73. (defun LD_BD ()
  74. (setq PT01 (polar BRPT (DTR  90.0) WID))
  75. (setq PT02 (polar PT01 (DTR   0.0) THK))
  76. (setq PT03 (polar PT02 (DTR 270.0) WID))
  77. (setq PT04 (polar PT03 (DTR 180.0) THK))
  78. (setq SANG   0.0)
  79. (setq EANG   1.5708)
  80. (setq AFAP   (polar BRPT (DTR 270.0)      11.25))
  81. (setq AFAP01 (polar AFAP (DTR   0.0)      15.0))
  82. (setq ASAP   (polar BRPT (DTR 270.0)       6.75))
  83. (setq ASAP01 (polar ASAP (DTR   0.0)(/ WID 2.0)))
  84. (entmake
  85.    (list
  86.      (cons 0   "block")
  87.      (cons 2    BNAM)
  88.      (cons 10   BRPT)
  89.      (cons 70   2)))
  90. (entmake
  91.    (list
  92.      (cons 0   "LWPOLYLINE")
  93.      (cons 100 "AcDbEntity")
  94.      (cons 67   0)
  95.      (cons 410 "Model")
  96.      (cons 8   "0")
  97.      (cons 100 "AcDbPolyline")
  98.      (cons 90   4)
  99.      (cons 70   1)
  100.      (cons 43   0.0)
  101.      (cons 38   0.0)
  102.      (cons 39   0.0)
  103.      (cons 10   PT01)
  104.      (cons 40   0.0)
  105.      (cons 41   0.0)
  106.      (cons 42   0.0)
  107.      (cons 10   PT02)
  108.      (cons 40   0.0)
  109.      (cons 41   0.0)
  110.      (cons 42   0.0)
  111.      (cons 10   PT03)
  112.      (cons 40   0.0)
  113.      (cons 41   0.0)
  114.      (cons 42   0.0)
  115.      (cons 10   PT04)
  116.      (cons 40   0.0)
  117.      (cons 41   0.0)
  118.      (cons 42   0.0)
  119.      (cons 210  EXDR)))
  120. (entmake
  121.    (list
  122.      (cons 0   "arc")
  123.      (cons 100 "AcDbEntity")
  124.      (cons 67   0)
  125.      (cons 410 "Model")
  126.      (cons 8   "0")
  127.      (cons 100 "AcDbCircle")
  128.      (cons 10   BRPT)
  129.      (cons 39   0.0)
  130.      (cons 40   WID)
  131.      (cons 210  EXDR)
  132.      (cons 100 "AcDbArc")
  133.      (cons 50   SANG)
  134.      (cons 51   EANG)))
  135. (entmake
  136.    (list
  137.      (cons 0   "attdef")
  138.      (cons 67   0)
  139.      (cons 410 "Model")
  140.      (cons 8    TLNAM)
  141.      (cons 10   AFAP01)
  142.      (cons 40   ASIZ)
  143.      (cons 1   "D01")
  144.      (cons 3   "Door ID:")
  145.      (cons 2   "ID")
  146.      (cons 70   
  147.      (cons 73   0)
  148.      (cons 50   0.0)
  149.      (cons 41   AWID)
  150.      (cons 51   0.0)
  151.      (cons 7    ASTY)
  152.      (cons 71   0)
  153.      (cons 72   1)
  154.      (cons 11   ASAP01)
  155.      (cons 210  EXDR)
  156.      (cons 74   2)))
  157. (entmake
  158.    (list
  159.      (cons 0   "endblk")
  160.      (cons 8   "0"))))
  161. ;Make Layer
  162. (defun LD_ML (LNAM LCLR LTYP LWGT)
  163. (if (null (tblsearch "layer" LNAM))
  164.    (entmake
  165.      (list
  166.        (cons   0 "LAYER")
  167.        (cons 100 "AcDbSymbolTableRecord")
  168.        (cons 100 "AcDbLayerTableRecord")
  169.        (cons   2  LNAM)
  170.        (cons  70  0)
  171.        (cons  62  LCLR)
  172.        (cons   6  LTYP)
  173.        (cons 290  1)
  174.        (cons 370  LWGT))))
  175. (princ))
  176. ;Font Style
  177. (defun LD_FS (ASTY)
  178. (setq FSTY ASTY
  179.        TWF 1.0
  180.        TOA 0.0
  181.        PFN "romans.shx"
  182.        BFN "")
  183. (if (null (tblsearch "style" FSTY))
  184.    (entmake
  185.      (list
  186.        (cons 0   "STYLE")
  187.        (cons 100 "AcDbSymbolTableRecord")
  188.        (cons 100 "AcDbTextStyleTableRecord")
  189.        (cons 2    FSTY)
  190.        (cons 70   0)
  191.        (cons 40   0)
  192.        (cons 41   TWF)
  193.        (cons 50   TOA)
  194.        (cons 3    PFN)
  195.        (cons 4    BFN))))
  196. (princ))
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:28:06 | 显示全部楼层
 
您可以从最简单的方式开始:
 
  1. (defun C:MBL (/ clr col sset)
  2. (command "._zoom" "_w" "-1.0,-1.0" "5,3");<-- zoom to desired limits (optional)
  3. (setq clr (getvar "CLAYER"));<--store current layer
  4. (setq col (getvar "CECOLOR"));<--store current layer color
  5. (setvar "CMDECHO" 0); <-- turn command echo off
  6. (setvar "CLAYER" "0");<--set current layer "0"
  7. (setvar "CECOLOR" "BYLAYER");<-- set color to bylayer  
  8. (setq sset (ssadd));<-- create empty selection set
  9. (command "._line" "_non" "0,0" "_non" "1.8182,0" "")
  10. (ssadd (entlast) sset);<--append newly created entity to selection set
  11. (command "._pline" "_non" "1.2121,0" "_w" "0" ".2424" "_non" "1.2121,0.7576"
  12.    "_w" "0" "0" "_non" "1.2121,1.3636" "_non" "4.1818,1.3636" "")
  13. (ssadd (entlast) sset);<--append newly created entity to selection set
  14. (command "._-attdef" "_p" "" "LEVEL" "Level" "0.00" "_s" "DN_DCT"
  15. "_j" "BL" "1.2121,1.3636" "1.0" "0")
  16. (ssadd (entlast) sset);<--append newly created entity to selection set
  17. (command "._-block" "myBlockName" "_non" "0,0" sset "");<-- change block name here
  18. (command "._erase" sset "")
  19. (setvar "CMDECHO" 1); <-- turn command echo on   
  20. (setvar "CLAYER" clr);<--restore current layer
  21. (setvar "CECOLOR" col);<--restore current layer color  
  22. (princ)
  23. )
  24. (princ "\n  >> Type MBL to cteate block  <<")
  25. (prin1)

 
 
BLK123-2。lsp此lisp提示输入属性值。
  1. (defun C:BLK123 (/ BNAM BLKLNAM BRPT DSF INPT )
  2. (FS_123 "DN_DCT")
  3. (setq BLKLNAM "CTnhut")
  4. (ML_123 BLKLNAM 7 "Continuous")
  5. (setq BNAM  "123")
  6. (setq BRPT (list 0.0 0.0 0.0))
  7. (or D::SF (setq D::SF 1))
  8. (if (null (tblsearch "block" BNAM))(BD_123))
  9. (setq D::SF (cond ((getint (strcat "\nSpecify block scale factor <"(itoa D::SF)">: ")))(T D::SF)))               
  10. (setq DSF D::SF)
  11. (setq INPT (getpoint "\nInsertion point:"))
  12. (command "._-layer" "_S" BLKLNAM "")
  13. (command "._-insert" BNAM INPT DSF DSF pause)
  14. (princ))
  15. (princ "\nType BLK123 to start.")
  16. ;Block Definition
  17. (defun BD_123 ()
  18. (entmake
  19.    (list
  20.      (cons 0   "block")
  21.      (cons 2    BNAM)
  22.      (cons 10   BRPT)
  23.      (cons 70   2)))
  24. (entmake
  25.    (list
  26.      (cons 0   "LWPOLYLINE")
  27.      (cons 100 "AcDbEntity")
  28.      (cons 67   0)
  29.      (cons 410 "Model")
  30.      (cons 8   "0")
  31.      (cons 62   7)
  32.      (cons 100 "AcDbPolyline")
  33.      (cons 90   6)
  34.      (cons 70   0)
  35.      (cons 38   0.0)
  36.      (cons 39   0.0)
  37.      (cons 10   (list 0.0 0.0))
  38.      (cons 40   0.0)
  39.      (cons 41   0.0)
  40.      (cons 42   0.0)
  41.      (cons 10   (list 1.81818 0.0))
  42.      (cons 40   0.0)
  43.      (cons 41   0.0)
  44.      (cons 42   0.0)
  45.      (cons 10   (list 1.21212 0.0))
  46.      (cons 40   0.0)
  47.      (cons 41   0.242424)
  48.      (cons 42   0.0)
  49.      (cons 10   (list 1.21212 0.757576))
  50.      (cons 40   0.0)
  51.      (cons 41   0.0)
  52.      (cons 42   0.0)
  53.      (cons 10   (list 1.21212 1.36364))
  54.      (cons 40   0.0)
  55.      (cons 41   0.0)
  56.      (cons 42   0.0)
  57.      (cons 10   (list 4.18182 1.36364))
  58.      (cons 40   0.0)
  59.      (cons 41   0.0)
  60.      (cons 42   0.0)
  61.      (cons 210  (list 0.0 0.0 1.0))))
  62. (entmake
  63.    (list
  64.      (cons 0   "ATTDEF")
  65.      (cons 100 "AcDbEntity")
  66.      (cons 67   0)
  67.      (cons 410 "Model")
  68.      (cons 8    BLKLNAM)
  69.      (cons 100 "AcDbText")
  70.      (cons 10  (list 1.21212 1.61364 0.0))
  71.      (cons 40   1.0)
  72.      (cons 1   "0.00")
  73.      (cons 50   0.0)
  74.      (cons 41   1.0)
  75.      (cons 51   0.0)
  76.      (cons 7   "DN_DCT")
  77.      (cons 71   0)
  78.      (cons 72   0)
  79.      (cons 11  (list 0.0 0.0 0.0))
  80.      (cons 210 (list 0.0 0.0 1.0))
  81.      (cons 100 "AcDbAttributeDefinition")
  82.      (cons 3   "Value:")
  83.      (cons 2   "VALUE")
  84.      (cons 70   
  85.      (cons 73   0)
  86.      (cons 74   0)))
  87. (entmake
  88.    (list
  89.      (cons 0   "endblk")
  90.      (cons 8   "0"))))
  91. ;Make Layer
  92. (defun ML_123 (LNAM LCLR LTYP)
  93. (if (null (tblsearch "layer" LNAM))
  94.    (entmake
  95.      (list
  96.        (cons   0 "LAYER")
  97.        (cons 100 "AcDbSymbolTableRecord")
  98.        (cons 100 "AcDbLayerTableRecord")
  99.        (cons   2  LNAM)
  100.        (cons  70  0)
  101.        (cons  62  LCLR)
  102.        (cons   6  LTYP)
  103.        (cons 290  1))))
  104. (princ))
  105. ;Font Style
  106. (defun FS_123 (ASTY)
  107. (setq FSTY ASTY
  108.        TWF 1.0
  109.        TOA 0.0
  110.        PFN "VNI-Helve-Condense.shx"
  111.        BFN "")
  112. (if (null (tblsearch "style" FSTY))
  113.    (entmake
  114.      (list
  115.        (cons 0   "STYLE")
  116.        (cons 100 "AcDbSymbolTableRecord")
  117.        (cons 100 "AcDbTextStyleTableRecord")
  118.        (cons 2    FSTY)
  119.        (cons 70   0)
  120.        (cons 40   0)
  121.        (cons 41   TWF)
  122.        (cons 50   TOA)
  123.        (cons 3    PFN)
  124.        (cons 4    BFN))))
  125. (princ))
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:34:43 | 显示全部楼层
非常非常好,谢谢你的帮助!!
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:40:53 | 显示全部楼层
 
你指的是哪种Lisp程序?
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:48:37 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:55 , Processed in 1.179764 second(s), 68 queries .

© 2020-2025 乐筑天下

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