DXF文件INSERT实体

时间:2018-03-22 10:24:53

标签: java algorithm drawing dxf

我正在使用Java绘制dxf文件。到目前为止,我可以绘制LINESPOLYLINESTEXTCIRCLEARCLWPOLYLINES

但我在绘制INSERT个实体时遇到了问题。我知道这被映射到块实体,但是当我绘制它们时,没有显示任何内容。我知道你必须对INSERT实体进行一些转换,但我不知道如何做到这一点。我用Google搜索了很多但没有运气。所以我希望你能指明如何处理INSERT实体。我还看了一些像ycad和dxf-code这样的框架,但是代码很难跟踪。

INSERTLINE

等实体的翻译ARC的算法是什么?

由于

约翰

2 个答案:

答案 0 :(得分:2)

很难为您提供明确的答案,因为我们看不到任何代码。但是,在AutoDesk网站上描述了管理INSERT功能的方式。以下是blocks in DXF files的信息。

它还提供了有关两个重要条目BLOCKENDBLCK的信息。

以下是其中包含LINEARC的块的示例。该块将如下所示:

Block

该块名为 SAMPLE

  0
BLOCK
  8
0
  2
SAMPLE
 70
     0
 10
0.0
 20
0.0
 30
0.0
  3
SAMPLE
  1

  0
ARC
  5
263
  8
0
 10
0.0
 20
22.4468613708478415
 30
0.0
 40
242.9028467109147016
 50
354.6976825438280798
 51
185.3023174561718918
  0
LINE
  5
264
  8
0
 10
-241.8634560136443099
 20
0.0000000000001137
 30
0.0
 11
241.8634560136443099
 21
-0.0000000000002274
 31
0.0
  0
ENDBLK
  5
262
  8
0

基本上,您有一个定义块实体的条目。它将具有原点,并且所有值都相对于元素的原点。

如果您先设计它,那么您将知道该怎么做。

一旦定义了BLOCK,您就可以将其用作INSERT

BLOCK本身。关键是起源。大多数定义的坐标为0,0,0。然后相对于此原点绘制ENTITIES,比例为1:1。

想象一个矩形,1个单位平方,比例因子为1。然后坐标为:

-0.5,  0.5
 0.5,  0.5
 0.5, -0.5
-0.5, -0.5

我希望这些信息可以帮到你。

答案 1 :(得分:0)

BLOCK实体(也称为块定义)本质上是INSERT的“蓝图”(也称为块参考)。

不是为图中的每个块引用复制构成块的所有几何信息,而是块定义(BLOCK实体)是每个块引用的“模板”,意味着只有位置,旋转&安培;需要存储每个块引用的比例。

块定义位于块符号表内,由BLOCK头实体(定义块名称和原点(通常为0,0)等)组成,后跟构成块定义的所有几何,最后是终止ENDBLK实体。

块定义中包含的所有几何都是相对于块定义的原点定义的;然后,当创建块引用(INSERT)时,块定义几何体将相对于块引用的插入点进行转换。