求助如何用entmake生成月牙形状的弧边填充?谢谢~
通过先画出弧形(图左)再用command填充的方法可以生成该月牙形状的填充(图右),其填充DXF内码为:((-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))(defun c:tt (/ p0 p1 p2 p3)(setq p0 (getpoint "\n插入点: ") )
(setq p1 (mapcar '+ p0 '(40 -20 0) ) )
(setq p2 (mapcar '+ p0 '(40 -80 0) ) )
(setq p3 (mapcar '+ p0 '(-42 -50 0) ) )
(entmake
(list
'(0 . "hatch")
'(100 . "AcDbEntity")
'(67 . 0)
'(410 . "Model")
(cons 8 "0")
'(100 . "AcDbHatch")
'(10 0.0 0.0 0.0)
'(210 0.0 0.0 1.0)
(cons 2 "SOLID")
'(70 . 1)
'(71 . 1)
'(91 . 1)
'(92 . 7)
'(72 . 1)
'(73 . 1)
'(93 . 3)
(cons 10 p1)
(cons 42 (* 0.229 pi) )
'(10 0.0 50 0.0)
(cons 42 (* 0.229 pi) )
(cons 10 p2)
(cons 42 (- (* 0.7995 pi) ) )
'(97 . 2)
'(75 . 1)
'(76 . 1)
(cons 47 (* 0.1271 pi) )
'(98 . 1)
(cons 10 p3)
'(450 . 0)
'(451 . 0)
'(460 . 0)
'(461 . 0)
'(452 . 0)
'(462 . 1)
'(453 . 2)
'(463 . 0)
'(63 . 5)
'(421 . 255)
'(463 . 1)
'(63 . 2)
'(421 . 16776960)
'(470 . "LINEAR")
)
)
) 本帖最后由 llsheng_73 于 2024-11-27 17:03 编辑
(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个点是被自动填充数据误导了
(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)))
楼主的填充数据
(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)))
http://bbs.mjtd.com/data/attachment/forum/202312/21/211339e6j76hp6nzc95n8a.png
llsheng_73 发表于 2024-11-27 15:57
好像不能生成啊~ vitalgg 发表于 2024-11-27 15:59
参数都搜索到了呀,就是摆一块就不好使了~ 逗亦斗霸 发表于 2024-11-27 16:13
好像不能生成啊~
搞掉了最后一个10组...最后边加了一个10组可以了 llsheng_73 发表于 2024-11-27 16:18
搞掉了最后一个10组...最后边加了一个10组可以了
这下可以了,请问最后的10组是固定的数值吗?因为我想调整位置~ 逗亦斗霸 发表于 2024-11-27 16:25
这下可以了,请问最后的10组是固定的数值吗?因为我想调整位置~
最后那是图例数据。。。要调整位置、形状在前边那4个10组和42组,那才是边界数据 逗亦斗霸 发表于 2024-11-27 16:15
参数都搜索到了呀,就是摆一块就不好使了~
好使,就是需要坐标转换,wcs 转 ocs .
1 填充主参数 dxf0 --dxf91
2 边界数据
3 填充样式数据 dxf75 -- llsheng_73 发表于 2024-11-27 15:57
实际上只需要两个点就行了,之所以出现4个点是被自动填充数据误导了
非常感谢!第三个把俩10组修改后就是我想要的代码,感觉这个42组好难调啊,前面两个代码拉伸后还会出现50组和51组。
大佬这代码和我手动command填充后查询组码的不太一样,反正是有点云里雾里,好在这次的问题解决了,再次感谢!
页:
[1]
2