逗亦斗霸 发表于 2024-11-27 14:49:35

求助如何用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 15:57:18

本帖最后由 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)))

vitalgg 发表于 2024-11-27 15:59:21





http://bbs.mjtd.com/data/attachment/forum/202312/21/211339e6j76hp6nzc95n8a.png


逗亦斗霸 发表于 2024-11-27 16:13:55

llsheng_73 发表于 2024-11-27 15:57


好像不能生成啊~

逗亦斗霸 发表于 2024-11-27 16:15:28

vitalgg 发表于 2024-11-27 15:59


参数都搜索到了呀,就是摆一块就不好使了~

llsheng_73 发表于 2024-11-27 16:18:20

逗亦斗霸 发表于 2024-11-27 16:13
好像不能生成啊~

搞掉了最后一个10组...最后边加了一个10组可以了

逗亦斗霸 发表于 2024-11-27 16:25:45

llsheng_73 发表于 2024-11-27 16:18
搞掉了最后一个10组...最后边加了一个10组可以了

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

llsheng_73 发表于 2024-11-27 16:33:00

逗亦斗霸 发表于 2024-11-27 16:25
这下可以了,请问最后的10组是固定的数值吗?因为我想调整位置~
最后那是图例数据。。。要调整位置、形状在前边那4个10组和42组,那才是边界数据

vitalgg 发表于 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填充后查询组码的不太一样,反正是有点云里雾里,好在这次的问题解决了,再次感谢!
页: [1] 2
查看完整版本: 求助如何用entmake生成月牙形状的弧边填充?谢谢~