puff_liu 发表于 2002-10-22 16:33:00

请问各位:怎样在DXF文件里用实体填充一个矩形框。负上代码请帮助分析一下。

FichierDxf << 100          << endl;
        FichierDxf << "HATCH"   << endl;
        FichierDxf << 10         << endl;
        FichierDxf << 0               << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 0               << endl;
        FichierDxf << 30         << endl;
        FichierDxf << 0      << endl;       
        FichierDxf << 210         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 220         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 230         << endl;
        FichierDxf << 1.0         << endl;
       
        FichierDxf << 2         << endl;
        FichierDxf << "SOLID"         << endl;
        FichierDxf << 70         << endl;
        FichierDxf << 1         << endl;
        FichierDxf << 71         << endl;
        FichierDxf << 1         << endl;
        FichierDxf << 91         << endl;
        FichierDxf << 1         << endl;
        FichierDxf << 92         << endl;
        FichierDxf << 7         << endl;
        FichierDxf << 72         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 73         << endl;
        FichierDxf << 1         << endl;
        FichierDxf << 93         << endl;
        FichierDxf << 4         << endl;

        FichierDxf << 10         << endl;//start 1x
        FichierDxf << 0         << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 10         << endl;//start 2x
        FichierDxf << 1500         << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 10         << endl;//start 3x
        FichierDxf << 1500         << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 500         << endl;
        FichierDxf << 10         << endl;//start 4x
        FichierDxf << 0         << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 0         << endl;

        FichierDxf << 97         << endl;
        FichierDxf << 4         << endl;

        FichierDxf << 330         << endl;
        FichierDxf << 52         << endl;
        FichierDxf << 330         << endl;
        FichierDxf << 53         << endl;
        FichierDxf << 330         << endl;
        FichierDxf << 50         << endl;
        FichierDxf << 330         << endl;
        FichierDxf << 51         << endl;
       
        FichierDxf << 75         << endl;
        FichierDxf << 0         << endl;
        FichierDxf << 76         << endl;
        FichierDxf << 1         << endl;

        FichierDxf << 47         << endl;
        FichierDxf << 0.488701795819342         << endl;

        FichierDxf << 98         << endl;
        FichierDxf << 1         << endl;

        FichierDxf << 10         << endl;
        FichierDxf << 318.4079987871411         << endl;
        FichierDxf << 20         << endl;
        FichierDxf << 180.7913595128209         << endl;

leeyeafu 发表于 2002-10-24 11:24:00

试了一下,你的代码是有些问题

本帖最后由 作者 于 2002-10-24 11:24:00 编辑

你指定92# DXF组码为7,意思是用了多义线为边界,这样就不要再指定93# 组码,你要用93# 组码,92# 应为1。另外,对象名不是“HATCH”,而应该是“AcDbHatch”。
另外,你可以在ACAD中画一张图,另存为DXF格式,再用记事本打开看看正确的DXF组码。
你先试试看,对否?

puff_liu 发表于 2002-11-1 09:43:00

几天没来,所以现在才回复。感谢指点! 但我还是没搞定。

我按照你所说的方法去做了,但还是不行,我的代码就是照着CAD导出的文件做的,它居然提示我我的 SOLID 那行有问题,我真的搞不懂了。

puff_liu 发表于 2002-11-1 09:46:00

请多指教

[此贴子已经被作者于2002-11-1 9:46:34编辑过]

leeyeafu 发表于 2002-11-1 10:33:00

你说你是用的CAD的DXF吗?但还有很多是不对的

例如:坐标输入,用了10#,20#码后,应该用11#,21#码指定下一个,多条界线之间的坐标指定,其间必须有分隔符,例如指定72#为1。最后好象应该有结束标记。下面的DXF我改动了很多,可以用,但坐标是否符合你的要求,不知道,你试试。
0
HATCH
5
2C
330
1F
100
AcDbEntity
8
0
100         
AcDbHatch   
10         
0
20      
0
30         
0      
210      
0         
220      
0         
230      
1.0         
2      
SOLID
70         
1         
71         
1         
91      
1      
92      
1
72         
0         
73      
1         
93         
4      
10         
0         
20         
0         
11         
1500         
21
0      
72
1      
10      
1500      
20         
500         
11         
0         
21      
0         
97         
4         
330         
52      
330      
53         
330         
50         
330         
51         
75      
0         
76      
1      
47      
0.488701795819342   
98      
1      
10      
318.4079987871411         
20         
180.7913595128209      
0
   ENDSEC

puff_liu 发表于 2002-11-6 22:14:00

向leeyeafu兄致敬!!!但还有问题请教。

leeyeafu兄:
    你好!
    谢谢你不厌其烦地解答。但我将你的代码放入仍然不行。我想你能实现可能和你的上下文的代码有关。而我在CAD中打开时,提醒我说是 2C 行的组码有问题。我不知道是否与上下文有关(具体是指我不画边框)。如果我只写这段代码它在CAD里能实现吗?你还能看看我的这段代码吗?
0
SECTION
2
ENTITIES
0
HATCH
5
2C
330
1F
100
AcDbEntity
8
0
100         
AcDbHatch   
10         
0
20         
0
30         
0      
210         
0         
220         
0         
230         
1.0         
2         
SOLID
70         
1         
71         
1         
91      
1         
92         
1   
72         
0         
73         
1         
93         
4         
10         
0         
20         
0         
11         
1500         
21   
0      
72
1         
10      
1500         
20         
500         
11         
0         
21      
0         
97         
4         
330         
52      
330         
53         
330         
50         
330         
51         
75         
0         
76         
1         
47         
0.488701795819342   
98      
1      
10         
318.4079987871411         
20         
180.7913595128209      
0
ENDSEC
0
EOF

leeyeafu 发表于 2002-11-7 07:51:00

你是说5#组码值为2C吗?这是图元句柄,可能与其他图元冲突,试试不要这两行。

页: [1]
查看完整版本: 请问各位:怎样在DXF文件里用实体填充一个矩形框。负上代码请帮助分析一下。