乐筑天下

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

[编程交流] 快速插入法

[复制链接]

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 02:35:16 | 显示全部楼层 |阅读模式
大家好,
 
我只是想知道,插入以下属性块的最快方法是什么:-
1.(命令“插入”……)
 
2.vla插入块
 
3.Entmake
 
我想让它插入我的测深数据,有时有500多个点。。。。。
 
目前,我正在使用上述第一个选项通过lisp插入块。。。。。但如果数据文件包含500多个点,则需要花费太多时间。。。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 02:43:21 | 显示全部楼层
我认为entmake更快。
 
块定义:
  1.    (if (null (tblsearch "BLOCK" "TesT"))
  2.        (progn
  3.            ;block header definition:
  4.            (entmake '((0 . "BLOCK")(2 . "TesT")(70 . 2)(10 0.0 0.0 0.0)))
  5.            ;object definition (point)
  6.            (entmake '((0 . "POINT")(8 . "Layer1")(10 0.0 0.0 0.0)(210 0.0 0.0 1.0)(50 . 0.0)))
  7.            ;attribute definition
  8.            (entmake
  9.                '((0 . "ATTDEF")(8 . "Layer2")(10 0.25 -0.5 0.0)(1 . "")(2 . "tag")
  10.                  (3 . "prompt")(40 . 0.4)(41 . 0.(50 . 0.0)(70 . 0)(71 . 0)(72 . 0)(73 . 2)
  11.                  (7 . "arial"))
  12.            )
  13.            ;end block definition
  14.            (entmake '((0 . "ENDBLK")))
  15.        )
  16.    )

 
块插入:
  1.    (entmake
  2.        (list
  3.            (cons 0 "INSERT")(cons 100 "AcDbEntity")(cons 67 0)(cons 410 "Model")
  4.            (cons 8 "Layer1")(cons 100 "AcDbBlockReference")(cons 66 1)(cons 2 "TesT")
  5.            (cons 10 (list 0 0 0))(cons 41 1)(cons 42 1)(cons 43 1)
  6.        )
  7.    )
  8.    (entmake
  9.        (list
  10.            (cons 0 "ATTRIB")(cons 100 "AcDbEntity")(cons 8 "Layer2")
  11.            (cons 100 "AcDbText")(cons 10 (list 0.4 0.5 0))(cons 40 0.4)(cons 41 0.85)
  12.            (cons 1 "ATT_TEXT")(cons 7 "arial")(cons 100 "AcDbAttribute")
  13.            (cons 2 "tag")(cons 70 (cons 39 0)
  14.        )
  15.    )
  16.    (entmake (list (cons 0 "SEQEND")))

 
查看帮助(DXF参考)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 02:53:51 | 显示全部楼层
一般来说,entmake[noparse][x][noparse]生成实体的速度最快,但是,使用entmake[noparse][x][noparse]插入属性块可能是一件痛苦的事情,因为您还需要将[noparse][x][noparse]每个ATTRIB实体输入,这涉及基于位置、比例、方向和旋转计算每个ATTRIB实体相对于块参考(插入)的位置、比例、方向和旋转,关联ATTDEF图元相对于块定义的旋转和方向,以及块参照本身的位置、比例、旋转和方向。
 
相比之下,ActiveX insertblock方法可以为您解决这一问题,而不会造成性能上的不利损失
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 02:57:27 | 显示全部楼层
非常感谢你们俩。。。。我正在学习entmake函数。。。。。如果我有任何疑问,我会回到你身边……)
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 03:08:25 | 显示全部楼层
我正在尝试制作属性块。。。。
 
它正在创建属性和圆,但不是将其作为块。。。。
 
  1. (if (not (tblsearch "BLOCK" "Bathymetry"))
  2. (progn
  3.    (entmake
  4.      (list
  5. (cons 0 "BLOCK")
  6. (cons 2 "Bathymetry")                ;Specify block name
  7. (cons 8 "BATHY")                ;Layer name
  8. (cons 100 "AcDbEntity")
  9. (cons 100 "AcDbBlockReference")
  10. (cons 410 "Model")
  11. (cons 10 '(0 0 0))                ;Insertion point
  12. (cons 66 1)                        ;Attribute flag
  13. (cons 67 0)
  14. (cons 71 0)
  15.      )
  16.    )
  17.    (entmake
  18.      (list
  19. (cons 0 "CIRCLE")
  20. (cons 8 "FIX-CO")                ;Layer
  21. (cons 10 '(0 0 0))                ;Insertion point
  22. (cons 40 0.0872)                ;Radius
  23.      )
  24.    )
  25.    (entmake
  26.      (list
  27. (cons 0 "ATTDEF")
  28. (cons 8 "BATHY")                ;Layer
  29. (cons 1 "X")                        ;Value
  30. (cons 2 "X")                        ;Tag
  31. (cons 3 "X")                        ;Prompt
  32. (cons 7 "ROMANS")                ;Textstyle
  33. (cons 10 (LIST -0.0107 -0.0861 0.0)) ;Insertion point
  34. (cons 40 1)                        ;Text height
  35. (cons 41 0.7)                        ;Width factor
  36.                                 ;(cons 51 1) ;Oblique angle
  37. (cons 70                         ;Attribute flag
  38. (cons 71 2)                        ;Text generation flags
  39.      )
  40.    )
  41.    (entmake
  42.      (list
  43. (cons 0 "ATTDEF")
  44. (cons 8 "BATHY")                ;Layer
  45. (cons 1 "Y")                        ;Value
  46. (cons 2 "Y")                        ;Tag
  47. (cons 3 "Y")                        ;Prompt
  48. (cons 7 "ROMANS")                ;Textstyle
  49. (cons 10 (LIST -0.1311 -0.5713 0.0)) ;Insertion point
  50. (cons 40 0.73)                        ;Text height
  51. (cons 41 0.7)                        ;width factor
  52.                                 ;(cons 51 1) ;Oblique angle
  53. (cons 70                         ;Attribute flag
  54.      )
  55.    )
  56.    (entmake '((0 . "ENDBLK")
  57.        (100 . "AcDbBlockEnd")
  58.        (8 . "0")
  59.       )
  60.    )
  61. )
  62. )
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 03:12:03 | 显示全部楼层
看看帖子#2
 
-块定义
-块插入
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 03:16:50 | 显示全部楼层
尊敬的GP:_
 
参考你的邮件,我创建了我的代码。。。。如上所述
 
但仍然不知道它有什么问题,没有正确创建块
 
你能查一下我的密码吗
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 03:22:16 | 显示全部楼层
>>萨提斯拉杰夫
 
请尝试以下代码并根据您的要求修改代码
 
  1. (defun c:check ()
  2. (if (not (tblsearch "BLOCK" "Bathymetry"))
  3.    (progn
  4.      (entmake
  5. (list
  6.   (cons 0 "BLOCK")
  7.   (cons 2 "Bathymetry")
  8.   (cons 70 2)
  9.   (cons 10 '(0. 0. 0.))
  10. )
  11.      )
  12.      (entmake (list (cons 0 "CIRCLE")
  13.              (cons 10 '(0.0 0.0 0.0))
  14.              (cons 40 0.0872)
  15.              (cons 8 "FIX-CO")
  16.        )
  17.      )
  18.      (entmake
  19. (list
  20.   (cons 0 "ATTDEF")
  21.   (cons 8 "BATHY")
  22.   (cons 10 '(-0.0107 -0.0861 0.0))
  23.   (cons 70
  24.   (cons 1 "X")
  25.   (cons 2 "X")
  26.   (cons 3 "X")
  27.   (cons 41 0.7)
  28.   (cons 71 2)
  29.   (cons 280 1)
  30.   (cons 40 1.0)
  31. )
  32.      )
  33.      (entmake
  34. (list
  35.   (cons 0 "ATTDEF")
  36.   (cons 8 "BATHY")
  37.   (cons 10 '(-0.1311 -0.5713 0.0))
  38.   (cons 70
  39.   (cons 1 "Y")
  40.   (cons 2 "Y")
  41.   (cons 3 "Y")
  42.   (cons 41 0.7)
  43.   (cons 71 2)
  44.   (cons 280 1)
  45.   (cons 40 0.73)
  46. )
  47.      )
  48.      (entmake
  49. (list
  50.   (cons 0 "ENDBLK")
  51.   (cons 8 "Your layer Name")
  52. )
  53.      )
  54.    )
  55. )
  56. (entmake
  57.    (list
  58.      (cons 0 "INSERT")
  59.      (cons 2 "Bathymetry")
  60.      (cons 10 '(0 0 0))
  61.      (cons 66 1)
  62.    )
  63. )
  64. (entmake
  65.    (list
  66.      (cons 0 "ATTRIB")
  67.      (cons 10 '(0 0 0))
  68.      (cons 1 "X")
  69.      (cons 2 "X")
  70.      (cons 40 2.0)
  71.      (cons 70 0)
  72.      (cons 8 "0")
  73.      (cons 280 1)
  74.    )
  75. )
  76. (entmake
  77.    (list
  78.      (cons 0 "ATTRIB")
  79.      (cons 10 '(2 0 0))
  80.      (cons 1 "Y")
  81.      (cons 2 "Y")
  82.      (cons 40 2.0)
  83.      (cons 70 0)
  84.      (cons 8 "0")
  85.      (cons 280 1)
  86.    )
  87. )
  88. (entmake
  89.    (list
  90.      (cons 0 "SEQEND")
  91.    )
  92. )
  93. )
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 03:33:22 | 显示全部楼层
砰的一声。。。。。。。。。。。。。。。谢谢Ganesh:thumbsup:
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 03:35:36 | 显示全部楼层
最受欢迎的satishrajdev
很乐意帮忙
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 22:09 , Processed in 0.600320 second(s), 72 queries .

© 2020-2025 乐筑天下

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