明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3666|回复: 6

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

[复制链接]
发表于 2002-10-22 16:33 | 显示全部楼层 |阅读模式
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 | 显示全部楼层

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

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

你指定92# DXF组码为7,意思是用了多义线为边界,这样就不要再指定93# 组码,你要用93# 组码,92# 应为1。另外,对象名不是“HATCH”,而应该是“AcDbHatch”。
另外,你可以在ACAD中画一张图,另存为DXF格式,再用记事本打开看看正确的DXF组码。
你先试试看,对否?
 楼主| 发表于 2002-11-1 09:43 | 显示全部楼层

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

我按照你所说的方法去做了,但还是不行,我的代码就是照着CAD导出的文件做的,它居然提示我我的 SOLID 那行有问题,我真的搞不懂了。
 楼主| 发表于 2002-11-1 09:46 | 显示全部楼层

请多指教

[此贴子已经被作者于2002-11-1 9:46:34编辑过]
发表于 2002-11-1 10:33 | 显示全部楼层

你说你是用的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
 楼主| 发表于 2002-11-6 22:14 | 显示全部楼层

向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
发表于 2002-11-7 07:51 | 显示全部楼层

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

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

本版积分规则

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

GMT+8, 2024-4-20 05:59 , Processed in 0.396192 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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