明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 683|回复: 10

[提问] 求助如何用entmake生成月牙形状的弧边填充?谢谢~

[复制链接]
发表于 2024-11-27 14:49:35 | 显示全部楼层 |阅读模式
通过先画出弧形(图左)再用command填充的方法可以生成该月牙形状的填充(图右),其填充DXF内码为:
  1. ((-1 . <图元名: 1e02ec380a0>) (0 . HATCH) (330 . <图元名: 1e000ef9f00>) (5 . 5D2) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbHatch) (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . SOLID) (70 . 1) (71 . 1) (91 . 1) (92 . 7) (72 . 1) (73 . 1) (93 . 3) (10 90.0 80.0 0.0) (42 . 0.720759) (10 0.0 50.0 0.0) (42 . 0.720759) (10 90.0 20.0 0.0) (42 . -2.51118) (97 . 2) (330 . <图元名: 1e02ec380b0>) (330 . <图元名: 1e02ec380c0>) (75 . 1) (76 . 1) (47 . 0.399342) (98 . 1) (10 9.68159 62.0121 0.0) (450 . 0) (451 . 0) (460 . 0.0) (461 . 0.0) (452 . 0) (462 . 1.0) (453 . 2) (463 . 0.0) (63 . 5) (421 . 255) (463 . 1.0) (63 . 2) (421 . 16776960) (470 . LINEAR))
复制代码
  1. (defun c:tt (/ p0 p1 p2 p3)
  2.     (setq p0 (getpoint "\n插入点: ") )
  3.     (setq p1 (mapcar '+ p0 '(40 -20 0) ) )
  4.     (setq p2 (mapcar '+ p0 '(40 -80 0) ) )
  5.     (setq p3 (mapcar '+ p0 '(-42 -50 0) ) )
  6.   
  7.       (entmake
  8.         (list
  9.            '(0 . "hatch")
  10.            '(100 . "AcDbEntity")
  11.            '(67 . 0)
  12.            '(410 . "Model")
  13.             (cons 8 "0")
  14.            '(100 . "AcDbHatch")
  15.            '(10 0.0 0.0 0.0)
  16.            '(210 0.0 0.0 1.0)
  17.             (cons 2 "SOLID")
  18.            '(70 . 1)
  19.            '(71 . 1)
  20.            '(91 . 1)
  21.            '(92 . 7)
  22.            '(72 . 1)
  23.            '(73 . 1)
  24.            '(93 . 3)
  25.             (cons 10 p1)
  26.             (cons 42 (* 0.229 pi) )
  27.            '(10 0.0 50 0.0)
  28.             (cons 42 (* 0.229 pi) )
  29.             (cons 10 p2)
  30.             (cons 42 (- (* 0.7995 pi) ) )
  31.            '(97 . 2)
  32.            '(75 . 1)
  33.            '(76 . 1)
  34.             (cons 47 (* 0.1271 pi) )
  35.            '(98 . 1)
  36.             (cons 10 p3)
  37.            '(450 . 0)
  38.            '(451 . 0)
  39.            '(460 . 0)
  40.            '(461 . 0)
  41.            '(452 . 0)
  42.            '(462 . 1)
  43.            '(453 . 2)
  44.            '(463 . 0)
  45.            '(63 . 5)
  46.            '(421 . 255)
  47.            '(463 . 1)
  48.            '(63 . 2)
  49.        '(421 . 16776960)
  50.            '(470 . "LINEAR")
  51.         )
  52.     )
  53.     )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-11-27 15:57:18 | 显示全部楼层
本帖最后由 llsheng_73 于 2024-11-27 17:03 编辑

  1. (ENTMAKEX'((0 . "HATCH")(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbHatch") (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "SOLID") (70 . 1) (71 . 0) (91 . 1) (92 . 7) (72 . 1) (73 . 1) (93 . 4) (10 830.53 985.077 0.0) (42 . 0.472533) (10 452.979 674.783 0.0) (42 . 0.472533) (10 830.53 364.489 0.0) (42 . -0.388727) (10 546.348 674.783 0.0) (42 . -0.388727) (97 . 0) (75 . 0) (76 . 1) (47 . 1) (98 . 1)(10 500 500 0)))

实际上只需要两个点就行了,之所以出现4个点是被自动填充数据误导了

  1. (ENTMAKEX'((0 . "HATCH")(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbHatch") (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "SOLID") (70 . 1) (71 . 0) (91 . 1) (92 . 7) (72 . 1) (73 . 1) (93 . 2) (10 830.53 985.077 0.0) (42 . 0.472533) (10 830.53 364.489 0.0) (42 . -0.388727) (97 . 0) (75 . 0) (76 . 1) (47 . 1) (98 . 1)(10 500 500 0)))


楼主的填充数据
  1. (ENTMAKEX'((0 . "HATCH")(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbHatch") (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "SOLID") (70 . 1) (71 . 0) (91 . 1) (92 . 7) (72 . 1) (73 . 1) (93 . 2) (10 90.0 80.0 0.0) (42 . 3)(10 90.0 20.0 0.0) (42 . -2.51118)  (97 . 0) (75 . 0) (76 . 1) (47 . 1) (98 . 1)(10 500 500 0)))

回复 支持 反对

使用道具 举报

发表于 2024-11-27 15:59:21 | 显示全部楼层







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-27 16:13:55 | 显示全部楼层

好像不能生成啊~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-27 16:15:28 | 显示全部楼层

参数都搜索到了呀,就是摆一块就不好使了~
回复 支持 反对

使用道具 举报

发表于 2024-11-27 16:18:20 | 显示全部楼层

搞掉了最后一个10组...最后边加了一个10组可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-27 16:25:45 | 显示全部楼层
llsheng_73 发表于 2024-11-27 16:18
搞掉了最后一个10组...最后边加了一个10组可以了

这下可以了,请问最后的10组是固定的数值吗?因为我想调整位置~
回复 支持 反对

使用道具 举报

发表于 2024-11-27 16:33:00 | 显示全部楼层
逗亦斗霸 发表于 2024-11-27 16:25
这下可以了,请问最后的10组是固定的数值吗?因为我想调整位置~

最后那是图例数据。。。要调整位置、形状在前边那4个10组和42组,那才是边界数据
回复 支持 反对

使用道具 举报

发表于 2024-11-27 16:43:57 | 显示全部楼层
逗亦斗霸 发表于 2024-11-27 16:15
参数都搜索到了呀,就是摆一块就不好使了~

好使,就是需要坐标转换,wcs 转 ocs .

1 填充主参数   dxf0 --  dxf91
2 边界数据   
3 填充样式数据 dxf75 --
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-27 17:33:06 | 显示全部楼层
llsheng_73 发表于 2024-11-27 15:57
实际上只需要两个点就行了,之所以出现4个点是被自动填充数据误导了

非常感谢!第三个把俩10组修改后就是我想要的代码,感觉这个42组好难调啊,前面两个代码拉伸后还会出现50组和51组。
大佬这代码和我手动command填充后查询组码的不太一样,反正是有点云里雾里,好在这次的问题解决了,再次感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-1-31 10:27 , Processed in 0.170684 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表