请问各位:怎样在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;
试了一下,你的代码是有些问题
本帖最后由 作者 于 2002-10-24 11:24:00 编辑你指定92# DXF组码为7,意思是用了多义线为边界,这样就不要再指定93# 组码,你要用93# 组码,92# 应为1。另外,对象名不是“HATCH”,而应该是“AcDbHatch”。
另外,你可以在ACAD中画一张图,另存为DXF格式,再用记事本打开看看正确的DXF组码。
你先试试看,对否?
几天没来,所以现在才回复。感谢指点! 但我还是没搞定。
我按照你所说的方法去做了,但还是不行,我的代码就是照着CAD导出的文件做的,它居然提示我我的 SOLID 那行有问题,我真的搞不懂了。请多指教
[此贴子已经被作者于2002-11-1 9:46:34编辑过]你说你是用的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
向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
你是说5#组码值为2C吗?这是图元句柄,可能与其他图元冲突,试试不要这两行。
页:
[1]