我正在用Java绘制dxf文件。到目前为止,我可以画,LINES,POLYLINES,TEXT,CIRCLE,ARC,LWPOLYLINES。
但是我在绘制INSERT实体时遇到了问题。我知道这映射到块实体,但当我绘制它们时,什么都不显示。我知道你必须对INSERT实体做一些转换,但我不知道该怎么做。我在谷歌上搜索了很多关于这方面的信息,但没有找到。因此,我希望您能给出一些方向,如何处理INSERT实体。我还研究了一些框架,如ycad和dxf-code,但这些代码很难跟踪。
将INSERT转换为LINE和ARC等实体的算法是什么
谢谢
约翰
发布于 2018-03-23 01:12:04
很难给你一个明确的答案,因为我们看不到代码。但是在AutoDesk网站上描述了INSERT特性的管理方式。以下是blocks in DXF files的信息。
它还提供了有关两个重要条目BLOCK和ENDBLCK的信息。
下面是一个包含LINE和ARC的块的示例。该块将如下所示:

该块名为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定义的。然后相对于此原点以1:1的比例绘制ENTITIES。
想象一个矩形,它的比例因子是1的单位平方。那么坐标就是:
-0.5, 0.5
0.5, 0.5
0.5, -0.5
-0.5, -0.5我希望这些信息能帮助你。
发布于 2018-04-05 06:56:10
BLOCK图元(也称为块定义)本质上是INSERT (也称为块参照)的“蓝图”。
块定义(BLOCK图元)是每个块参照的“模板”,这意味着只需要存储每个块参照的位置、旋转和比例,而不是为图形中的每个块参照复制构成块的所有几何信息。
块定义位于块符号表中,由BLOCK标头图元(定义块名和原点(通常为0,0)以及其他特性)、后跟形成块定义的所有几何图形以及最终的ENDBLK图元组成。
块定义中包含的所有几何图形都是相对于块定义的原点定义的;然后,创建块参照(INSERT)时,块定义几何图形将相对于块参照的插入点进行变换。
https://stackoverflow.com/questions/49426182
复制相似问题