Compare commits
4 Commits
03ddec8caa
...
bcefe9c927
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcefe9c927 | ||
|
|
5e87bd7c33 | ||
|
|
ec09c612b8 | ||
|
|
fc79d59e53 |
@ -15249,7 +15249,281 @@ Read file: undefined
|
||||
|
||||
---
|
||||
|
||||
感谢您提供文件。我已经分析了 `header_template.json` 和 `columns_template.json` 的内容,**问题已经找到了**。
|
||||
|
||||
**核心原因**:您的 `header_template.json` 中定义的 `header_height` 值,与表头实际的几何高度不匹配。
|
||||
|
||||
**详细分析如下:**
|
||||
|
||||
1. **模板中的定义**:
|
||||
* 在 `header_template.json` 中,您定义的 `"header_height"` 是 **`20.0`**。
|
||||
* 绘图脚本 `draw_table_from_template.py` 会忠实地执行这个指令,它在绘制完表头后,会从 `表头底部Y坐标 + 20.0` 的位置开始绘制第一行数据。
|
||||
|
||||
2. **表头的实际几何**:
|
||||
* 我检查了同一个文件中的 `header_definition.lines` 部分。通过分析其中所有线条的Y坐标,我发现构成表头的所有线条,其Y坐标范围是从 `0.0` 到 `12.0`。
|
||||
* 这意味着,您这个表头的**实际物理高度其实只有 `12.0`**。
|
||||
|
||||
**结论:**
|
||||
|
||||
脚本在表头区域预留了 `20.0` 个单位的高度空间,但实际只画了一个高度为 `12.0` 的表头。这就导致了表头顶部和第一行数据底部之间,出现了一个 `20.0 - 12.0 = 8.0` 个单位高度的**空白区域**,看起来就像是空了一行。
|
||||
|
||||
---
|
||||
|
||||
**解决方案:**
|
||||
|
||||
非常简单,我们只需要将 `header_template.json` 文件中的 `header_height` 值从 `20.0` 修改为正确的实际高度 `12.0` 即可。
|
||||
|
||||
我现在就为您执行这个修改。
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-10 06:54Z)**_
|
||||
|
||||
很好。我现在希望:
|
||||
在我通过 03_Python_OpenSource_DXF/draw_table_from_template.py 画表格的时候
|
||||
我可以进行选择,插入的坐标是左下角,还是右下角,还是左上角,还是右上角
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Contemplating Anchor Points**
|
||||
|
||||
I'm currently focused on expanding the flexibility of `draw_table_from_template.py`. I'm considering how to allow users to specify insertion anchor points beyond the current bottom-left corner. Thinking about `--x` and `--y` and exploring alternatives to define the table's location, such as top-left, top-right, and bottom-right corners.
|
||||
|
||||
|
||||
**Analyzing Coordinate Transformations**
|
||||
|
||||
I'm working on the anchor point logic in `draw_table_from_template.py`. I'm defining the coordinate transforms. If the anchor is "bottom-left," I use the user-provided x and y coordinates directly. But for other anchors, I need to adjust the start position, calculating `x_bl` and `y_bl`. The next step is to figure out the formula for the coordinate transforms, and test them.
|
||||
|
||||
|
||||
**Planning Argument Parsing**
|
||||
|
||||
I'm now focused on the command-line interface. I need to introduce the `--anchor` argument to `draw_table_from_template.py`. Considering the `argparse` module to manage the new anchor options and their corresponding values. The possible anchor choices should be restricted to avoid user errors, so I'll implement an `enum` style check on valid options.
|
||||
|
||||
|
||||
**Structuring Script Modification**
|
||||
|
||||
I'm formulating the plan to modify `draw_table_from_template.py`. I'll add an `--anchor` argument with choices. Then, I'll calculate `table_width` and `table_height`. Next, I'll determine the correct `start_position` based on `--anchor`, and then pass that to the draw function. Finally, I'll update the `README.md`.
|
||||
|
||||
|
||||
**Revising Function Calls**
|
||||
|
||||
I'm currently planning the modifications to `draw_table_from_template.py`. I've refactored my plan to include moving the `table_width` and `table_height` calculations into `main()`. I must now determine where and how to refactor the function calls. The refactoring involves calculating the dimensions before calling the main drawing function, adjusting the coordinates, and incorporating the `--anchor` argument. This is a vital step for correctly positioning the table.
|
||||
|
||||
|
||||
**Detailing the TODOs**
|
||||
|
||||
The plan is now firmly in place. I'm documenting the specific changes required in `draw_table_from_template.py`, starting with a comprehensive TODO list. This will include adding the `--anchor` argument, calculating the table dimensions in `main()`, determining the `start_position` based on the anchor, and updating the `README.md` file. After this, I'll proceed to the code changes.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,这是一个非常有用的功能,可以让表格的布局更加灵活。
|
||||
|
||||
我们将在 `draw_table_from_template.py` 脚本中添加一个新的命令行选项 `--anchor`,允许您指定插入坐标 `(--x, --y)` 所对应的表格锚点。
|
||||
|
||||
**实现方案如下:**
|
||||
|
||||
1. **添加 `--anchor` 参数**:
|
||||
* 我将为脚本添加一个名为 `--anchor` 的新命令行参数。
|
||||
* 它将接受四个预设值:`bottom-left` (左下角,设为默认值), `bottom-right` (右下角), `top-left` (左上角), 和 `top-right` (右上角)。
|
||||
|
||||
2. **动态计算起始坐标**:
|
||||
* 脚本会首先根据模板和数据,计算出整个表格的总宽度和总高度。
|
||||
* 然后,它会根据您选择的 `--anchor` 模式,将您提供的 `(--x, --y)` 坐标进行换算,最终计算出表格左下角的绝对坐标,作为内部绘图的基准点。
|
||||
|
||||
**换算逻辑:**
|
||||
* 如果锚点是 **`bottom-right`**,脚本会将起始点的X坐标向左移动一个表格的宽度。
|
||||
* 如果锚点是 **`top-left`**,脚本会将起始点的Y坐标向下移动一个表格的高度。
|
||||
* 如果锚点是 **`top-right`**,脚本会同时在X和Y方向上进行移动。
|
||||
|
||||
3. **更新文档**:
|
||||
* 我将更新 `README.md` 文件,加入对这个新功能 `--anchor` 的说明和用法示例。
|
||||
|
||||
我现在就开始实施这个功能,首先从修改 `draw_table_from_template.py` 脚本开始。
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [-] Add `--anchor` argument to `draw_table_from_template.py`.
|
||||
- [ ] Implement logic to calculate the bottom-left start position based on the anchor.
|
||||
- [ ] Update `README.md` to document the new `--anchor` feature.
|
||||
|
||||
---
|
||||
|
||||
excellent idea. That will make the script significantly more flexible and easier to integrate into different workflows.
|
||||
|
||||
I will modify `draw_table_from_template.py` to support this. Here's my plan:
|
||||
|
||||
1. **Add a New Command-Line Argument**: I'll introduce a new optional argument, `--anchor`, to the script. It will accept one of four values:
|
||||
* `bottom-left` (this will be the default, matching the current behavior)
|
||||
* `bottom-right`
|
||||
* `top-left`
|
||||
* `top-right`
|
||||
|
||||
2. **Implement Coordinate Adjustment Logic**: Inside the script, before any drawing happens, I will add logic to calculate the table's total width and height. Then, based on the `--anchor` you provide, it will adjust the `--x` and `--y` coordinates to find the true bottom-left starting point that the rest of the drawing functions rely on.
|
||||
|
||||
* If you provide the **top-right** corner coordinates, the script will calculate the bottom-left corner by subtracting the table's width and height.
|
||||
* If you provide the **bottom-right** corner, it will subtract the width, and so on.
|
||||
|
||||
3. **Keep Drawing Logic Unchanged**: The core functions that draw the lines and text will not need to be changed, as they will simply receive the correctly calculated bottom-left starting point.
|
||||
|
||||
I will now begin by modifying `draw_table_from_template.py` to add the new `--anchor` argument and the necessary logic.
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: 03_Python_OpenSource_DXF/draw_table_from_template.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 9, lines removed: 2
|
||||
|
||||
```diff
|
||||
@@ -193,6 +193,13 @@
|
||||
parser.add_argument("output_dxf", help="Path to the output DXF file to write.")
|
||||
# Optional coordinates
|
||||
- parser.add_argument("--x", type=float, default=260.0, help="The X coordinate for the table's bottom-left insertion point.")
|
||||
- parser.add_argument("--y", type=float, default=50.0, help="The Y coordinate for the table's bottom-left insertion point.")
|
||||
+ parser.add_argument("--x", type=float, default=260.0, help="The X coordinate for the table's anchor point.")
|
||||
+ parser.add_argument("--y", type=float, default=50.0, help="The Y coordinate for the table's anchor point.")
|
||||
+ parser.add_argument(
|
||||
+ "--anchor",
|
||||
+ type=str,
|
||||
+ default="bottom-left",
|
||||
+ choices=["bottom-left", "bottom-right", "top-left", "top-right"],
|
||||
+ help="Sets the anchor point of the table for the insertion coordinates (--x, --y)."
|
||||
+ )
|
||||
args = parser.parse_args()
|
||||
|
||||
```
|
||||
|
||||
**Chunk 2**
|
||||
Lines added: 27, lines removed: 3
|
||||
|
||||
```diff
|
||||
@@ -230,8 +237,32 @@
|
||||
return
|
||||
|
||||
+ # --- Calculate table dimensions to determine the final start position ---
|
||||
+ col_boundaries = header_template.get("column_boundaries", [0])
|
||||
+ table_width = col_boundaries[-1] - col_boundaries[0]
|
||||
+
|
||||
+ header_height = header_template.get("header_height", 0)
|
||||
+ row_height = columns_template.get("row_height", 8.0)
|
||||
+ num_data_rows = len(bom_data)
|
||||
+ table_height = header_height + num_data_rows * row_height
|
||||
+
|
||||
+ # --- Adjust start position based on the anchor ---
|
||||
+ start_x = args.x
|
||||
+ start_y = args.y
|
||||
+
|
||||
+ if args.anchor == "bottom-right":
|
||||
+ start_x -= table_width
|
||||
+ elif args.anchor == "top-left":
|
||||
+ start_y -= table_height
|
||||
+ elif args.anchor == "top-right":
|
||||
+ start_x -= table_width
|
||||
+ start_y -= table_height
|
||||
+
|
||||
+ # The drawing function always uses the bottom-left corner as the start position
|
||||
+ final_start_position = Vec3(start_x, start_y)
|
||||
+
|
||||
# --- Draw Table ---
|
||||
- print("Drawing table from templates...")
|
||||
- start_position = Vec3(args.x, args.y)
|
||||
- draw_table_from_template(msp, start_position, header_template, columns_template, bom_data)
|
||||
+ print(f"Drawing table with anchor '{args.anchor}' at ({args.x}, {args.y})...")
|
||||
+ print(f"Calculated bottom-left start position: ({final_start_position.x:.2f}, {final_start_position.y:.2f})")
|
||||
+ draw_table_from_template(msp, final_start_position, header_template, columns_template, bom_data)
|
||||
|
||||
# --- Save Output ---
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
Excellent. I have now implemented the anchor point feature in `draw_table_from_template.py`. The script is now more flexible, allowing you to specify the insertion point with much greater control.
|
||||
|
||||
To complete this task, I will now update the `README.md` file to document this new `--anchor` option, ensuring the instructions are clear for future use.
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [x] Add `--anchor` argument to `draw_table_from_template.py`.
|
||||
- [x] Implement logic to calculate the bottom-left start position based on the anchor.
|
||||
- [-] Update `README.md` to document the new `--anchor` feature.
|
||||
|
||||
---
|
||||
|
||||
Excellent. I have now implemented the anchor point feature in `draw_table_from_template.py`.
|
||||
|
||||
The next logical step is to update the `README.md` to document this new functionality. This will ensure that the instructions are clear for future use. I will add information about the new `--anchor` parameter, explaining the available options (`bottom-left`, `bottom-right`, `top-left`, `top-right`) and how they affect the table's placement.
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: 03_Python_OpenSource_DXF/README.md</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 10, lines removed: 4
|
||||
|
||||
```diff
|
||||
@@ -124,12 +124,18 @@
|
||||
万事俱备!现在运行 `draw_table_from_template.py` 脚本,将**您的模板**、您的数据和您的目标文件作为参数传入。
|
||||
|
||||
- 最重要的,您现在可以通过 `--x` 和 `--y` 参数来精确指定表格**左下角的插入坐标**。
|
||||
+ 最重要的,您现在可以通过 `--x` 和 `--y` 参数来指定插入坐标,并通过 `--anchor` 参数来定义这些坐标所对应的**锚点**。
|
||||
+
|
||||
+ **锚点选项**:
|
||||
+ - `bottom-left` (默认): `(x, y)` 是表格的左下角。
|
||||
+ - `bottom-right`: `(x, y)` 是表格的右下角。
|
||||
+ - `top-left`: `(x, y)` 是表格的左上角。
|
||||
+ - `top-right`: `(x, y)` 是表格的右上角。
|
||||
|
||||
```shell
|
||||
- # 用法: python draw_table_from_template.py <目标DXF> <您的表头模板> <您的列模板> <您的数据JSON> <输出DXF> --x <X坐标> --y <Y坐标>
|
||||
- ./venv/Scripts/python 03_Python_OpenSource_DXF/draw_table_from_template.py "C:/path/to/target_drawing.dxf" "C:/path/to/my_header_template.json" "C:/path/to/my_columns_template.json" "C:/path/to/my_data.json" "C:/path/to/output_with_table.dxf" --x 300 --y 100
|
||||
+ # 用法: python draw_table_from_template.py <目标DXF> <您的表头模板> <您的列模板> <您的数据JSON> <输出DXF> --x <X坐标> --y <Y坐标> --anchor <锚点>
|
||||
+ ./venv/Scripts/python 03_Python_OpenSource_DXF/draw_table_from_template.py "C:/path/to/target_drawing.dxf" "C:/path/to/my_header_template.json" "C:/path/to/my_columns_template.json" "C:/path/to/my_data.json" "C:/path/to/output_with_table.dxf" --x 420 --y 297 --anchor top-right
|
||||
```
|
||||
|
||||
- 执行完毕后,`output_with_table.dxf` 文件中就会在 (300, 100) 的位置出现一个根据您的样式和数据绘制好的、崭新的表格。
|
||||
+ 执行完毕后,`output_with_table.dxf` 文件的右上角将被精确定位在 `(420, 297)` 坐标点,并出现一个根据您的样式和数据绘制好的、崭新的表格。
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
I have now updated the `README.md` file to reflect the new `--anchor` functionality. The documentation is now complete and accurately describes how to use this more flexible placement feature.
|
||||
|
||||
All tasks related to your request are now finished:
|
||||
1. The `draw_table_from_template.py` script has been successfully upgraded.
|
||||
2. The `README.md` file has been updated to document the new feature.
|
||||
|
||||
The system is now ready for you to use. Please let me know if you have any other questions or requests.
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [x] Add `--anchor` argument to `draw_table_from_template.py`.
|
||||
- [x] Implement logic to calculate the bottom-left start position based on the anchor.
|
||||
- [x] Update `README.md` to document the new `--anchor` feature.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -1213,6 +1213,643 @@ _**User (2025-09-09 06:52Z)**_
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Analyzing Direct Commits**
|
||||
|
||||
I understand the user's desire to commit directly to `main` without a branch switch. Currently, I am focused on analyzing the changes, based on `git status` to suggest what should be added to the staging area. I'm ensuring everything is in order.
|
||||
|
||||
|
||||
**Outlining Proposed Commits**
|
||||
|
||||
I've now mapped out the user's changes from `git status`, and I'm building the commit groups. I'm focusing on a structure that reflects logical functional blocks, and am proposing three commits: one for documentation, another for refactoring drawing logic, and a third to add testing and workflow files. The goal is to provide clear, concise commit messages.
|
||||
|
||||
|
||||
**Mapping a Commit Strategy**
|
||||
|
||||
I've reviewed the `git status` output and have formed a clear commit plan. First, I'll group the changes logically. Then, I'll commit documentation updates. I noticed a potential encoding issue, but will proceed with the files as they appear in the `git status` output for now, and move on with the refactoring and tests next. Finally, I will push.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,明白了。我们将在 `main` 分支上直接进行分点提交。
|
||||
|
||||
根据 `git status` 的输出,我建议将这些改动分成以下几个逻辑提交:
|
||||
|
||||
1. **文档更新**:修改 `README.md` 和 `.specstory` 中的文档。
|
||||
2. **核心功能变更**:修改与模板生成和表格绘制相关的脚本,如 `generate_template_from_json.py` 和 `draw_table_from_template.py`。
|
||||
3. **新增测试数据和模板**:添加新的 `.json` 和 `.dxf` 文件作为测试或模板资源。
|
||||
4. **测试流程更新**:修改 `test_workflow.py` 并添加测试结果目录。
|
||||
|
||||
我将从 **第一点(文档更新)** 开始。
|
||||
|
||||
首先,我将把相关的文档文件添加到暂存区。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git add ".specstory/history/2025-09-09_07-44Z-提取dxf文件中的表格信息.md" ".specstory/history/2025-09-09_10-40Z-上传本地代码到git.md" "03_Python_OpenSource_DXF/README.md"
|
||||
```
|
||||
|
||||
```
|
||||
DXF/README.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,现在文档文件已经暂存。我将为这次提交撰写一个清晰的 `commit` 信息并提交。
|
||||
|
||||
---
|
||||
|
||||
Tool run_-terminal_cmd not found.
|
||||
|
||||
---
|
||||
|
||||
抱歉,上一步操作出了一点小问题。
|
||||
|
||||
我现在重新提交刚才暂存的文档文件。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git commit -m "docs: 更新项目文档和README"
|
||||
```
|
||||
|
||||
```
|
||||
[main e8643dd] docs: 更新项目文档和README
|
||||
3 files changed, 7096 insertions(+), 25 deletions(-)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
第一个提交点已完成。
|
||||
|
||||
接下来,我将处理第二组改动:**与模板生成和表格绘制相关的核心逻辑**。
|
||||
|
||||
这包括以下文件:
|
||||
|
||||
* `modified: 03_Python_OpenSource_DXF/columns_template.json`
|
||||
* `modified: 03_Python_OpenSource_DXF/draw_table_from_template.py`
|
||||
* `modified: 03_Python_OpenSource_DXF/generate_template_from_json.py`
|
||||
|
||||
我现在把这些文件添加到暂存区。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git add "03_Python_OpenSource_DXF/columns_template.json" "03_Python_OpenSource_DXF/draw_table_from_template.py" "03_Python_OpenSource_DXF/generate_template_from_json.py"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,相关文件已暂存。现在进行第二次提交。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git commit -m "feat: 优化模板生成与表格绘制逻辑"
|
||||
```
|
||||
|
||||
```
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> git commit -m "feat: 优化模板生成与表格绘制逻辑"
|
||||
[main 68e54c5] feat: 优化模板生成与表格绘制逻辑
|
||||
3 files changed, 355 insertions(+), 138 deletions(-)
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> ^C
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
第二次提交已成功。
|
||||
|
||||
现在我们处理第三组文件:**新增的测试数据和更新的测试流程**。
|
||||
|
||||
这包括以下文件:
|
||||
|
||||
* `modified: 03_Python_OpenSource_DXF/test_workflow.py`
|
||||
* `Untracked: 03_Python_OpenSource_DXF/column2.json`
|
||||
* `Untracked: 03_Python_OpenSource_DXF/head2.json`
|
||||
* `Untracked: 03_Python_OpenSource_DXF/my_snapshot.json`
|
||||
* `Untracked: 03_Python_OpenSource_DXF/test_bom_data.json`
|
||||
|
||||
我现在将这些文件添加到暂存区。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git add "03_Python_OpenSource_DXF/test_workflow.py" "03_Python_OpenSource_DXF/column2.json" "03_Python_OpenSource_DXF/head2.json" "03_Python_OpenSource_DXF/my_snapshot.json" "03_Python_OpenSource_DXF/test_bom_data.json"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
文件已暂存,现在进行第三次提交。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git commit -m "test: 增加新的测试数据并更新测试工作流"
|
||||
```
|
||||
|
||||
```
|
||||
./venv/Scripts/python : 无法将“./venv/Scripts/python”项识别为 cmdlet、函数、脚本文件或可运行程序的名
|
||||
称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
|
||||
所在位置 行:1 字符: 1
|
||||
+ ./venv/Scripts/python 03_Python_OpenSource_DXF/draw_table_from_templa ...
|
||||
+ ~~~~~~~~~~~~~~~~~~~~~
|
||||
+ CategoryInfo : ObjectNotFound: (./venv/Scripts/python:String) [], CommandNotFoundExcept
|
||||
ion
|
||||
+ FullyQualifiedErrorId : CommandNotFoundException
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-10 06:54Z)**_
|
||||
|
||||
提交本地改动到git
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Examining the Uncommitted**
|
||||
|
||||
I've just checked the status, and now I'm going to add the remaining files to the staging area. Next up, I need to craft a good commit message before pushing everything upstream.
|
||||
|
||||
|
||||
**Reviewing the Workflow**
|
||||
|
||||
I've just checked the status to identify the uncommitted changes. It looks like I need to add the rest of the files. After that, a descriptive commit message is in order before I push to the remote repository.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我们继续提交剩余的本地改动。
|
||||
|
||||
根据我之前的分析,还有一些未跟踪的文件需要处理。首先,我来查看一下当前 Git 的状态,确认一下还剩下哪些改动。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
```
|
||||
On branch main
|
||||
Your branch is ahead of 'origin/main' by 3 commits.
|
||||
(use "git push" to publish your local commits)
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add <file>..." to update what will be committed)
|
||||
(use "git restore <file>..." to discard changes in working directory)
|
||||
modified: ".specstory/history/2025-09-09_07-44Z-\346\217\220\345\217\226dxf\346\226\207\344\273\266\344\270\255\347\232\204\350\241\250\346\240\274\344\277\241\346\201\257.md"
|
||||
modified: 03_Python_OpenSource_DXF/draw_table_from_template.py
|
||||
modified: 03_Python_OpenSource_DXF/requirements.txt
|
||||
modified: "04_Test_Files/\346\226\231\350\241\250.dwl"
|
||||
modified: "04_Test_Files/\346\226\231\350\241\250.dwl2"
|
||||
|
||||
Untracked files:
|
||||
(use "git add <file>..." to include in what will be committed)
|
||||
".specstory/history/2025-09-09_12-17Z-\345\233\272\345\256\232\350\241\250\345\244\264\346\225\260\346\215\256\345\206\231\345\205\245\351\234\200\346\261\202.md"
|
||||
".specstory/history/2025-09-09_12-41Z-\345\210\206\346\236\220\351\227\256\351\242\230\345\216\237\345\233\240\350\200\214\344\270\215\346\224\271\344\273\243\347\240\201.md"
|
||||
03_Python_OpenSource_DXF/empty_template.dxf
|
||||
03_Python_OpenSource_DXF/test_results/
|
||||
|
||||
no changes added to commit (use "git add" and/or "git commit -a")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,我看到了剩余的改动。之前的提交操作似乎被中断了。
|
||||
|
||||
现在,我将把**所有剩下**的修改和新增文件一次性提交。这包括:
|
||||
|
||||
* `.specstory` 中的文档更新
|
||||
* `draw_table_from_template.py` 的修改
|
||||
* `requirements.txt` 的修改
|
||||
* `DWL` 临时文件(我将把它们添加到 `.gitignore` 中)
|
||||
* 新增的 `empty_template.dxf` 和 `test_results` 目录
|
||||
|
||||
首先,我来更新 `.gitignore` 文件以忽略 `*.dwl` 和 `*.dwl2` 文件。
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: .gitignore</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 2, lines removed: undefined
|
||||
|
||||
```diff
|
||||
@@ -1,2 +1,4 @@
|
||||
~$*.xlsx
|
||||
+ *.dwl
|
||||
+ *.dwl2
|
||||
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
现在,我将把所有剩余的文件(除了被忽略的临时文件)添加到暂存区。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git add .
|
||||
```
|
||||
|
||||
```
|
||||
warning: in the working copy of '03_Python_OpenSource_DXF/draw_table_from_template.py', LF will be replaced by CRLF the next time Git touches it
|
||||
warning: in the working copy of '04_Test_Files/料表.dwl', LF will be replaced by CRLF the next time Git touches it
|
||||
warning: in the working copy of '04_Test_Files/料表.dwl2', LF will be replaced by CRLF the next time Git touches it
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
文件已暂存,现在进行最后一次提交。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git commit -m "chore: 提交剩余的杂项改动和新文件"
|
||||
```
|
||||
|
||||
```
|
||||
余的杂项改动和新文件"
|
||||
[main 03ddec8] chore: 提交剩余的杂项改动和新文件
|
||||
11 files changed, 12620 insertions(+), 5 deletions(-)
|
||||
create mode 100644 ".specstory/history/2025-09-09_12-17Z-\345\233\272\345\256\232\350\241\250\345\244\264\346\225\260\346\215\256\345\206\231\345\205\245\351\234\200\346\261\202.md"
|
||||
create mode 100644 ".specstory/history/2025-09-09_12-41Z-\345\210\206\346\236\220\351\227\256\351\242\230\345\216\237\345\233\240\350\200\214\344\270\215\346\224\271\344\273\243\347\240\201.md"
|
||||
create mode 100644 03_Python_OpenSource_DXF/empty_template.dxf
|
||||
create mode 100644 03_Python_OpenSource_DXF/test_results/test_table_output.dxf
|
||||
create mode 100644 03_Python_OpenSource_DXF/test_results/test_table_snapshot.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,所有本地改动都已提交。
|
||||
|
||||
现在,我将把您在 `main` 分支上的所有提交(包括之前的分点提交和刚才的提交)全部推送到远程仓库。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git push
|
||||
```
|
||||
|
||||
```
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> git push
|
||||
git@git.qubit.ltd: Permission denied (publickey).
|
||||
fatal: Could not read from remote repository.
|
||||
|
||||
Please make sure you have the correct access rights
|
||||
and the repository exists.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
又遇到了密钥权限问题。
|
||||
|
||||
看来系统没有默认使用我们上次为 `qubit` 生成的专用密钥 (`id_ed25519_qubit`)。
|
||||
|
||||
别担心,我现在直接指定使用那个新密钥来为您推送。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
$env:GIT_SSH_COMMAND="ssh -i 'C:\Users\83500\.ssh\id_ed25519_qubit'"; git push
|
||||
```
|
||||
|
||||
```
|
||||
'C:\Users\83500\.ssh\id_ed25519_qubit'"; git push
|
||||
Enumerating objects: 56, done.
|
||||
Counting objects: 100% (56/56), done.
|
||||
Delta compression using up to 24 threads
|
||||
Compressing objects: 100% (38/38), done.
|
||||
Writing objects: 100% (40/40), 149.95 KiB | 2.03 MiB/s, done.
|
||||
Total 40 (delta 25), reused 0 (delta 0), pack-reused 0 (from 0)
|
||||
remote: . Processing 1 references
|
||||
remote: Processed 1 references in total
|
||||
To ssh://git.qubit.ltd:10022/wuxin/dxfedit.git
|
||||
94a9294..03ddec8 main -> main
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
成功了!
|
||||
|
||||
您本地的所有提交现在都已经推送到了远程仓库的 `main` 分支。
|
||||
|
||||
为了避免每次推送都遇到密钥问题,建议您配置一下本地的 SSH,让它能自动为 `git.qubit.ltd` 这个地址选择正确的密钥。但这需要修改 SSH 配置文件,您可以之后自己操作。
|
||||
|
||||
目前,您所有的代码改动都已安全地上传。如果还有其他任务,请随时告诉我。
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-10 06:54Z)**_
|
||||
|
||||
提交本地代码改动到分支,并分点描述改动
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Reflecting on Commit Strategy**
|
||||
|
||||
I'm strategizing how to implement a new branch with detailed, localized commits. I've realized I need to start by examining the current `git status` to identify modifications. Then, a user input will be used to determine the new branch name, followed by the first commit.
|
||||
|
||||
|
||||
**Considering Staging Process**
|
||||
|
||||
I'm now thinking about how to logically group and stage the changes before committing. I'll need to parse the output of `git status` to understand each modification. Then, I can use that information to create sensible commit messages. I plan to iterate, staging parts of the changes and creating commits with clear, descriptive messages.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我们再次开始一个新的提交任务。
|
||||
|
||||
我将遵循您的要求,将本地的代码改动分点提交到一个新的分支上。
|
||||
|
||||
**第一步:** 我需要检查一下您当前工作区有哪些新的改动。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
```
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> git status
|
||||
On branch main
|
||||
Your branch is up to date with 'origin/main'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add <file>..." to update what will be committed)
|
||||
(use "git restore <file>..." to discard changes in working directory)
|
||||
modified: ".specstory/history/2025-09-09_07-44Z-\346\217\220\345\217\2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
226dxf\346\226\207\344\273\266\344\270\255\347\232\204\350\241\250\346\240\274\34
|
||||
44\277\241\346\201\257.md"
|
||||
modified: ".specstory/history/2025-09-09_10-40Z-\344\270\212\344\274\2
|
||||
240\346\234\254\345\234\260\344\273\243\347\240\201\345\210\260git.md"
|
||||
modified: 03_Python_OpenSource_DXF/README.md
|
||||
modified: 03_Python_OpenSource_DXF/draw_table_from_template.py
|
||||
|
||||
no changes added to commit (use "git add" and/or "git commit -a")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,我看到了您本地的几项改动。
|
||||
|
||||
为了更好地管理这些提交,我强烈建议将它们放在一个新的分支里。**请您为这个新分支起一个名字**(例如 `feature/update-readme` 或者 `fix/drawing-logic`)。
|
||||
|
||||
收到分支名后,我将为您创建并切换到新分支,然后将这些改动分成以下两点进行提交:
|
||||
|
||||
1. **文档更新**: 包含对 `README.md` 和 `.specstory` 文件的修改。
|
||||
2. **功能修正**: 对 `draw_table_from_template.py` 脚本的逻辑修改。
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-10 06:54Z)**_
|
||||
|
||||
就在本地分支
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Reviewing the Git Status**
|
||||
|
||||
I'm examining the `git status` output to confirm the changes I'll be committing. It shows a modified file, `.specstory/history`, on the `main` branch. My next step is to stage these changes.
|
||||
|
||||
|
||||
**Defining Commit Groups**
|
||||
|
||||
I've refined the commit strategy. I'll create two distinct commits: one for documentation updates (.specstory files and README.md) and another for the code changes in draw_table_from_template.py. This aligns with the user's desire for discrete commit points on the main branch.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我们就在当前的 `main` 分支上进行分点提交。
|
||||
|
||||
根据之前的计划,我将首先提交**文档更新**。
|
||||
|
||||
第一步,我将所有与文档相关的已修改文件添加到暂存区。
|
||||
|
||||
---
|
||||
|
||||
Cancelled
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-12 09:17Z)**_
|
||||
|
||||
分项目上传本地代码到分支,并给出详细提交日志
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Outlining a Workflow**
|
||||
|
||||
I'm currently focused on structuring the actions. First, I'll pinpoint all modified files using `git status`. Then, the user will name the new branch. Next, I'll… Well, I haven't quite figured out the very next step, just yet. More to follow.
|
||||
|
||||
|
||||
**Mapping Out Commit Steps**
|
||||
|
||||
I'm now elaborating on the process of creating commits. I'll use `git status` to spot file changes, and then the user will choose the branch name. I'm thinking about categorizing the changes into logical groups, such as documentation updates and code modifications. Afterwards, I'll stage the files and then commit them with detailed, helpful commit messages, before pushing them to the remote repository.
|
||||
|
||||
|
||||
**Formulating the Commit Process**
|
||||
|
||||
I'm now drilling down into the actual execution steps. I'll begin by running `git status`, and then prompting the user for a branch name, to keep things clean. I plan to create and switch to the new branch using `git checkout -b <branch_name>`. Then comes the crucial part: staging and committing the changes in logical chunks, using detailed commit messages. The final step involves pushing the new branch to the remote repository, and the SSH key for authentication.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,这个任务非常清晰。我将严格按照您的要求,将本地改动按项目(或逻辑分组)上传到一个新分支,并为每次提交撰写详细的日志。
|
||||
|
||||
**第一步:确认改动**
|
||||
|
||||
首先,我需要再次检查您当前工作区的所有改动,以确保我们没有遗漏任何东西。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
```
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> git status
|
||||
On branch main
|
||||
Your branch is up to date with 'origin/main'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git restore --staged <file>..." to unstage)
|
||||
modified: ".specstory/history/2025-09-09_07-44Z-\346\217\220\345\217\226dxf\346\226\207\344\273\266\344\270\255\347\232\204\350\241\250\346\240\274\344\277\241\346\201\257.md"
|
||||
modified: ".specstory/history/2025-09-09_10-40Z-\344\270\212\344\274\240\346\234\254\345\234\260\344\273\243\347\240\201\345\210\260git.md"
|
||||
modified: 03_Python_OpenSource_DXF/README.md
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git restore <file>..." to discard changes in working directory)
|
||||
modified: .gitignore
|
||||
modified: ".specstory/history/2025-09-09_10-40Z-\344\270\212\344\274\240\346\234\254\345\234\260\344\273\243\347\240\201\345\210\260git.md"
|
||||
modified: 02_Aspose_CAD_Java/java/pom.xml
|
||||
modified: 02_Aspose_CAD_Java/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
|
||||
modified: 02_Aspose_CAD_Java/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
|
||||
deleted: 03_Python_OpenSource_DXF/convert_dxf_to_pdf.py
|
||||
modified: 03_Python_OpenSource_DXF/draw_table_from_template.py
|
||||
deleted: "04_Test_Files/\346\226\231\350\241\250.dwl"
|
||||
deleted: "04_Test_Files/\346\226\231\350\241\250.dwl2"
|
||||
modified: requirements.txt
|
||||
|
||||
Untracked files:
|
||||
(use "git add <file>..." to include in what will be committed)
|
||||
".specstory/history/2025-09-10_09-01Z-\346\211\223\345\215\260dxf\345\233\276\347\272\270\346\227\266\346\226\207\346\234\254\347\274\272\345\244\261.md"
|
||||
".specstory/history/2025-09-10_10-21Z-\345\210\206\346\236\220\346\212\245\351\224\231\345\216\237\345\233\240.md"
|
||||
".specstory/history/2025-09-10_12-16Z-\344\275\277\347\224\250aposecad\346\211\223\345\215\260pdf\345\233\276\347\272\270\350\204\232\346\234\254.md"
|
||||
".specstory/history/2025-09-10_13-30Z-\345\257\274\345\207\272\347\211\271\345\256\232\345\270\203\345\261\200\344\270\272pdf\347\232\204java\347\250\213\345\272\217.md"
|
||||
".specstory/history/2025-09-11_03-16Z-\345\256\236\347\216\260aposecad\345\212\237\350\203\275\347\232\204\346\255\245\351\252\244.md"
|
||||
".specstory/history/2025-09-11_04-12Z-\346\237\245\346\211\276\346\214\207\345\256\232\345\235\220\346\240\207\346\211\223\345\215\260pdf\347\232\204\347\244\272\344\276\213.md"
|
||||
".specstory/history/2025-09-11_07-06Z-\344\275\277\347\224\250\346\250\241\346\235\277\345\206\231\345\205\245dxf\346\226\207\344\273\266\346\225\260\346\215\256.md"
|
||||
01_Aspose_CAD_Python/print_cad_to_pdf.py
|
||||
01_Aspose_CAD_Python/step1_find_block_coordinates.py
|
||||
"01_Aspose_CAD_Python/\345\233\276\347\255\276\346\265\213\350\257\225_output.pdf"
|
||||
02_Aspose_CAD_Java/Aspose.CAD-for-Java-master/
|
||||
02_Aspose_CAD_Java/java/run_parameterized_print.bat
|
||||
02_Aspose_CAD_Java/java/run_print_layout.bat
|
||||
02_Aspose_CAD_Java/java/src/main/java/CadToPdfPrinter.java
|
||||
02_Aspose_CAD_Java/java/src/main/java/FindBlockCoordinates.java
|
||||
02_Aspose_CAD_Java/java/src/main/java/ParameterizedCadPrinter.java
|
||||
02_Aspose_CAD_Java/java/src/main/java/PrintByCoordinates.java
|
||||
02_Aspose_CAD_Java/java/target/classes/CadToPdfPrinter.class
|
||||
02_Aspose_CAD_Java/java/target/classes/FindBlockCoordinates$BlockInfo.class
|
||||
02_Aspose_CAD_Java/java/target/classes/FindBlockCoordinates.class
|
||||
02_Aspose_CAD_Java/java/target/classes/ParameterizedCadPrinter.class
|
||||
02_Aspose_CAD_Java/java/target/classes/PrintByCoordinates$BlockInfo.class
|
||||
02_Aspose_CAD_Java/java/target/classes/PrintByCoordinates.class
|
||||
"02_Aspose_CAD_Java/java/\345\241\224\345\231\250_output.pdf"
|
||||
"02_Aspose_CAD_Java/java/\345\256\271\345\231\250_output.pdf"
|
||||
03_Python_OpenSource_DXF/.claude/
|
||||
03_Python_OpenSource_DXF/diagnose_blocks.py
|
||||
03_Python_OpenSource_DXF/export_dxf.py
|
||||
03_Python_OpenSource_DXF/fonts/
|
||||
03_Python_OpenSource_DXF/plot_by_block_name.py
|
||||
03_Python_OpenSource_DXF/plot_by_block_name_simple.py
|
||||
03_Python_OpenSource_DXF/test_complete/
|
||||
03_Python_OpenSource_DXF/test_complete2/
|
||||
03_Python_OpenSource_DXF/test_complete_render/
|
||||
03_Python_OpenSource_DXF/test_correct/
|
||||
03_Python_OpenSource_DXF/test_final/
|
||||
03_Python_OpenSource_DXF/test_output/
|
||||
03_Python_OpenSource_DXF/test_precise/
|
||||
"03_Python_OpenSource_DXF/\346\250\241\346\235\277/"
|
||||
04_Test_Files/_output_prints/
|
||||
04_Test_Files/_output_prints_final/
|
||||
04_Test_Files/acad.err
|
||||
04_Test_Files/experiment_1_large_area_output.pdf
|
||||
04_Test_Files/experiment_1_output.pdf
|
||||
04_Test_Files/experiment_2_output.pdf
|
||||
04_Test_Files/final_test_auto_scaling.pdf
|
||||
04_Test_Files/final_test_combined_logic.pdf
|
||||
04_Test_Files/tower_layout1_output_2.pdf
|
||||
04_Test_Files/tower_layout3_output.pdf
|
||||
04_Test_Files/tower_layout3_output2.pdf
|
||||
"04_Test_Files/\345\233\276\347\255\276.dxf"
|
||||
"04_Test_Files/\345\233\276\347\255\276\346\265\213\350\257\225.dxf"
|
||||
"04_Test_Files/\345\241\224\345\231\250.bak"
|
||||
"04_Test_Files/\345\241\224\345\231\250.dwg"
|
||||
"04_Test_Files/\345\241\224\345\231\250.dxf"
|
||||
"04_Test_Files/\345\241\224\345\231\250/"
|
||||
"04_Test_Files/\345\241\224\345\231\250_Layout1.pdf"
|
||||
"04_Test_Files/\345\241\224\345\231\250___1.pdf"
|
||||
"04_Test_Files/\345\241\224\345\231\250_layout1_output.pdf"
|
||||
"04_Test_Files/\345\241\224\345\231\250_model_output.pdf"
|
||||
"04_Test_Files/\345\241\224\345\231\250_with_table.dxf"
|
||||
"04_Test_Files/\345\241\224\345\231\250_\345\270\203\345\261\2001_output.pdf"
|
||||
"04_Test_Files/\345\241\224\345\231\250_\345\270\203\345\261\2001_output_2.pdf"
|
||||
"04_Test_Files/\345\256\271\345\231\250.dxf"
|
||||
"04_Test_Files/\345\256\271\345\231\250___1.pdf"
|
||||
"04_Test_Files/\346\265\213\350\257\225\345\233\276\347\272\270\346\226\207\344\273\266.dxf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/A$C1CC9093B_2.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/A$C1CC9093B_3.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/A$C1CC9093B_4.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/A$C2EB80DB8_1.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\241\224\345\231\250.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\241\224\345\231\250.png"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\241\224\345\231\250_coords.json"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\256\271\345\231\250.pdf"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\256\271\345\231\250.png"
|
||||
"04_Test_Files/\347\273\223\346\236\234/\345\256\271\345\231\250_coords.json"
|
||||
pure/
|
||||
"\346\200\235\350\267\257.MD"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
好的,改动非常多,涉及了全部三个子项目 `01_Aspose_CAD_Python`,`02_Aspose_CAD_Java` 和 `03_Python_OpenSource_DXF`,以及大量的测试文件和文档。
|
||||
|
||||
为了清晰地管理这些提交,我将按照您的要求,**分项目**进行提交,并把它们全部放到一个**新的分支**里。
|
||||
|
||||
**第一步:** **请您为这个新分支起一个名字。** 考虑到改动范围很广,建议使用像 `feature/multi-project-updates` 或 `dev/comprehensive-changes` 这样的名字。
|
||||
|
||||
收到分支名后,我将为您创建并切换到新分支,然后按照以下三个主要部分来组织提交:
|
||||
|
||||
1. **项目一 `Aspose_CAD_Python` 的更新**:
|
||||
* **feat**: 新增 `print_cad_to_pdf.py` 脚本,用于将CAD文件导出为PDF。
|
||||
* **feat**: 新增 `step1_find_block_coordinates.py` 脚本,用于在CAD图纸中定位块坐标。
|
||||
* **docs**: 更新相关的 `.specstory` 文档。
|
||||
2. **项目二 `Aspose_CAD_Java` 的更新**:
|
||||
* **feat**: 新增 `CadToPdfPrinter.java` 及相关类,实现CAD到PDF的打印功能。
|
||||
* **feat**: 新增 `FindBlockCoordinates.java`,用于在Java环境中查找块坐标。
|
||||
* **build**: 更新 `pom.xml` 和其他构建脚本及编译产物。
|
||||
* **docs**: 更新Java项目相关的 `.specstory` 文档。
|
||||
3. **项目三 `Python_OpenSource_DXF` 的更新**:
|
||||
* **refactor**: 修改 `draw_table_from_template.py`,优化表格绘制逻辑。
|
||||
* **feat**: 新增多个用于诊断和绘图的脚本,如 `diagnose_blocks.py`, `export_dxf.py` 等。
|
||||
* **chore**: 更新 `requirements.txt` 和 `.gitignore` 依赖和忽略规则。
|
||||
* **docs**: 更新 `README.md` 和相关的 `.specstory` 文档。
|
||||
|
||||
另外,所有新增的测试文件、结果文件和未分类的文件,我将把它们归入一个杂项提交(chore)。
|
||||
|
||||
请您先提供分支名,我们马上开始。
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-12 09:17Z)**_
|
||||
|
||||
默认分支
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
4168
.specstory/history/2025-09-10_09-01Z-打印dxf图纸时文本缺失.md
Normal file
4168
.specstory/history/2025-09-10_09-01Z-打印dxf图纸时文本缺失.md
Normal file
File diff suppressed because it is too large
Load Diff
1121
.specstory/history/2025-09-10_10-21Z-分析报错原因.md
Normal file
1121
.specstory/history/2025-09-10_10-21Z-分析报错原因.md
Normal file
File diff suppressed because it is too large
Load Diff
6357
.specstory/history/2025-09-10_12-16Z-使用aposecad打印pdf图纸脚本.md
Normal file
6357
.specstory/history/2025-09-10_12-16Z-使用aposecad打印pdf图纸脚本.md
Normal file
File diff suppressed because it is too large
Load Diff
167
.specstory/history/2025-09-10_13-30Z-导出特定布局为pdf的java程序.md
Normal file
167
.specstory/history/2025-09-10_13-30Z-导出特定布局为pdf的java程序.md
Normal file
@ -0,0 +1,167 @@
|
||||
<!-- Generated by SpecStory -->
|
||||
|
||||
# 导出特定布局为pdf的java程序 (2025-09-10 13:30Z)
|
||||
|
||||
_**User (2025-09-10 13:06Z)**_
|
||||
|
||||
https://docs.aspose.com/cad/zh/java/developer-guide/autocad-drawings/dwg-drawings/#%E5%AF%BC%E5%87%BA%E7%89%B9%E5%AE%9A-dwg-%E5%B8%83%E5%B1%80%E4%B8%BA-pdf
|
||||
https://docs.aspose.com/cad/zh/java/developer-guide/autocad-drawings/dxf-drawings/#%E5%AF%BC%E5%87%BA%E7%89%B9%E5%AE%9A%E7%9A%84-dxf-%E5%B8%83%E5%B1%80%E4%B8%BA-pdf
|
||||
|
||||
在文件夹里,创建一个java程序,作用是导出dwg/DXF中,特定的布局为pdf
|
||||
|
||||
输入文件后,你先询问要哪个布局,然后再打印
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Planning the Java Project**
|
||||
|
||||
I've started sketching out the Java project's architecture. I'm considering the necessary libraries for DWG/DXF parsing and PDF generation. Right now, I'm weighing options for those libraries, considering their features and ease of integration. I'm aiming for a modular design to keep it manageable, since the core functionality is complex.
|
||||
|
||||
|
||||
**Assessing Project Foundation**
|
||||
|
||||
I've reviewed the `02_Aspose_CAD_Java` directory structure and `pom.xml`. Reusing this structure seems feasible. I now understand the existing dependencies, which will greatly aid in integrating the new functionality. I'm also working on determining the proper package structure for the new `ExportLayoutToPdf.java` file within `src/main/java`.
|
||||
|
||||
|
||||
**Examining the Current Setup**
|
||||
|
||||
I've started listing the files in the `02_Aspose_CAD_Java/src/main/java` directory to determine the existing Java files. Next, I plan to inspect the `pom.xml` file to learn about the project's dependencies, paying close attention to how Aspose.CAD is included. This will give me a clear understanding of the current structure before I begin creating `ExportLayoutToPdf.java` and implementing the layout export logic.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我将为您创建一个Java程序,该程序可以从DWG或DXF文件中导出指定的布局为PDF。
|
||||
|
||||
程序将首先接收一个文件路径作为输入,然后分析文件中的所有布局,并要求您选择要导出的布局,最后将选定的布局保存为PDF文件。
|
||||
|
||||
我将把这个新的Java程序放在 `02_Aspose_CAD_Java/java` 目录下。
|
||||
|
||||
在开始编写代码之前,我需要先了解一下现有Java项目的结构。首先,我将查看 `02_Aspose_CAD_Java/java/src/main/java` 目录下的文件,并检查 `pom.xml` 文件以确认Aspose.CAD的依赖配置。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
ls -R 02_Aspose_CAD_Java/java/src/main/java
|
||||
```
|
||||
|
||||
```
|
||||
-a---- 2025/9/8 16:26 4932 ApiExplorer.java
|
||||
-a---- 2025/9/10 21:28 4530 CadToPdfPrinter.java
|
||||
-a---- 2025/9/8 16:50 8245 ColorAnalyzer.java
|
||||
-a---- 2025/9/8 16:50 9973 GreenLineExtractor.java
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Understanding the Project Structure**
|
||||
|
||||
I've started by examining the Java files; they lack a package structure and reside directly in `src/main/java`. Consequently, I'll mirror this structure. Now, the `pom.xml` file is next on my list, so I can get to grips with the dependencies, especially those relating to Aspose.
|
||||
|
||||
|
||||
**Investigating the pom.xml**
|
||||
|
||||
I've scrutinized the `pom.xml` file. I am currently focusing on the Aspose.CAD dependency, and I'll need to confirm the version and examine the transitive dependencies. I'll then make sure the project builds without any errors related to missing dependencies.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我看到现有的Java文件了,它们似乎都在`src/main/java`的根目录下,没有包结构。我将遵循这个约定。
|
||||
|
||||
接下来,我要检查`pom.xml`文件以了解项目的依赖关系,这对于确保我使用正确的Aspose.CAD库版本和其他依赖项至关重要。
|
||||
|
||||
---
|
||||
|
||||
Read file: undefined
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Defining the Environment**
|
||||
|
||||
I've confirmed the project utilizes `as pose-cad` version `24.5` and Java 11, as per the `pom.xml` details. This foundational information allows me to proceed. Next, I'll formulate an action plan, anticipating user confirmation before advancing.
|
||||
|
||||
|
||||
**Developing the Java Code**
|
||||
|
||||
I'm now immersed in the coding phase, generating the `ExportLayoutToPdf.java` file. The logic is taking shape: importing required libraries, incorporating a `main` method, and parsing command-line arguments for the input CAD file. I'm planning to retrieve and display available layouts to prompt user selection. The next steps involve validating input, configuring `CadRasterizationOptions` with the selected layout and PDF generation parameters.
|
||||
|
||||
|
||||
**Planning the Implementation**
|
||||
|
||||
I've now fully formulated the implementation plan. I'll begin by creating `ExportLayoutToPdf.java` and then implement the core logic. This includes importing necessary libraries, crafting a `main` method, handling command-line arguments, loading the CAD file, retrieving and displaying layouts, prompting user input, and validating the chosen layout. I'll use `CadRasterizationOptions` and `PdfOptions` for configuration and handle error scenarios, including file not found or invalid layout selection. I am ready to start coding, pending your feedback on the proposed approach.
|
||||
|
||||
|
||||
**Outlining the Program**
|
||||
|
||||
I've reviewed the requirements and formulated a detailed plan. The core logic is clear: receive a DWG/DXF file, list available layouts, prompt for user selection, and export the chosen layout to PDF. I'll start by creating `ExportLayoutToPdf.java` and coding the steps, starting with input handling and layout retrieval. Your affirmation will trigger file creation and initial coding.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我已经分析了你的需求。我的计划如下:
|
||||
|
||||
1. 在 `02_Aspose_CAD_Java/java/src/main/java/` 目录下创建一个新的 Java 文件 `ExportLayoutToPdf.java`。
|
||||
2. 在该文件中编写代码,实现以下功能:
|
||||
* 程序启动后,要求用户输入一个 DWG 或 DXF 文件的路径。
|
||||
* 加载该文件并列出其中所有的布局。
|
||||
* 提示用户选择一个要导出的布局。
|
||||
* 将选定的布局导出为 PDF 文件,并保存在与输入文件相同的目录下。
|
||||
|
||||
这个方案是否可行?如果可以,我将开始编写代码。
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [-] 在 `02_Aspose_CAD_Java/java/src/main/java/` 目录下创建 `ExportLayoutToPdf.java` 文件。
|
||||
- [ ] 在 `ExportLayoutToPdf.java` 中实现加载 DWG/DXF、列出布局、请求用户选择并导出为 PDF 的逻辑。
|
||||
- [ ] 指导用户如何编译和运行新的 Java 程序。
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-10 13:06Z)**_
|
||||
|
||||
文件路径在 C:\Users\83500\久翌\CAD编辑同步excel\测试文件区\pure
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Beginning the Implementation**
|
||||
|
||||
I've received the go-ahead and am now initiating the coding phase. First up, I'm creating `ExportLayoutToPdf.java` in the designated directory. This sets the foundation for exporting the CAD layout.
|
||||
|
||||
|
||||
**File Creation Commences**
|
||||
|
||||
I'm now focused on the coding phase, starting with creating `ExportLayoutToPdf.java`. I will handle command-line arguments, load the CAD file using Aspose.CAD, then present the user with a list of layouts. This'll involve selecting the layout, configuring PDF options, and finally saving the output. I'll also provide compile/run instructions using Maven. Finally, I'll check the example directory the user provided to prepare for their instructions.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我将开始在 `02_Aspose_CAD_Java/java/src/main/java/` 目录下创建 `ExportLayoutToPdf.java` 文件,并编写相应的代码。
|
||||
|
||||
根据您的指示,我将默认使用 `C:\Users\83500\久翌\CAD编辑同步excel\测试文件区\pure` 目录下的文件进行操作。为了方便您测试,我先列出该目录下的文件。
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
ls C:\Users\83500\久翌\CAD编辑同步excel\测试文件区\pure
|
||||
```
|
||||
|
||||
```
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区> ^C
|
||||
PS C:\Users\83500\久翌\CAD编辑同步excel\测试文件区>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
6004
.specstory/history/2025-09-11_03-16Z-实现aposecad功能的步骤.md
Normal file
6004
.specstory/history/2025-09-11_03-16Z-实现aposecad功能的步骤.md
Normal file
File diff suppressed because it is too large
Load Diff
6848
.specstory/history/2025-09-11_04-12Z-查找指定坐标打印pdf的示例.md
Normal file
6848
.specstory/history/2025-09-11_04-12Z-查找指定坐标打印pdf的示例.md
Normal file
File diff suppressed because it is too large
Load Diff
464
.specstory/history/2025-09-11_07-06Z-使用模板写入dxf文件数据.md
Normal file
464
.specstory/history/2025-09-11_07-06Z-使用模板写入dxf文件数据.md
Normal file
@ -0,0 +1,464 @@
|
||||
<!-- Generated by SpecStory -->
|
||||
|
||||
# 使用模板写入DXF文件数据 (2025-09-11 07:06Z)
|
||||
|
||||
_**User (2025-09-11 06:45Z)**_
|
||||
|
||||
使用drawing功能,写入到 "C:\Users\83500\久翌\CAD编辑同步excel\测试文件区\04_Test_Files\塔器.dxf"的 布局1 的 500 600
|
||||
数据和模板:
|
||||
C:\Users\83500\久翌\CAD编辑同步excel\测试文件区\03_Python_OpenSource_DXF\模板\一级料表模板
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Defining the DXF Table**
|
||||
|
||||
I'm currently focusing on drawing a table within a DXF file. I've identified the target file and layout. Now, I need to figure out how to represent the table data – its structure, cell contents, and positioning – within the DXF format. Coordinates are being considered.
|
||||
|
||||
|
||||
**Locating Relevant Files**
|
||||
|
||||
I'm now digging into the "一级料表模板" directory to determine which files serve as the header and column templates, along with the data JSON. I'm also assessing if "布局1" is compatible with the `draw_table_from_template.py` script, given its focus on the model. The relative path is now understood, which simplifies file referencing.
|
||||
|
||||
|
||||
**Examining File Contents**
|
||||
|
||||
I'm now delving into the template directory files to identify the header template, column template, and data JSON files. I've also noted the script's reliance on model space, so I must determine how to handle the specified layout "布局1". I plan to list the files to proceed.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我将使用 `draw_table_from_template.py` 脚本将表格数据写入到您指定的 DXF 文件中。
|
||||
|
||||
首先,我需要确认模板文件夹中的具体文件名,以便正确调用脚本。我将列出 `03_Python_OpenSource_DXF\模板\一级料表模板` 目录下的文件。
|
||||
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary>Listed directory undefined • **0** results</summary>
|
||||
|
||||
No results found
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Defining Template Structure**
|
||||
|
||||
I'm currently examining the structure of the template directory. I've identified several JSON files within `03_Python_OpenSource_ DXF\模板\一级料表模板`, specifically those for columns, drawing data, and headers. These files seem to define the format of the data required by a function, which is promising.
|
||||
|
||||
|
||||
**Confirming File Correspondence**
|
||||
|
||||
I've confirmed that the JSON files perfectly align with the inputs of `draw_table_from_template.py`. Specifically, `header_template.json`, `columns_template.json`, and `drawing1_data.json` directly correspond to the header, column, and data arguments respectively. Now, I am investigating `draw_table_from_template.py` and layout support.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Okay, I see the `draw_table_from_template.py` script requires `header_template.json`, `columns_template.json`, and `drawing1_data.json`, all of which are present. The user wants to draw in "布局1", so I'll check if the script supports layouts since the documentation example only mentions modelspace.
|
||||
|
||||
---
|
||||
|
||||
Read file: undefined
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Assessing the Script's Limitations**
|
||||
|
||||
I've just analyzed `draw_table_from_template.py` and confirmed its restriction to the modelspace. The script currently lacks functionality for layout selection. My focus has now shifted to understanding the implications of this limitation and strategizing a method for layout integration.
|
||||
|
||||
|
||||
**Formulating the Strategy**
|
||||
|
||||
I've identified the need to add a `--layout` argument to the script to enable layout selection. My strategy includes adding a command-line argument to the existing script. If a layout name is supplied, the script will fetch the layout; otherwise, it defaults to modelspace. This approach maintains backward compatibility. I'm now preparing to implement these changes.
|
||||
|
||||
|
||||
**Devising a Solution**
|
||||
|
||||
I've pinpointed the key limitation of `draw_table_from_template.py`: its exclusive focus on modelspace. My next step is to integrate layout selection. To achieve this, I'll implement a `--layout` argument. The script will then select the appropriate space, maintaining modelspace as the default. Now, I'm drafting the implementation strategy, starting with adding the plan.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我将按您的要求执行操作。
|
||||
|
||||
首先,我分析了您提供的需求和现有文件。`draw_table_from_template.py` 脚本目前只能在模型的“模型空间”中绘图,但您的要求是绘制到 "布局1" 中。因此,我需要先对该脚本进行修改,增加指定布局的功能。
|
||||
|
||||
这是我的行动计划:
|
||||
|
||||
1. **修改 `draw_table_from_template.py` 脚本**
|
||||
* 添加一个新的命令行参数 `--layout`,用于接收布局名称。
|
||||
* 更新代码逻辑:如果用户提供了 `--layout` 参数,程序将尝试获取并使用指定的布局;如果未提供,则默认使用模型空间,以保证旧功能不受影响。
|
||||
2. **执行修改后的脚本**
|
||||
* 使用您提供的路径、坐标和模板文件,执行脚本,将表格绘制到 `塔器.dxf` 文件的 `布局1` 中。
|
||||
|
||||
我现在开始执行第一步,修改脚本。
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [-] Modify `draw_table_from_template.py` to support specifying a layout.
|
||||
- [ ] Run the modified script with user-provided parameters.
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Refining Initial Implementation**
|
||||
|
||||
I've begun implementing the `--layout` argument within `draw_table_from_template.py`. Currently, I'm focused on parsing the argument and handling potential errors. The plan is to attempt loading the specified layout and exit gracefully if the layout is missing.
|
||||
|
||||
|
||||
**Integrating Argument Parsing**
|
||||
|
||||
I've successfully added the `--layout` argument using `argparse`. Now, I'm focused on implementing the error handling. Specifically, I'm incorporating a `try-except` block to catch `KeyError` if the specified layout is not found in the DXF document and printing helpful error messages, along with available layouts.
|
||||
|
||||
|
||||
**Initiating Code Modification**
|
||||
|
||||
I'm now actively working on modifying `draw_table_from_template.py`. I've outlined the `argparse` addition for the `--layout` argument and how to handle it in the `main` function. I'm implementing the code now, specifically integrating the argument parsing and layout selection, including the necessary error handling for missing layouts. I'll be replacing `msp = doc.modelspace()` with the new layout logic, and I've considered the case of a new DXF.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Okay, I am starting the first task, which is to modify `draw_table_from_template.py`.
|
||||
|
||||
I will add a `--layout` argument. If a layout is specified, I will attempt to retrieve it. If the layout does not exist, I will print an error message and exit. If no layout is specified, I will use the modelspace.
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: 03_Python_OpenSource_DXF/draw_table_from_template.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 1, lines removed: undefined
|
||||
|
||||
```diff
|
||||
@@ -202,4 +202,5 @@
|
||||
help="Sets the anchor point of the table for the insertion coordinates (--x, --y)."
|
||||
)
|
||||
+ parser.add_argument("--layout", type=str, default=None, help="The name of the layout to draw on. Defaults to modelspace.")
|
||||
args = parser.parse_args()
|
||||
|
||||
```
|
||||
|
||||
**Chunk 2**
|
||||
Lines added: 12, lines removed: 1
|
||||
|
||||
```diff
|
||||
@@ -218,10 +219,21 @@
|
||||
if os.path.exists(args.source_dxf):
|
||||
doc = ezdxf.readfile(args.source_dxf)
|
||||
- msp = doc.modelspace()
|
||||
print(f"Loaded source DXF file: {args.source_dxf}")
|
||||
else:
|
||||
print(f"Source file not found, creating a new DXF document.")
|
||||
doc = ezdxf.new()
|
||||
+
|
||||
+ if args.layout:
|
||||
+ try:
|
||||
+ msp = doc.layouts.get(args.layout)
|
||||
+ print(f"Using layout: {args.layout}")
|
||||
+ except KeyError:
|
||||
+ print(f"Error: Layout '{args.layout}' not found in the document.")
|
||||
+ print("Available layouts:", ", ".join(l.name for l in doc.layouts))
|
||||
+ return
|
||||
+ else:
|
||||
msp = doc.modelspace()
|
||||
+ print("Using modelspace.")
|
||||
+
|
||||
except IOError:
|
||||
print(f"Could not read source DXF file: {args.source_dxf}. Creating a new document.")
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Refining The Code**
|
||||
|
||||
I've been tidying up the code, focusing on improving readability and organization. The edits I made initially were a bit rough around the edges, so I'm working on refining those changes and streamlining the structure of the code block. I want it to be easier to understand and maintain.
|
||||
|
||||
|
||||
**Code Clarity Improvement**
|
||||
|
||||
I'm currently focused on refining the "Load DXF" section of the code, aiming for a cleaner and more organized structure. The initial edits, while functional, could be improved for readability, specifically in the error handling and file loading logic. I'm now integrating these changes and re-evaluating how to best handle potential issues.
|
||||
|
||||
|
||||
**Improving the Layout Logic**
|
||||
|
||||
I've just completed a review of the layout handling code. The new implementation is more robust, using `doc.layouts.has_layout()` and `doc.layouts.names()` to validate the layout selection, which is a significant improvement over the original approach. This helps in identifying and communicating errors.
|
||||
|
||||
|
||||
**Evaluating the Changes**
|
||||
|
||||
I've revisited the "Load DXF" section. I was aiming for more clarity, and it seems I was overthinking things initially. The `doc.layouts.has_layout()` approach is a good check. Using `try...except` with `doc.layouts.get()` is the more "pythonic" route for handling the layout selection and I have incorporated this approach.
|
||||
|
||||
|
||||
**Revisiting and Correcting Edits**
|
||||
|
||||
I've just corrected a bug in the previous edits; I had inadvertently moved the `args = parser.parse_args()` line. Also, I'm reviewing my approach, and I believe using `try...except` with `doc.layouts.get()` is the most appropriate way for handling layout selection. I'm going to integrate these improvements.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Okay, I see the previous edit introduced a bug by misplacing `args = parser.parse_args()`. I will correct this now by applying a cleaned-up version of the logic.
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: 03_Python_OpenSource_DXF/draw_table_from_template.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 2, lines removed: undefined
|
||||
|
||||
```diff
|
||||
@@ -216,4 +216,6 @@
|
||||
|
||||
# --- Load DXF ---
|
||||
+ msp = None
|
||||
+ doc = None
|
||||
try:
|
||||
if os.path.exists(args.source_dxf):
|
||||
```
|
||||
|
||||
**Chunk 2**
|
||||
Lines added: 1, lines removed: 1
|
||||
|
||||
```diff
|
||||
@@ -223,5 +225,5 @@
|
||||
print(f"Source file not found, creating a new DXF document.")
|
||||
doc = ezdxf.new()
|
||||
-
|
||||
+
|
||||
if args.layout:
|
||||
try:
|
||||
```
|
||||
|
||||
**Chunk 3**
|
||||
Lines added: 1, lines removed: 1
|
||||
|
||||
```diff
|
||||
@@ -230,5 +232,5 @@
|
||||
except KeyError:
|
||||
print(f"Error: Layout '{args.layout}' not found in the document.")
|
||||
- print("Available layouts:", ", ".join(l.name for l in doc.layouts))
|
||||
+ print("Available layouts:", ", ".join(doc.layouts.names()))
|
||||
return
|
||||
else:
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Troubleshooting Edit Failures**
|
||||
|
||||
I'm still struggling with the edit. It appears the tool I'm using is having issues applying changes properly. I will try again using a more comprehensive code block to give the tool additional context.
|
||||
|
||||
|
||||
**Iterating Edit Attempts**
|
||||
|
||||
The prior attempt failed. The edit tool struggles with the task at hand. The goal is to replace the `main` function's logic. I've now provided the desired `main()` function in a complete code block, hoping this comprehensive approach yields better results. I'm aiming for a clean implementation.
|
||||
|
||||
|
||||
**Refining the Implementation**
|
||||
|
||||
The previous attempt failed again, and the issue persists. The editing tool's struggle continues, failing to accurately apply the changes. This time, I'm including the complete `main()` function in my code block to give the tool more context. I'm focused on a clean start for the `main` function.
|
||||
|
||||
|
||||
**Persisting with Refinements**
|
||||
|
||||
The edit tool continues to be problematic. It's not properly integrating the changes. I'm going to try again with a more extensive code block that provides the complete `main()` function. My focus remains on a clean implementation of the argument parsing and DXF loading.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: 03_Python_OpenSource_DXF/draw_table_from_template.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 1, lines removed: 1
|
||||
|
||||
```diff
|
||||
@@ -216,6 +216,6 @@
|
||||
|
||||
# --- Load DXF ---
|
||||
+ doc = None
|
||||
msp = None
|
||||
- doc = None
|
||||
try:
|
||||
if os.path.exists(args.source_dxf):
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Analyzing for Edits**
|
||||
|
||||
I've decided to overhaul the existing edits. The current version isn't satisfactory, so I'm shifting to a more hands-on approach. I plan to read through the file carefully, identifying the areas needing correction, and then craft the edits myself.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Read file: undefined
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Running the Script Now**
|
||||
|
||||
I've confirmed that `draw_table_from_template.py` appears to be functionally sound. The `--layout` argument has been incorporated, along with the necessary logic. My immediate next step is to execute the script using the user-supplied parameters.
|
||||
|
||||
|
||||
**Testing the Execution**
|
||||
|
||||
I'm now ready to run the script with the user's provided parameters. I've assembled the command line arguments, including the source DXF, template files, data, output location, coordinates, and the layout specification. I'll monitor the output closely for any errors or unexpected behavior during the run. I'm particularly interested in how the `--layout 布局 1` argument is handled.
|
||||
|
||||
|
||||
**Initiating the Run**
|
||||
|
||||
I'm now preparing the command line invocation of the script with the detailed parameters. I've carefully constructed the call, including paths for DXF, templates, data, output, coordinates and crucially, the layout specification. I'll execute it with the full path to the python executable within the virtual environment, as instructed. I'll be watching closely for the `--layout`'s proper integration.
|
||||
|
||||
|
||||
**Preparing for Execution**
|
||||
|
||||
I've meticulously constructed the command-line call, focusing on accurate pathing, especially for the python executable and the script itself. I'm also ensuring the proper handling of the `--layout` argument. The next step is to execute the command within the terminal environment. I'll meticulously examine the output, looking for any errors.
|
||||
|
||||
|
||||
**Final Execution Preparation**
|
||||
|
||||
I've carefully constructed the command, incorporating relative paths for brevity. The key aspects include the script's location, the Python interpreter's location within the virtual environment, and the full specification of input/output files and parameters. I'm preparing for the execution using PowerShell, ensuring proper quoting. I am optimistic about a successful outcome.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我已经修改了 `draw_table_from_template.py` 脚本,现在它支持通过 `--layout` 参数指定图纸的布局。
|
||||
|
||||
接下来,我将执行此脚本,将您指定的表格数据和模板绘制到 `塔器.dxf` 文件的“布局1”中,坐标为 (500, 600)。输出文件将保存为 `塔器_with_table.dxf`。
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [x] Modify `draw_table_from_template.py` to support specifying a layout.
|
||||
- [-] Run the modified script with user-provided parameters.
|
||||
|
||||
---
|
||||
|
||||
```bash
|
||||
& ".\\03_Python_OpenSource_DXF\\venv\\Scripts\\python.exe" ".\\03_Python_OpenSource_DXF\\draw_table_from_template.py" ".\\04_Test_Files\\塔器.dxf" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\header_template.json" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\columns_template.json" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\drawing1_data.json" ".\\04_Test_Files\\塔器_with_table.dxf" --x 500 --y 600 --layout "布局1"
|
||||
```
|
||||
|
||||
```
|
||||
"布局1"
|
||||
Loaded source DXF file: .\\04_Test_Files\\塔器.dxf
|
||||
Using layout: 布局1
|
||||
Drawing table with anchor 'bottom-left' at (500.0, 600.0)...
|
||||
Calculated bottom-left start position: (500.00, 600.00)
|
||||
Successfully saved new table to: .\\04_Test_Files\\塔器_with_table.dxf
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Assessing Script Execution**
|
||||
|
||||
The script performed as expected, successfully loading the DXF file "塔器.dxf" and utilizing the "布局1" layout. The table was drawn correctly at the designated location, and the output was saved as planned.
|
||||
|
||||
|
||||
**Verifying Script Completion**
|
||||
|
||||
I've confirmed successful script execution. The DXF file loaded, layout "布局1" was used, the table was drawn as intended, and the output, including the table, was correctly saved. The output file is located at `.\04_Test_Files\塔器 _with_table.dxf`.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
## Todo List
|
||||
|
||||
- [x] Modify `draw_table_from_template.py` to support specifying a layout.
|
||||
- [x] Run the modified script with user-provided parameters.
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Evaluating the Execution**
|
||||
|
||||
I've confirmed the script ran without a hitch. The DXF file was read, the specified layout was used. Furthermore, the start position was correctly calculated, leading to successful table drawing. The output has been saved, as expected.
|
||||
|
||||
|
||||
**Concluding the Process**
|
||||
|
||||
The system performed as expected, precisely following the defined steps. I confirmed the loading of the specified DXF, the use of the correct layout, and the accurate drawing with saved output. Success! The table has been drawn, and the results are saved.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,我已经成功执行了您的请求。
|
||||
|
||||
具体操作如下:
|
||||
|
||||
1. **修改了绘图脚本**:我对 `03_Python_OpenSource_DXF/draw_table_from_template.py` 脚本进行了修改,添加了对CAD“布局(Layout)”的支持。现在可以通过 `--layout` 参数指定图纸的布局名称。
|
||||
2. **执行绘图命令**:使用修改后的脚本,我将您指定的“一级料表模板”和数据,在 `04_Test_Files\塔器.dxf` 文件的 `布局1` 中,于坐标 `(500, 600)` 处插入了表格。
|
||||
3. **生成了新文件**:结果已保存到一个新文件中,路径为:`04_Test_Files\塔器_with_table.dxf`。
|
||||
|
||||
您可以检查生成的文件,看看是否符合您的预期。
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-09-11 06:45Z)**_
|
||||
|
||||
直接把命令发我,我再执行一次
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>**Repeating the Command**
|
||||
|
||||
\n\n
|
||||
|
||||
I've zeroed in on providing the user with the command they need. I'll present the exact string I executed earlier, allowing them to replicate the action. My primary concern is ensuring they have the correct command for direct execution.
|
||||
|
||||
|
||||
**Confirming the Action**
|
||||
|
||||
\n\n
|
||||
|
||||
My current thinking confirms the need to reiterate the previous action. Therefore, I'm directly outputting the exact command executed previously. I have formatted it within a code block as requested. This will enable the user to easily rerun the command for identical results.
|
||||
|
||||
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
好的,这是您需要执行的命令:
|
||||
|
||||
```shell
|
||||
& ".\\03_Python_OpenSource_DXF\\venv\\Scripts\\python.exe" ".\\03_Python_OpenSource_DXF\\draw_table_from_template.py" ".\\04_Test_Files\\塔器.dxf" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\header_template.json" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\columns_template.json" ".\\03_Python_OpenSource_DXF\\模板\\一级料表模板\\drawing1_data.json" ".\\04_Test_Files\\塔器_with_table.dxf" --x 500 --y 600 --layout "布局1"
|
||||
```
|
||||
|
||||
您可以在 `C:\Users\83500\久翌\CAD编辑同步excel\测试文件区` 这个目录下直接运行它。
|
||||
|
||||
---
|
||||
|
||||
94
01_Aspose_CAD_Python/print_cad_to_pdf.py
Normal file
94
01_Aspose_CAD_Python/print_cad_to_pdf.py
Normal file
@ -0,0 +1,94 @@
|
||||
import aspose.cad as cad
|
||||
import os
|
||||
import argparse
|
||||
|
||||
def find_shx_files(fonts_dir):
|
||||
"""Finds all .shx files in a directory."""
|
||||
shx_files = []
|
||||
for root, _, files in os.walk(fonts_dir):
|
||||
for file in files:
|
||||
if file.lower().endswith('.shx'):
|
||||
shx_files.append(os.path.join(root, file))
|
||||
return shx_files
|
||||
|
||||
def print_cad_to_pdf(input_dwg, output_pdf, fonts_dir):
|
||||
"""
|
||||
Converts a CAD drawing (DWG) to a PDF file, using specified custom fonts.
|
||||
|
||||
:param input_dwg: Path to the input DWG file.
|
||||
:param output_pdf: Path to save the output PDF file.
|
||||
:param fonts_dir: Directory containing custom SHX fonts.
|
||||
"""
|
||||
print(f"Input DWG: {input_dwg}")
|
||||
print(f"Output PDF: {output_pdf}")
|
||||
print(f"Fonts directory: {fonts_dir}")
|
||||
|
||||
# Load the DWG file
|
||||
try:
|
||||
image = cad.Image.load(input_dwg)
|
||||
print("Successfully loaded DWG file.")
|
||||
except Exception as e:
|
||||
print(f"Error loading DWG file: {e}")
|
||||
return
|
||||
|
||||
# Create an instance of CadRasterizationOptions
|
||||
rasterization_options = cad.imageoptions.CadRasterizationOptions()
|
||||
|
||||
# Set page size to match drawing size and disable scaling to preserve coordinates
|
||||
rasterization_options.no_scaling = True
|
||||
rasterization_options.page_width = float(image.width)
|
||||
rasterization_options.page_height = float(image.height)
|
||||
|
||||
rasterization_options.layouts = ["Model"]
|
||||
|
||||
# Set to color mode. 1 corresponds to USE_OBJECT_COLOR.
|
||||
# We use the integer value directly as the enum type is not exposed in a public module.
|
||||
rasterization_options.draw_type = 1
|
||||
|
||||
# Find and set SHX fonts
|
||||
shx_font_files = find_shx_files(fonts_dir)
|
||||
if shx_font_files:
|
||||
print(f"Found {len(shx_font_files)} SHX font files.")
|
||||
rasterization_options.shx_fonts = shx_font_files
|
||||
else:
|
||||
print("Warning: No SHX font files found in the specified directory.")
|
||||
|
||||
# Create an instance of PdfOptions
|
||||
pdf_options = cad.imageoptions.PdfOptions()
|
||||
pdf_options.vector_rasterization_options = rasterization_options
|
||||
|
||||
# Save the PDF
|
||||
try:
|
||||
image.save(output_pdf, pdf_options)
|
||||
print(f"Successfully converted to PDF: {output_pdf}")
|
||||
except Exception as e:
|
||||
print(f"Error saving PDF file: {e}")
|
||||
finally:
|
||||
# Dispose image - The python wrapper seems to handle this automatically.
|
||||
# image.dispose()
|
||||
print("Image resources are managed automatically.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Convert CAD drawing to PDF with custom fonts.")
|
||||
parser.add_argument("input_file", help="Path to the input CAD file (e.g., DWG, DXF).")
|
||||
args = parser.parse_args()
|
||||
|
||||
input_file_path = args.input_file
|
||||
|
||||
# Define other paths
|
||||
workspace_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
fonts_folder_path = os.path.join(workspace_root, '03_Python_OpenSource_DXF', 'fonts')
|
||||
|
||||
# Generate output file path based on input file name
|
||||
base_name = os.path.basename(input_file_path)
|
||||
file_name, _ = os.path.splitext(base_name)
|
||||
output_file_path = os.path.join(os.path.dirname(__file__), f'{file_name}_output.pdf')
|
||||
|
||||
|
||||
# Check if files/folders exist
|
||||
if not os.path.exists(input_file_path):
|
||||
print(f"Error: Input file not found at {input_file_path}")
|
||||
elif not os.path.isdir(fonts_folder_path):
|
||||
print(f"Error: Fonts directory not found at {fonts_folder_path}")
|
||||
else:
|
||||
print_cad_to_pdf(input_file_path, output_file_path, fonts_folder_path)
|
||||
107
01_Aspose_CAD_Python/step1_find_block_coordinates.py
Normal file
107
01_Aspose_CAD_Python/step1_find_block_coordinates.py
Normal file
@ -0,0 +1,107 @@
|
||||
import aspose.cad as cad
|
||||
import os
|
||||
from aspose.cad.fileformats.cad import CadImage
|
||||
from aspose.cad.fileformats.cad.cadobjects import CadInsertObject
|
||||
|
||||
def set_license():
|
||||
"""
|
||||
Tries to find and apply an Aspose.CAD license.
|
||||
"""
|
||||
try:
|
||||
from aspose.cad import License
|
||||
license = License()
|
||||
# The SetLicense method expects the name of the license file.
|
||||
# Common names are Aspose.CAD.lic or Aspose.Total.lic.
|
||||
# It should be placed in the folder with the script, or you can specify a full path.
|
||||
# As we don't have the license file, this will likely fail silently
|
||||
# or work if the user has placed it correctly.
|
||||
license.set_license("Aspose.CAD.lic")
|
||||
print("License set successfully (if found).")
|
||||
except Exception as e:
|
||||
print(f"License not set or error: {e}. Running in evaluation mode.")
|
||||
|
||||
def find_block_coordinates(dwg_path, printable_blocks):
|
||||
"""
|
||||
Finds specified blocks in a DWG file and returns their coordinates and layout.
|
||||
|
||||
:param dwg_path: Path to the DWG file.
|
||||
:param printable_blocks: A dictionary of block names to find.
|
||||
:return: A list of dictionaries, each containing block info.
|
||||
"""
|
||||
if not os.path.exists(dwg_path):
|
||||
print(f"Error: File not found at {dwg_path}")
|
||||
return []
|
||||
|
||||
found_blocks = []
|
||||
|
||||
with cad.Image.load(dwg_path) as image:
|
||||
# Based on the file `extract_lines_correct.py`, the correct object is returned directly.
|
||||
# The issue might be specific to the environment or the DWG file itself.
|
||||
# Let's use the exact loading method from the working example.
|
||||
cad_image = cad.fileformats.cad.CadImage.load(dwg_path)
|
||||
|
||||
try:
|
||||
print(f"Successfully loaded image. Type: {type(cad_image).__name__}")
|
||||
|
||||
# A DWG's paper space layouts are stored in blocks with names like "*Paper_Space"
|
||||
# Model space is in "*Model_Space"
|
||||
# We iterate through these special blocks to find the block insertions.
|
||||
if hasattr(cad_image, 'blocks'):
|
||||
print("Iterating through cad_image.blocks...")
|
||||
for block in cad_image.blocks:
|
||||
# Layout blocks often start with '*'
|
||||
if block.name.startswith('*'):
|
||||
layout_name = block.name
|
||||
for entity in block.entities:
|
||||
if isinstance(entity, CadInsertObject):
|
||||
block_name = entity.name
|
||||
if block_name in printable_blocks:
|
||||
min_point = entity.min_point
|
||||
max_point = entity.max_point
|
||||
|
||||
block_info = {
|
||||
"block_name": block_name,
|
||||
"layout": layout_name,
|
||||
"min_point": (min_point.x, min_point.y),
|
||||
"max_point": (max_point.x, max_point.y)
|
||||
}
|
||||
found_blocks.append(block_info)
|
||||
print(f" Found block '{block_name}' in layout/block '{layout_name}'")
|
||||
else:
|
||||
print("Attribute 'blocks' not found on CadImage object.")
|
||||
finally:
|
||||
# Manually dispose of the image if CadImage.load was used
|
||||
cad_image.dispose()
|
||||
|
||||
return found_blocks
|
||||
|
||||
if __name__ == "__main__":
|
||||
# It's a good practice to set the license at the start of the application
|
||||
set_license()
|
||||
|
||||
# Define the blocks we are interested in, based on 思路.MD
|
||||
PRINTABLE_BLOCKS = {
|
||||
"A$C2EB80DB8": ("A1", "portrait"),
|
||||
"A$C1CC9093B": ("A1", "landscape"),
|
||||
"A$C6D564680": ("A2", "portrait"),
|
||||
"新块": ("A3", "landscape"),
|
||||
"新块1": ("A4", "portrait"),
|
||||
}
|
||||
|
||||
# Path to the test DWG file
|
||||
dwg_file_path = os.path.join("04_Test_Files", "图签测试.dwg")
|
||||
|
||||
print(f"Loading DWG file: {dwg_file_path}")
|
||||
|
||||
blocks_data = find_block_coordinates(dwg_file_path, PRINTABLE_BLOCKS)
|
||||
|
||||
print("\n--- Found Blocks Summary ---")
|
||||
if blocks_data:
|
||||
for block in blocks_data:
|
||||
print(f"Block: {block['block_name']}")
|
||||
print(f" Layout: {block['layout']}")
|
||||
print(f" Min Point: {block['min_point']}")
|
||||
print(f" Max Point: {block['max_point']}")
|
||||
print("-" * 20)
|
||||
else:
|
||||
print("No specified blocks were found in the DWG file.")
|
||||
BIN
01_Aspose_CAD_Python/图签测试_output.pdf
Normal file
BIN
01_Aspose_CAD_Python/图签测试_output.pdf
Normal file
Binary file not shown.
1
02_Aspose_CAD_Java/Aspose.CAD-for-Java-master/.gitignore
vendored
Normal file
1
02_Aspose_CAD_Java/Aspose.CAD-for-Java-master/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/Examples/target/
|
||||
@ -0,0 +1,18 @@
|
||||
## Aspose.CAD for Java Examples
|
||||
|
||||
This repository contains Java Example Project for [Aspose.CAD for Java](https://products.aspose.com/cad/java) which will help you learn Aspose.CAD for Java and write your own applications.
|
||||
|
||||
<p align="center">
|
||||
<a title="Download Examples ZIP" href="https://github.com/aspose-cad/Aspose.CAD-for-Java/archive/master.zip">
|
||||
<img src="https://raw.github.com/AsposeExamples/java-examples-dashboard/master/images/downloadZip-Button-Large.png" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
## How to Run the Examples?
|
||||
|
||||
After you have downloaded the ZIP file from the [Download ZIP](https://github.com/aspose-cad/Aspose.CAD-for-Java/archive/master.zip) link above, please check the following link with detailed instructions on how to run these Source Code Examples.
|
||||
|
||||
[How to Run the Examples](https://docs.aspose.com/display/cadjava/How+to+Run+the+Examples)
|
||||
|
||||
Please feel free to contact us if you have any question, issue or suggestion.
|
||||
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.aspose</groupId>
|
||||
<artifactId>cad-java-examples</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<properties>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.target>1.7</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aspose</groupId>
|
||||
<artifactId>aspose-cad</artifactId>
|
||||
<version>20.8</version>
|
||||
<classifier>javadoc</classifier>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aspose</groupId>
|
||||
<artifactId>aspose-cad</artifactId>
|
||||
<version>20.9</version>
|
||||
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>AsposeJavaAPI</id>
|
||||
<name>Aspose Java API</name>
|
||||
<url>https://repository.aspose.com/repo/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
||||
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package IGESDrawings;
|
||||
|
||||
import PLTDrawings.*;
|
||||
import com.aspose.cad.examples.DWGDrawings.*;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.CADConversion.PenSupportInExport;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.awt.Color;
|
||||
|
||||
|
||||
public class ExportIGEStoPDF {
|
||||
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:ExportIGEStoPDF
|
||||
String dataDir = Utils.getDataDir(ExportIGEStoPDF.class) + "IGESDrawings/";
|
||||
String PLTPathToFile = dataDir + "figa2.igs";
|
||||
Image image = Image.load(PLTPathToFile);
|
||||
|
||||
//Setting PDF Options
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
cadRasterizationOptions.setPageHeight(1000);
|
||||
cadRasterizationOptions.setPageWidth(1000);
|
||||
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
//Saving to PDF
|
||||
image.save(dataDir+"figa2.pdf", pdfOptions);
|
||||
|
||||
//ExEnd:ExportIGEStoPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package PLTDrawings;
|
||||
|
||||
import com.aspose.cad.examples.DWGDrawings.*;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.CADConversion.PenSupportInExport;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
|
||||
public class ExportPLTtoImage {
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
String dataDir = Utils.getDataDir(ExportPLTtoImage.class) + "PLTDrawings\\";
|
||||
|
||||
//ExStart:ExportPLTtoImage
|
||||
|
||||
String PLTPathToFile = dataDir + "50states.plt";
|
||||
Image image = Image.load(PLTPathToFile);
|
||||
|
||||
//Setting PDF Options
|
||||
ImageOptionsBase imageOptions = new JpegOptions();
|
||||
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
cadRasterizationOptions.setPageHeight(1600);
|
||||
cadRasterizationOptions.setPageWidth(1600);
|
||||
cadRasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlack());
|
||||
imageOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
//Saving to Image
|
||||
image.save(dataDir+"50states.jpeg", imageOptions);
|
||||
|
||||
//ExEnd:ExportPLTtoImage
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package PLTDrawings;
|
||||
|
||||
import com.aspose.cad.examples.DWGDrawings.*;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.CADConversion.PenSupportInExport;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.awt.Color;
|
||||
|
||||
|
||||
public class ExportPLTtoPDF {
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
//ExStart:ExportPLTtoPDF
|
||||
String dataDir = Utils.getDataDir(ExportPLTtoPDF.class) + "PLTDrawings\\";
|
||||
String PLTPathToFile = dataDir + "50states.plt";
|
||||
Image image = Image.load(PLTPathToFile);
|
||||
|
||||
//Setting PDF Options
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
cadRasterizationOptions.setPageHeight(1600);
|
||||
cadRasterizationOptions.setPageWidth(1600);
|
||||
cadRasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlack());
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
//Saving to PDF
|
||||
image.save(dataDir+"50states.pdf", pdfOptions);
|
||||
|
||||
//ExEnd:ExportPLTtoPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.aspose.cad.examples.ApplyLicense;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class MeteredLicensing
|
||||
{
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:MeteredLicensing
|
||||
|
||||
// Access the setMeteredKey property and pass public and private keys as parameters
|
||||
com.aspose.cad.Metered.setMeteredKey("<valid pablic key>", "<valid private key>");
|
||||
|
||||
// Get consumed qantity value before accessing API
|
||||
BigDecimal quantityOld = com.aspose.cad.Metered.getConsumptionQuantity();
|
||||
System.out.println("Consumption quantity" + quantityOld);
|
||||
|
||||
// DO PROCESSING
|
||||
//com.aspose.cad.fileformats.cad.CadImage image =
|
||||
// (com.aspose.cad.fileformats.cad.CadImage)com.aspose.cad.Image.load("BlockRefDgn.dwg");
|
||||
|
||||
|
||||
// Get consumed qantity value after accessing API
|
||||
BigDecimal quantity = com.aspose.cad.Metered.getConsumptionQuantity();
|
||||
System.out.println("Consumption quantity" + quantity());
|
||||
|
||||
//ExEnd:MeteredLicensing
|
||||
}
|
||||
|
||||
private static String quantity() {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
public class AdjustingCADDrawingSizeUsingUnitType
|
||||
{
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:AdjustingCADDrawingSizeUsingUnitType
|
||||
String dataDir = Utils.getDataDir(AdjustingCADDrawingSizeUsingUnitType.class) + "CADConversion/";
|
||||
// Path to source file
|
||||
String sourceFilePath = dataDir + "sample.dwg";
|
||||
|
||||
// Load a CAD drawing in an instance of Image
|
||||
Image image = Image.load(sourceFilePath);
|
||||
|
||||
|
||||
// Create an instance of BmpOptions class
|
||||
com.aspose.cad.imageoptions.BmpOptions bmpOptions = new com.aspose.cad.imageoptions.BmpOptions();
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
com.aspose.cad.imageoptions.CadRasterizationOptions cadRasterizationOptions =
|
||||
new com.aspose.cad.imageoptions.CadRasterizationOptions();
|
||||
|
||||
bmpOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
// Set the UnitType property
|
||||
cadRasterizationOptions.setUnitType(com.aspose.cad.imageoptions.UnitType.Centimenter);
|
||||
|
||||
// Set the layouts property
|
||||
cadRasterizationOptions.setLayouts( new String[] { "Model" } );
|
||||
|
||||
// Export layout to BMP format
|
||||
String outPath = sourceFilePath + ".bmp";
|
||||
image.save(outPath, bmpOptions);
|
||||
//ExEnd:AdjustingCADDrawingSizeUsingUnitType
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
public class AutoAdjustingCADDrawingSize
|
||||
{
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:AutoAdjustingCADDrawingSize
|
||||
String dataDir = Utils.getDataDir(AutoAdjustingCADDrawingSize.class) + "CADConversion/";
|
||||
// Path to source file
|
||||
String sourceFilePath = dataDir+"sample.dwg";
|
||||
|
||||
// Load a CAD drawing in an instance of Image
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(sourceFilePath);
|
||||
|
||||
// Create an instance of BmpOptions class
|
||||
com.aspose.cad.imageoptions.BmpOptions bmpOptions = new com.aspose.cad.imageoptions.BmpOptions();
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
com.aspose.cad.imageoptions.CadRasterizationOptions cadRasterizationOptions =
|
||||
new com.aspose.cad.imageoptions.CadRasterizationOptions();
|
||||
|
||||
bmpOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
// Set the layouts property
|
||||
cadRasterizationOptions.setLayouts( new String[] { "Model" } );
|
||||
|
||||
// Export layout to BMP format
|
||||
String outPath = sourceFilePath + ".bmp";
|
||||
objImage.save(outPath, bmpOptions);
|
||||
//ExEnds:AutoAdjustingCADDrawingSize
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadLayerTable;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ConvertAllCADLayersToSeparateImages {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ConvertAllCADLayersToSeparateImages.class) + "CADConversion/";
|
||||
//ExStart:ConvertAllCADLayersToSeparateImages
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of CadImage
|
||||
CadImage image = (CadImage) Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
|
||||
// Set image width & height
|
||||
rasterizationOptions.setPageWidth(500);
|
||||
rasterizationOptions.setPageHeight(500);
|
||||
|
||||
// Get the layers in an instance of CadLayersDictionary.
|
||||
// Iterate over the layers
|
||||
for (String layer : image.getLayers().getLayersNames())
|
||||
{
|
||||
// Display layer name for tracking
|
||||
System.out.println("Start with " +layer);
|
||||
|
||||
List<String> stringList = Arrays.asList(layer);
|
||||
// Add the layer name to the CadRasterizationOptions's layer list
|
||||
rasterizationOptions.setLayers(stringList);
|
||||
|
||||
// Create an instance of JpegOptions (or any ImageOptions for raster formats)
|
||||
JpegOptions options = new JpegOptions();
|
||||
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions
|
||||
options.setVectorRasterizationOptions(rasterizationOptions);
|
||||
// Export each layer to JPEG format
|
||||
image.save(dataDir + layer + "_out_.jpg", options);
|
||||
}
|
||||
//ExEnd:ConvertAllCADLayersToSeparateImages
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
public class ConvertCADDrawingToRasterImageFormat {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
String dataDir = Utils.getDataDir(ConvertCADDrawingToRasterImageFormat.class) + "CADConversion/";
|
||||
//ExStart:ConvertCADDrawingToRasterImageFormat
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
// Set page width & height
|
||||
rasterizationOptions.setPageWidth(1200);
|
||||
rasterizationOptions.setPageHeight(1200);
|
||||
|
||||
// Create an instance of PngOptions for the resultant image
|
||||
ImageOptionsBase options = new PngOptions();
|
||||
//Set rasterization options
|
||||
options.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Save resultant image
|
||||
image.save(dataDir + "conic_pyramid_raster_image_out_.png", options);
|
||||
//ExEnd:ConvertCADDrawingToRasterImageFormat
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.DWGDrawings.ExportSpecificDWGLayoutToPDF;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ConvertCADLayerToRasterImageFormat {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//ExStart:ConvertCADLayerToRasterImageFormat
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ConvertCADLayerToRasterImageFormat.class) + "CADConversion/";
|
||||
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of Image
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
// Set image width & height
|
||||
rasterizationOptions.setPageWidth(500);
|
||||
rasterizationOptions.setPageHeight(500);
|
||||
|
||||
|
||||
|
||||
List<String> stringList = new ArrayList<>(Arrays.asList("0"));
|
||||
// Add the layer name to the CadRasterizationOptions's layer list
|
||||
rasterizationOptions.setLayers(stringList);
|
||||
|
||||
// Create an instance of JpegOptions (or any ImageOptions for raster formats)
|
||||
JpegOptions options = new JpegOptions();
|
||||
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions
|
||||
options.setVectorRasterizationOptions(rasterizationOptions);
|
||||
// Export each layer to JPEG format
|
||||
image.save(dataDir + "CADLayersToRasterImageFormats_out_.jpg", options);
|
||||
//ExEnd:ConvertCADLayerToRasterImageFormat
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.tiff.enums.TiffExpectedFormat;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.TiffOptions;
|
||||
|
||||
public class ConvertCADLayoutToRasterImageFormat {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ConvertCADLayoutToRasterImageFormat.class) + "CADConversion/";
|
||||
//ExStart:ConvertCADLayoutToRasterImageFormat
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
|
||||
// Set page width & height
|
||||
rasterizationOptions.setPageWidth(1200);
|
||||
rasterizationOptions.setPageHeight(1200);
|
||||
|
||||
// Specify a list of layout names
|
||||
rasterizationOptions.setLayouts(new String[] {"Model", "Layout1"});
|
||||
|
||||
// Create an instance of TiffOptions for the resultant image
|
||||
ImageOptionsBase options = new TiffOptions(TiffExpectedFormat.Default);
|
||||
|
||||
// Set rasterization options
|
||||
options.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Save resultant image
|
||||
image.save(dataDir + "conic_pyramid_layoutstorasterimage_out_.tiff", options);
|
||||
//ExEnd:ConvertCADLayoutToRasterImageFormat
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class EnableTrackingForCADRenderingProcess {
|
||||
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(EnableTrackingForCADRenderingProcess.class) + "CADConversion/";
|
||||
//ExStart:EnableTrackingForCADRenderingProcess
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
OutputStream stream = new FileOutputStream(dataDir + "conic_pyramid.pdf");
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
cadRasterizationOptions.setPageWidth(800);
|
||||
cadRasterizationOptions.setPageHeight(600);
|
||||
|
||||
image.save(stream, pdfOptions);
|
||||
|
||||
System.out.println("Tracking enabled successfully for CAD rendering process.");
|
||||
//ExEnd:EnableTrackingForCADRenderingProcess
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class IntegrateIGESFormat {
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:IntegrateIGESFormat
|
||||
String dataDir = Utils.getDataDir(IntegrateIGESFormat.class) + "CADConversion/";
|
||||
|
||||
String sourceFilePath = dataDir + "figa2.igs";
|
||||
String outPath = dataDir +"meshes.pdf";
|
||||
|
||||
|
||||
Image igesImage = Image.load(sourceFilePath);
|
||||
|
||||
PdfOptions pdf = new PdfOptions();
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageHeight(1000) ;
|
||||
vectorOptions.setPageWidth(1000);
|
||||
|
||||
pdf.setVectorRasterizationOptions(vectorOptions);
|
||||
|
||||
igesImage.save(outPath, pdf);
|
||||
//ExEnd:IntegrateIGESFormat
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.CadLayoutDictionary;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadLayout;
|
||||
|
||||
|
||||
public class ListLayouts {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:ListLayouts
|
||||
String dataDir = Utils.getDataDir(ListLayouts.class) + "CADConversion/";
|
||||
String sourceFilePath = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(sourceFilePath);
|
||||
|
||||
CadImage cadImage = (CadImage)image;
|
||||
|
||||
CadLayoutDictionary layouts = cadImage.getLayouts();
|
||||
for (CadLayout layout : layouts.getValues())
|
||||
{
|
||||
|
||||
System.out.println("Layout " +layout.getLayoutName());
|
||||
}
|
||||
|
||||
//ExEnd:ListLayouts
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class MeshSupport {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:MeshSupport
|
||||
String dataDir = Utils.getDataDir(MeshSupport.class) + "CADConversion/";
|
||||
|
||||
String sourceFilePath = dataDir +"meshes.dwg";
|
||||
String outPath = dataDir + "meshes.pdf";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(sourceFilePath);
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
rasterizationOptions.setLayouts( new String[] { "Model" });
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
cadImage.save(outPath, pdfOptions);
|
||||
|
||||
//ExEnd:MeshSupport
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.PenOptions;
|
||||
import com.aspose.cad.internal.imaging.LineCap;
|
||||
|
||||
public class PenSupportInExport {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//ExStart:PenSupportInExport
|
||||
String dataDir = Utils.getDataDir(PenSupportInExport.class) + "CADConversion/";
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
CadImage cadImage = ((CadImage)(Image.load(srcFile)));
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(cadImage.getWidth() * 100);
|
||||
rasterizationOptions.setPageHeight(cadImage.getHeight() * 100);
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Here user can change default start cap and end cap of pens when exporting CadImage object to
|
||||
// image. It can be using for all image formats: pdf, png, bmp, gif, jpeg2000, jpeg, psd, tiff, wmf.
|
||||
// If user doesn't use PenOptions, system will use its own default pens (different in defferent places).
|
||||
PenOptions penOts = new PenOptions();
|
||||
penOts.setStartCap(LineCap.Flat);
|
||||
penOts.setEndCap(LineCap.Flat);
|
||||
//rasterizationOptions.setPenOptions(penOts);
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
cadImage.save((dataDir+"9LHATT-A56_generated.pdf"),pdfOptions);
|
||||
|
||||
//ExEnd:PenSupportInExport
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import java.awt.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.acadtable.CadTableEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject;
|
||||
|
||||
public class ReadingDWT {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
//ExStart:ReadingDWT
|
||||
String dataDir = Utils.getDataDir(ReadingDWT.class) + "CADConversion/";
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of CadImage
|
||||
//CadImage cadImage = (CadImage) Image.load(srcFile);
|
||||
com.aspose.cad.fileformats.cad.CadImage objImage =(CadImage) com.aspose.cad.Image.load(srcFile);
|
||||
|
||||
for(Object style : objImage.getStyles())
|
||||
{
|
||||
// Set the font name
|
||||
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Arial");
|
||||
}
|
||||
|
||||
//ExEnd:ReadingDWT
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.tiff.enums.TiffExpectedFormat;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.TiffOptions;
|
||||
|
||||
public class SetBackgroundAndDrawingColor {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SetBackgroundAndDrawingColor.class) + "CADConversion/";
|
||||
//ExStart:SetBackgroundAndDrawingColor
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Image image = Image.load(srcFile);
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBeige());
|
||||
rasterizationOptions.setDrawType(CadDrawTypeMode.UseDrawColor);
|
||||
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlue());
|
||||
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export CAD to PDF
|
||||
objImage.save(dataDir +"result_out_.pdf", pdfOptions);
|
||||
|
||||
// Create an instance of TiffOptions
|
||||
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default);
|
||||
|
||||
// Set the VectorRasterizationOptions property
|
||||
tiffOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export CAD to TIFF
|
||||
objImage.save(dataDir + "result_out_.tiff", tiffOptions);
|
||||
//ExEnd:SetBackgroundAndDrawingColor
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import java.awt.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.tiff.enums.TiffExpectedFormat;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.TiffOptions;
|
||||
|
||||
public class SetCanvasSizeAndMode {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SetCanvasSizeAndMode.class) + "CADConversion/";
|
||||
//ExStart:SetCanvasSizeAndMode
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
rasterizationOptions.setAutomaticLayoutsScaling(true);
|
||||
|
||||
rasterizationOptions.setNoScaling(true);
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export CAD to PDF
|
||||
objImage.save(dataDir +"result_out_.pdf", pdfOptions);
|
||||
|
||||
// Create an instance of TiffOptions
|
||||
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default);
|
||||
|
||||
// Set the VectorRasterizationOptions property
|
||||
tiffOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export CAD to TIFF
|
||||
objImage.save(dataDir + "result_out_.tiff", tiffOptions);
|
||||
//ExEnd:SetCanvasSizeAndMode
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class SettingAutoLayoutScaling {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SettingAutoLayoutScaling.class) + "CADConversion/";
|
||||
//ExStart:SettingAutoLayoutScaling
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Set Auto Layout Scaling
|
||||
rasterizationOptions.setAutomaticLayoutsScaling(true);
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the CAD to PDF
|
||||
image.save(dataDir + "result_out_.pdf", pdfOptions);
|
||||
//ExEnd:SettingAutoLayoutScaling
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject;
|
||||
|
||||
public class SubstituteFont {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SubstituteFont.class) + "CADConversion/";
|
||||
//ExStart:SubstituteFont
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of CadImage
|
||||
CadImage cadImage = (CadImage) Image.load(srcFile);
|
||||
|
||||
// Iterate over the items of CadStylesDictionary
|
||||
for(Object style : cadImage.getStyles())
|
||||
{
|
||||
// Set the font name
|
||||
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Arial");
|
||||
}
|
||||
|
||||
//ExEnd:SubstituteFont
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.aspose.cad.examples.CADConversion;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
public class SubstituteFontOfAParticularStyle {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SubstituteFontOfAParticularStyle.class) + "CADConversion/";
|
||||
//ExStart:SubstituteFontOfAParticularStyle
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of CadImage
|
||||
CadImage cadImage = (CadImage)Image.load(srcFile);
|
||||
|
||||
// Specify the font for one particular style
|
||||
|
||||
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)cadImage.getStyles().get_Item(0)).setPrimaryFontName("Arial");
|
||||
//ExEnd:SubstituteFontOfAParticularStyle
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
|
||||
package com.aspose.cad.examples.DWFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class SupportOfLayers {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
//ExStart:SupportOfLayers
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SupportOfLayers.class) + "DWFDrawings/";
|
||||
|
||||
String srcFile = dataDir + "for_layers_test.dwf";
|
||||
String outFile = dataDir + "for_layers_test.jpg";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
/// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Add desired layers
|
||||
List<String> stringList = new ArrayList<>(Arrays.asList("LayerA"));
|
||||
rasterizationOptions.setLayers(stringList);
|
||||
|
||||
|
||||
JpegOptions jpegOptions = new JpegOptions();
|
||||
jpegOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DXF to JPG
|
||||
image.save(outFile, jpegOptions);
|
||||
//ExEnd:SupportOfLayers
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWFXDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class OpenDwfxFile {
|
||||
public static void main(String[] args) {
|
||||
//ExStart:1
|
||||
String SourceDir = Utils.getDataDir_DWFXDrawings();
|
||||
String OutputDir = Utils.getDataDir_Output();
|
||||
String filePath = SourceDir + "Tyrannosaurus.dwfx";
|
||||
|
||||
Image cadImageDwf = Image.load(filePath);
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
|
||||
rasterizationOptions.setPageWidth(cadImageDwf.getSize().getWidth());
|
||||
rasterizationOptions.setPageHeight(cadImageDwf.getSize().getHeight());
|
||||
|
||||
PdfOptions CADf = new PdfOptions();
|
||||
CADf.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
cadImageDwf.save(OutputDir + "OpenDwfxFile_out.pdf", CADf);
|
||||
//ExEnd:1
|
||||
System.out.println("OpenDwfxFile executed successfully");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags;
|
||||
|
||||
|
||||
public class AccessingUnderlayFlagsofDWG {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//ExStart:AccessingUnderlayFlagsofDWG
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(AccessingUnderlayFlagsofDWG.class) + "DWGDrawings/";
|
||||
|
||||
// Input file name and path
|
||||
String fileName = dataDir + "BlockRefDgn.dwg";
|
||||
|
||||
// Load an existing DWG file and convert it into CadImage
|
||||
CadImage image = (CadImage)Image.load(fileName);
|
||||
|
||||
// Go through each entity inside the DWG file
|
||||
for(CadBaseEntity entity : image.getEntities())
|
||||
{
|
||||
// Check if entity is of CadDgnUnderlay type
|
||||
if (entity instanceof CadDgnUnderlay)
|
||||
{
|
||||
// Access different underlay flags
|
||||
CadUnderlay underlay = (CadUnderlay) entity;
|
||||
System.out.println(underlay.getUnderlayPath());
|
||||
System.out.println(underlay.getUnderlayName());
|
||||
System.out.println(underlay.getInsertionPoint().getX());
|
||||
System.out.println(underlay.getInsertionPoint().getY());
|
||||
System.out.println(underlay.getRotationAngle());
|
||||
System.out.println(underlay.getScaleX());
|
||||
System.out.println(underlay.getScaleY());
|
||||
System.out.println(underlay.getScaleZ());
|
||||
System.out.println((underlay.getFlags() & UnderlayFlags.UnderlayIsOn) == UnderlayFlags.UnderlayIsOn);
|
||||
System.out.println((underlay.getFlags() & UnderlayFlags.ClippingIsOn) == UnderlayFlags.ClippingIsOn);
|
||||
System.out.println((underlay.getFlags() & UnderlayFlags.Monochrome) != UnderlayFlags.Monochrome);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//ExEnd:AccessingUnderlayFlagsofDWG
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.CADConversion.PenSupportInExport;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class AddTextInDWG {
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
//ExStart:AddTextInDWG
|
||||
String dataDir = Utils.getDataDir(AddTextInDWG.class) + "DWGDrawings/";
|
||||
String dwgPathToFile = dataDir + "SimpleEntites.dwg";
|
||||
|
||||
|
||||
Image image = Image.load(dwgPathToFile);
|
||||
|
||||
CadText cadText = new CadText();
|
||||
cadText.setStyleType("Standard");
|
||||
cadText.setDefaultValue("Some custom text");
|
||||
cadText.setColorId(256);
|
||||
cadText.setLayerName("0");
|
||||
cadText.getFirstAlignment().setX(47.9);
|
||||
cadText.getFirstAlignment().setY(5.56);
|
||||
cadText.setTextHeight(0.8);
|
||||
cadText.setScaleX(0);
|
||||
|
||||
CadImage cadImage = ((CadImage)(image));
|
||||
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(cadText);
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
|
||||
cadRasterizationOptions.setPageHeight(1600);
|
||||
cadRasterizationOptions.setPageWidth(1600);
|
||||
cadRasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
image.save(dataDir+"SimpleEntites_generated.dwg.pdf", pdfOptions);
|
||||
|
||||
//ExEnd:AddTextInDWG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
public class Assert {
|
||||
public static boolean areEqual(Object left, Object right) {
|
||||
return left == right;
|
||||
}
|
||||
|
||||
public static boolean areEqual(Object left, Object right, Object epsilon) {
|
||||
return left == right;
|
||||
}
|
||||
|
||||
public static boolean areNotEqual(Object left, Object right) {
|
||||
return left == right;
|
||||
}
|
||||
}
|
||||
/*
|
||||
class Assert {
|
||||
|
||||
static void areNotEqual(int length, int i) {
|
||||
throw new UnsupportedOperationException("Values are not Equal"); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
static void areEqual(short length, short i) {
|
||||
throw new UnsupportedOperationException("Values are not Equal"); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
static void areEqual(String styleDescription, String standard) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
static void IsTrue(boolean b, String invalid_Z_value) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
static void areEqual(double x, int i, int i0) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
static void areEqual(double arrowHeadSize, double d, double d0) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
static void areEqual(boolean hasMText) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
static void ifTrue(boolean hasMText, boolean b) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
}*/
|
||||
@ -0,0 +1,35 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.*;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.awt.Image;
|
||||
|
||||
public class ConvertDWGFileToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ConvertDWGFileToPDF.class) + "DWGDrawings/";
|
||||
//ExStart:ConvertDWGFileToPDF
|
||||
String srcFile = dataDir + "Bottom_plate.dwg";
|
||||
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setBackgroundColor(Color.getWhite());
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DWG to PDF
|
||||
objImage.save(dataDir + "Bottom_plate_out_.pdf", pdfOptions);
|
||||
//ExEnd:ConvertDWGFileToPDF
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.Point;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadparameters.CadStringParameter;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadVportTableObject;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ConvertDWGToPDFBySupplyingCoordinates {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ConvertDWGToPDFBySupplyingCoordinates.class) + "DWGDrawings/";
|
||||
//ExStart:1
|
||||
String srcFile = dataDir + "visualization_-_conference_room.dwg";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(srcFile);
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setLayouts(new String[]{"Model"});
|
||||
rasterizationOptions.setNoScaling(true);
|
||||
|
||||
// note: preserving some empty borders around part of image is the responsibility of customer
|
||||
// top left point of region to draw
|
||||
Point topLeft = new Point(500, 1000);
|
||||
double width = 3108;
|
||||
double height = 2489;
|
||||
|
||||
CadVportTableObject newView = new CadVportTableObject();
|
||||
CadStringParameter cadStringParameter = new CadStringParameter();
|
||||
cadStringParameter.init("*Active");
|
||||
newView.setName(cadStringParameter);
|
||||
newView.getCenterPoint().setX(topLeft.getX() + width / 2f);
|
||||
newView.getCenterPoint().setY(topLeft.getY() - height / 2f);
|
||||
newView.getViewHeight().setValue(height);;
|
||||
newView.getViewAspectRatio().setValue(width / height);
|
||||
|
||||
for (int i = 0; i < cadImage.getViewPorts().size(); i++)
|
||||
{
|
||||
CadVportTableObject currentView = (CadVportTableObject)(cadImage.getViewPorts().get_Item(i));
|
||||
if (cadImage.getViewPorts().size() == 1 || currentView.getName().getValue().equalsIgnoreCase("*active"))
|
||||
{
|
||||
cadImage.getViewPorts().set_Item(i, newView);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
dataDir = dataDir + "ConvertDWGToPDFBySupplyingCoordinates_out.pdf";
|
||||
//Export the DWG to PDF
|
||||
cadImage.save(dataDir, pdfOptions);
|
||||
|
||||
//ExEnd:1
|
||||
System.out.println("ConvertDWGToPDFBySupplyingCoordinates executed successfully");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfCompliance;
|
||||
import com.aspose.cad.imageoptions.PdfDocumentOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class DWGToCompliancePDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(DWGToCompliancePDF.class) + "DWGDrawings/";
|
||||
//ExStart:DWGToCompliancePDF
|
||||
String srcFile = dataDir + "Bottom_plate.dwg";
|
||||
|
||||
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
|
||||
|
||||
pdfOptions.setCorePdfOptions(new PdfDocumentOptions());
|
||||
|
||||
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1a);
|
||||
objImage.save(dataDir+"Saved1.pdf", pdfOptions);
|
||||
|
||||
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1b);
|
||||
objImage.save(dataDir+"Saved.pdf", pdfOptions);
|
||||
//ExEnd:DWGToCompliancePDF
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
|
||||
public class DWGToDWF {
|
||||
public static void main(String[] args){
|
||||
|
||||
//ExStart:DWGToDWF
|
||||
String dataDir = Utils.getDataDir(DWGToDWF.class) + "DWGDrawings/";
|
||||
String inputFile = dataDir+ "Line.dwg";
|
||||
String outFile = dataDir+ "Line.dwf";
|
||||
CadImage cadImage = (CadImage)Image.load(inputFile);
|
||||
cadImage.save(outFile);
|
||||
//ExEnd:DWGToDWF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
|
||||
public class DWGToDXF {
|
||||
|
||||
public static void main(String[] args){
|
||||
//ExStart:DWGToDXF
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(DWGToDXF.class) + "DWGDrawings/";
|
||||
String inputFile = dataDir+ "Line.dwg";
|
||||
String outFile = dataDir+ "Line.dxf";
|
||||
CadImage cadImage = (CadImage)Image.load(inputFile);
|
||||
|
||||
cadImage.save(outFile);
|
||||
//ExEnd:DWGToDXF
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,144 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.UnitType;
|
||||
|
||||
public class ExportDWGToPDFOrRaster {
|
||||
//ExStart:ExportDWGToPDFOrRaster
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
// The path to the resource directory.
|
||||
|
||||
String dataDir = Utils.getDataDir(ExportDWGToPDFOrRaster.class) + "DWGDrawings/";
|
||||
|
||||
String srcFile = dataDir + "Bottom_plate.dwg";
|
||||
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
|
||||
Boolean currentUnitIsMetric = IsMetric(objImage.getUnitType());
|
||||
int currentUnitCoefficient = objImage.getUnitType();
|
||||
|
||||
if (currentUnitIsMetric)
|
||||
{
|
||||
double metersCoeff = 1 / 1000.0;
|
||||
double scaleFactor = metersCoeff / currentUnitCoefficient;
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth((float)(210 * scaleFactor));
|
||||
rasterizationOptions.setPageHeight((float)(297 * scaleFactor));
|
||||
rasterizationOptions.setUnitType(UnitType.Millimeter);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth((float)(8.27f / currentUnitCoefficient));
|
||||
rasterizationOptions.setPageHeight((float)(11.69f / currentUnitCoefficient));
|
||||
rasterizationOptions.setUnitType(UnitType.Inch);
|
||||
}
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
|
||||
objImage.save(dataDir+"Saved.pdf", pdfOptions);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static Boolean IsMetric(int initial)
|
||||
{
|
||||
|
||||
Boolean isMetric = true;
|
||||
|
||||
switch (initial)
|
||||
{
|
||||
case UnitType.Inch:
|
||||
case UnitType.MicroInch:
|
||||
case UnitType.Mil:
|
||||
case UnitType.Foot:
|
||||
case UnitType.Yard:
|
||||
case UnitType.Mile:
|
||||
case UnitType.Unitless:
|
||||
isMetric = false;
|
||||
}
|
||||
|
||||
return isMetric;
|
||||
}
|
||||
|
||||
private Double Coefficient(int unitType)
|
||||
{
|
||||
Double coefficient = 1.0;
|
||||
|
||||
switch (unitType)
|
||||
{
|
||||
case UnitType.Parsec:
|
||||
coefficient = 3.0857 * 10000000000000000.0;
|
||||
break;
|
||||
case UnitType.LightYear:
|
||||
coefficient = 9.4607 * 1000000000000000.0;
|
||||
break;
|
||||
case UnitType.AstronomicalUnit:
|
||||
coefficient = 1.4960 * 100000000000.0;
|
||||
break;
|
||||
case UnitType.Gigameter:
|
||||
coefficient = 1000000000.0;
|
||||
break;
|
||||
case UnitType.Kilometer:
|
||||
coefficient = 1000.0;
|
||||
break;
|
||||
case UnitType.Decameter:
|
||||
coefficient = 10.0;
|
||||
break;
|
||||
case UnitType.Hectometer:
|
||||
coefficient = 100.0;
|
||||
break;
|
||||
case UnitType.Meter:
|
||||
coefficient = 1.0;
|
||||
break;
|
||||
case UnitType.Centimenter:
|
||||
coefficient = 0.01;
|
||||
break;
|
||||
case UnitType.Decimeter:
|
||||
coefficient = 0.1;
|
||||
break;
|
||||
case UnitType.Millimeter:
|
||||
coefficient = 0.001;
|
||||
break;
|
||||
case UnitType.Micrometer:
|
||||
coefficient = 0.000001;
|
||||
break;
|
||||
case UnitType.Nanometer:
|
||||
coefficient = 0.000000001;
|
||||
break;
|
||||
case UnitType.Angstrom:
|
||||
coefficient = 0.0000000001;
|
||||
break;
|
||||
case UnitType.Inch:
|
||||
coefficient = 1.0;
|
||||
break;
|
||||
case UnitType.MicroInch:
|
||||
coefficient = 0.000001;
|
||||
break;
|
||||
case UnitType.Mil:
|
||||
coefficient = 0.001;
|
||||
break;
|
||||
case UnitType.Foot:
|
||||
coefficient = 12.0;
|
||||
break;
|
||||
case UnitType.Yard:
|
||||
coefficient = 36.0;
|
||||
break;
|
||||
case UnitType.Mile:
|
||||
coefficient = 63360.0;
|
||||
break;
|
||||
}
|
||||
|
||||
return coefficient;
|
||||
}
|
||||
|
||||
//ExEnd:ExportDWGToPDFOrRaster
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
|
||||
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
|
||||
public class ExportOLEObjects {
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
|
||||
//ExStart:ExportOLEObjects
|
||||
String dataDir = Utils.getDataDir(ExportOLEObjects.class) + "DWGDrawings/";
|
||||
|
||||
String[] files = new String[] { "D ZD junior D10m H2m.dwg", "ZD - Senior D6m H2m45.dwg" };
|
||||
|
||||
PngOptions pngOptions = new PngOptions();
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
pngOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
rasterizationOptions.setLayouts(new String[] { "Layout1" });
|
||||
|
||||
for(String file : files)
|
||||
{
|
||||
CadImage cadImage = (CadImage)Image.load(dataDir + file);
|
||||
|
||||
cadImage.save(dataDir + file + "_out.png", pngOptions);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ExEnd:ExportOLEObjects
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ExportSpecificDWGLayoutToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportSpecificDWGLayoutToPDF.class) + "DWGDrawings/";
|
||||
//ExStart:ExportSpecificDWGLayoutToPDF
|
||||
String srcFile = dataDir + "visualization_-_conference_room.dwg";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
// Specify desired layout name
|
||||
rasterizationOptions.setLayouts(new String[] {"Layout1"});
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DWG to PDF
|
||||
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);
|
||||
//ExEnd:ExportSpecificDWGLayoutToPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.SvgOptions;
|
||||
import com.aspose.cad.imageoptions.svgoptionsparameters.SvgColorMode;
|
||||
|
||||
|
||||
public class ExportToSVG {
|
||||
|
||||
public static void main(String[] args){
|
||||
//ExStart:ExportToSVG
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportToSVG.class) + "DWGDrawings/";
|
||||
Image image = Image.load(dataDir + "meshes.dwg");
|
||||
{
|
||||
SvgOptions options = new SvgOptions();
|
||||
options.setColorType(SvgColorMode.Grayscale);
|
||||
options.setTextAsShapes(true);
|
||||
image.save(dataDir + "meshes.svg");
|
||||
}
|
||||
//ExEnd:ExportToSVG
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadparameters.CadStringParameter;
|
||||
|
||||
public class GetBlockAttributeValueOfExternalReference {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(GetBlockAttributeValueOfExternalReference.class) + "DWGDrawings/";
|
||||
//ExStart:GetBlockAttributeValueOfExternalReference
|
||||
// Load an existing DWG file as CadImage.
|
||||
CadImage cadImage = (CadImage) Image.load(dataDir + "sample.dwg");
|
||||
|
||||
// Access the external path name property
|
||||
CadStringParameter sXternalRef = cadImage.getBlockEntities().get_Item("*MODEL_SPACE").getXRefPathName();
|
||||
System.out.println(sXternalRef);
|
||||
//ExEnd:GetBlockAttributeValueOfExternalReference
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.DXFDrawings.RenderDXFAsPDF;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.*;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class ImportImageToDWG {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
String dataDir = Utils.getDataDir(ImportImageToDWG.class) + "DWGDrawings/";
|
||||
//ExStart:ImportImageToDWG
|
||||
String srcFile = dataDir + "Drawing11.dwg";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
CadRasterImageDef cadRasterImageDef = new CadRasterImageDef("road-sign-custom.png", 640, 562);
|
||||
cadRasterImageDef.setObjectHandle("A3B4");
|
||||
|
||||
Cad3DPoint insertionPoint = new Cad3DPoint(26.77, 22.35);
|
||||
Cad3DPoint uVector = new Cad3DPoint(0.0061565450840500831, 0);
|
||||
Cad3DPoint vVector = new Cad3DPoint(0, 0.0061565450840500822);
|
||||
|
||||
CadRasterImage cadRasterImage = new CadRasterImage(cadRasterImageDef, insertionPoint, uVector, vVector);
|
||||
cadRasterImage.setImageDefReference("A3B4");
|
||||
cadRasterImage.setDisplayFlags((short)7);
|
||||
cadRasterImage.setClippingState((short)0);
|
||||
cadRasterImage.getClipBoundaryVertexList().add(new Cad2DPoint(-0.5, 0.5));
|
||||
cadRasterImage.getClipBoundaryVertexList().add(new Cad2DPoint(639.5, 561.5));
|
||||
|
||||
CadImage cadImage = ((CadImage)(image));
|
||||
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(cadRasterImage);
|
||||
CadBaseObject[] objs = cadImage.getObjects();
|
||||
CadBaseObject[] arr = new CadBaseObject[objs.length + 1];
|
||||
int ind = 0;
|
||||
|
||||
for (CadBaseObject obj : objs)
|
||||
{
|
||||
arr[ind] = obj;
|
||||
ind++;
|
||||
}
|
||||
|
||||
arr[ind] = cadRasterImageDef;
|
||||
cadImage.setObjects(arr);
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
|
||||
cadRasterizationOptions.setPageHeight(1600);
|
||||
cadRasterizationOptions.setPageWidth(1600);
|
||||
cadRasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
|
||||
image.save((srcFile + "_generated.pdf"), pdfOptions);
|
||||
//ExEnd:ImportImageToDWG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.CadLayoutDictionary;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadLayout;
|
||||
|
||||
public class ListAllLayoutsInAnAutoCADDrawing {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ListAllLayoutsInAnAutoCADDrawing.class) + "DWGDrawings/";
|
||||
//ExStart:ListAllLayoutsInAnAutoCADDrawing
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
CadImage cadImage = (CadImage)image;
|
||||
|
||||
CadLayoutDictionary layouts = cadImage.getLayouts();
|
||||
for (CadLayout layout : layouts.getValues())
|
||||
{
|
||||
System.out.println("Layout " + layout.getLayoutName());
|
||||
}
|
||||
|
||||
//ExEnd:ListAllLayoutsInAnAutoCADDrawing
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.*;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
//import java.awt.Image;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.polylines.CadPolyFaceMesh;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.polylines.CadPolygonMesh;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MeshSupportForDWG {
|
||||
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(MeshSupportForDWG.class) + "DWGDrawings/";
|
||||
//ExStart:MeshSupportForDWG
|
||||
String srcFile = dataDir + "meshes.dwg";
|
||||
|
||||
// com.aspose.cad. objImage = com.aspose.cad.CImage.load(srcFile);
|
||||
CadImage cadImage =(CadImage) com.aspose.cad.Image.load(srcFile);
|
||||
|
||||
try
|
||||
{
|
||||
for (CadBaseEntity entity : cadImage.getEntities())
|
||||
{
|
||||
if (entity instanceof CadPolyFaceMesh)
|
||||
{
|
||||
CadPolyFaceMesh asFaceMesh= (CadPolyFaceMesh)entity;
|
||||
|
||||
if (asFaceMesh != null)
|
||||
{
|
||||
System.out.println("Vetexes count: " + asFaceMesh.getMeshMVertexCount());
|
||||
}
|
||||
}
|
||||
else if (entity instanceof CadPolygonMesh)
|
||||
{
|
||||
CadPolygonMesh asPolygonMesh= (CadPolygonMesh)entity;
|
||||
|
||||
if (asPolygonMesh != null)
|
||||
{
|
||||
System.out.println("Vetexes count: " + asPolygonMesh.getMeshMVertexCount());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
cadImage.dispose();
|
||||
}
|
||||
//ExEnd:MeshSupportForDWG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.CodePages;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.LoadOptions;
|
||||
import com.aspose.cad.MifCodePages;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
|
||||
public class OverrideAutomaticCodePageDetectionDwg {
|
||||
public static void main(String[] args) {
|
||||
//ExStart:1
|
||||
String SourceDir = Utils.getDataDir_DWGDrawings();
|
||||
String dwgPathToFile = SourceDir + "SimpleEntites.dwg";
|
||||
|
||||
|
||||
LoadOptions opts = new LoadOptions();
|
||||
opts.setSpecifiedEncoding(CodePages.Japanese);
|
||||
opts.setSpecifiedMifEncoding(MifCodePages.Japanese);
|
||||
opts.setRecoverMalformedCifMif(false);
|
||||
|
||||
CadImage cadImage = (CadImage) Image.load(dwgPathToFile, opts);
|
||||
|
||||
//do export or something else with cadImage
|
||||
|
||||
//ExEnd:1
|
||||
System.out.println("OverrideAutomaticCodePageDetectionDwg executed successfully");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
|
||||
|
||||
public class ParticularDWGToImage {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//ExStart:ParticularDWGToImage
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ParticularDWGToImage.class) + "DWGDrawings/";
|
||||
String sourceFilePath = dataDir + "visualization_-_conference_room.dwg";
|
||||
|
||||
CadImage cadImage = ((CadImage)(Image.load(sourceFilePath)));
|
||||
|
||||
CadBaseEntity[] entities = cadImage.getEntities();
|
||||
|
||||
List<CadBaseEntity> filteredEntities = new ArrayList<CadBaseEntity>();
|
||||
for (CadBaseEntity baseEntity : entities) {
|
||||
// selection or filtration of entities
|
||||
if ((baseEntity.getTypeName() == CadEntityTypeName.TEXT)) {
|
||||
filteredEntities.add(baseEntity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CadBaseEntity[] arr = new CadBaseEntity[filteredEntities.size()];
|
||||
cadImage.setEntities(filteredEntities.toArray(arr));
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
// Set Auto Layout Scaling
|
||||
rasterizationOptions.setAutomaticLayoutsScaling(true);
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
String outFile = dataDir + "result_out_generated.pdf";
|
||||
// Export the CAD to PDF
|
||||
cadImage.save(outFile, pdfOptions);
|
||||
//ExEnd:ParticularDWGToImage
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.Cad3DPoint;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ReadXREEFMetaData {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ReadXREEFMetaData.class) + "DWGDrawings/";
|
||||
//ExStart:ReadXREEFMetaData
|
||||
CadImage image = (CadImage)Image.load(dataDir+"Bottom_plate.dwg");
|
||||
{
|
||||
for (CadBaseEntity entity : image.getEntities())
|
||||
{
|
||||
if (entity instanceof CadUnderlay)
|
||||
{
|
||||
//XREF entity with metadata
|
||||
Cad3DPoint insertionPoint = ((CadUnderlay) entity).getInsertionPoint();
|
||||
String path = ((CadUnderlay) entity).getUnderlayPath();
|
||||
}
|
||||
}
|
||||
}
|
||||
//ExEnd:ReadXREEFMetaData
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class RenderDWGDocument {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(RenderDWGDocument.class) + "DWGDrawings/";
|
||||
//ExStart:RenderDWGDocument
|
||||
String srcFile = dataDir + "visualization_-_conference_room.dwg";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
// Specify desired layout name
|
||||
rasterizationOptions.setLayouts(new String[] {"Layout1"});
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DWG to PDF
|
||||
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);
|
||||
|
||||
//ExEnd:RenderDWGDocument
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,93 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.CadLayoutDictionary;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBlockEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadInsertObject;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMText;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.attentities.CadAttDef;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.attentities.CadAttrib;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadBlockTableObject;
|
||||
|
||||
public class SearchTextInDWGAutoCADFile {
|
||||
|
||||
//ExStart:SearchTextInDWGAutoCADFile
|
||||
private static final String dataDir = Utils.getDataDir(SearchTextInDWGAutoCADFile.class) + "DWGDrawings/";
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Search Text In DWG AutoCAD File
|
||||
searchTextInDWGAutoCADFile();
|
||||
|
||||
// Search For Text In Specific Layout
|
||||
|
||||
}
|
||||
|
||||
public static void searchTextInDWGAutoCADFile()
|
||||
{
|
||||
//String dataDir="Test_Apsose.CAD\\";
|
||||
// Load an existing DWG file as CadImage.
|
||||
CadImage cadImage = (CadImage) CadImage.load(dataDir + "sample_file.dwg");
|
||||
for (CadBaseEntity entity : cadImage.getEntities())
|
||||
{
|
||||
IterateCADNodeEntities(entity);
|
||||
}
|
||||
|
||||
// Search for text in the block section
|
||||
for (CadBlockEntity blockEntity : cadImage.getBlockEntities().getValues())
|
||||
{
|
||||
for (CadBaseEntity entity : blockEntity.getEntities())
|
||||
{
|
||||
IterateCADNodeEntities(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
//Recursive function to iterate nodes inside nodes
|
||||
private static void IterateCADNodeEntities(CadBaseEntity obj)
|
||||
{
|
||||
switch (obj.getTypeName())
|
||||
{
|
||||
case CadEntityTypeName.TEXT:
|
||||
CadText childObjectText = (CadText) obj;
|
||||
|
||||
System.out.println(childObjectText.getDefaultValue());
|
||||
|
||||
break;
|
||||
|
||||
case CadEntityTypeName.MTEXT:
|
||||
CadMText childObjectMText = (CadMText) obj;
|
||||
|
||||
System.out.println(childObjectMText.getText());
|
||||
|
||||
break;
|
||||
|
||||
case CadEntityTypeName.INSERT:
|
||||
CadInsertObject childInsertObject = (CadInsertObject) obj;
|
||||
|
||||
for (CadBaseEntity tempobj : childInsertObject.getChildObjects())
|
||||
{
|
||||
IterateCADNodeEntities(tempobj);
|
||||
}
|
||||
break;
|
||||
|
||||
case CadEntityTypeName.ATTDEF:
|
||||
CadAttDef attDef = (CadAttDef) obj;
|
||||
|
||||
System.out.println(attDef.getDefaultString());
|
||||
break;
|
||||
|
||||
case CadEntityTypeName.ATTRIB:
|
||||
CadAttrib attAttrib = (CadAttrib) obj;
|
||||
|
||||
System.out.println(attAttrib.getDefaultText());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//ExEnd:SearchTextInDWGAutoCADFile
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class SupportForHiddenLines {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:SupportForHiddenLines
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(SupportForHiddenLines.class) + "DWGDrawings/";
|
||||
|
||||
String sourceFilePath = dataDir + "Bottom_plate.dwg";
|
||||
String outPath = dataDir + "Bottom_plate.pdf";
|
||||
CadImage cadImage = (CadImage)Image.load(sourceFilePath);
|
||||
|
||||
|
||||
List<String> list = Arrays.asList("Print","L1_RegMark","L2_RegMark");
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageHeight(cadImage.getHeight());
|
||||
rasterizationOptions.setPageWidth(cadImage.getWidth()) ;
|
||||
rasterizationOptions.setLayers(list);
|
||||
|
||||
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
rasterizationOptions.setLayouts(new String[] { "Model" });
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
cadImage.save(outPath, pdfOptions);
|
||||
|
||||
System.out.println("\nThe DWG file exported successfully to PDF.\nFile saved at " + dataDir);
|
||||
//ExEnd:SupportForHiddenLines
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package com.aspose.cad.examples.DWGDrawings;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMLeader;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMLeaderContextData;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMLeaderLine;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMLeaderNode;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class SupportMLeaderEntityForDWGFormat {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
// The path to the resource directory.
|
||||
|
||||
String dataDir = Utils.getDataDir(SupportMLeaderEntityForDWGFormat.class) + "DWGDrawings/";
|
||||
//ExStart:SupportMLeaderEntityForDWGFormat
|
||||
|
||||
String file = dataDir + "Multileaders.dwg";
|
||||
Image image = Image.load(file);
|
||||
|
||||
// Test
|
||||
CadImage cadImage = (CadImage)image;
|
||||
|
||||
|
||||
Assert.areNotEqual(cadImage.getEntities().length, 0);
|
||||
CadMLeader cadMLeader = (CadMLeader)cadImage.getEntities()[2];
|
||||
|
||||
Assert.areEqual(cadMLeader.getStyleDescription(), "Standard");
|
||||
Assert.areEqual(cadMLeader.getLeaderStyleId(), "12E");
|
||||
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639");
|
||||
Assert.areEqual(cadMLeader.getLeaderLineTypeID(), "14");
|
||||
|
||||
CadMLeaderContextData context = cadMLeader.getContextData();
|
||||
|
||||
Assert.areEqual(context.getArrowHeadSize(), 30.0, 0.1);
|
||||
Assert.areEqual(context.getBasePoint().getX(), 481, 1);
|
||||
Assert.areEqual(context.getContentScale(), 1.0, 0.01);
|
||||
Assert.areEqual(context.getDefaultText().getValue(), "This is multileader with huge text\\P{\\H1.5x;6666666666666666666666666666\\P}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
|
||||
Assert.areEqual(context.hasMText(), true);
|
||||
|
||||
CadMLeaderNode mleaderNode = context.getLeaderNode();
|
||||
|
||||
Assert.areEqual(mleaderNode.getLastLeaderLinePoint().getX(), 473, 1);
|
||||
CadMLeaderLine leaderLine = mleaderNode.getLeaderLine();
|
||||
|
||||
Assert.areEqual(leaderLine.getBreakEndPoint().toString(), null);
|
||||
Assert.areEqual(Integer.toString(leaderLine.getBreakPointIndex().getValue()), Integer.toString(0));
|
||||
Assert.areEqual(leaderLine.getBreakStartPoint().toString(), null);
|
||||
Assert.areEqual(Integer.toString(leaderLine.getLeaderLineIndex().getValue()), Integer.toString(0));
|
||||
Assert.areEqual(Integer.toString(leaderLine.getLeaderPoints().size()), Integer.toString(4));
|
||||
|
||||
Assert.areEqual(Integer.toString(mleaderNode.getBranchIndex()), Integer.toString(0));
|
||||
|
||||
|
||||
Assert.areEqual(mleaderNode.getDogLegLength(), 8.0, 0.1);
|
||||
|
||||
Assert.areEqual(context.hasMText(), true);
|
||||
|
||||
// Assert.IsTrue((context.hasMText()==true , "Invalid Z value");
|
||||
Assert.areEqual(context.getTextAttachmentType().getValue(), (short)1);
|
||||
Assert.areEqual(context.getTextBackgroundColor().getValue(), 18);
|
||||
Assert.areEqual(context.getTextHeight(), 20.0, 0.1);
|
||||
Assert.areEqual(context.getTextStyleID().getValue(), "11");
|
||||
Assert.areEqual(context.getTextRotation().getValue(), 0.0, 0.01);
|
||||
|
||||
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639");
|
||||
Assert.areEqual(cadMLeader.getLeaderType(), 1);
|
||||
Assert.areEqual(cadMLeader.getBlockContentColor(), 0);
|
||||
Assert.areEqual(cadMLeader.getLeaderLineColor(), 0);
|
||||
Assert.areEqual(cadMLeader.getTextHeight(), 1.0, 0.01);
|
||||
|
||||
//ExEnd:SupportMLeaderEntityForDWGFormat
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.aspose.cad.examples.DWTDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
|
||||
public class ConvertDWTToDXF {
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
String dataDir = Utils.getDataDir(ConvertDWTToDXF.class) + "DWTDrawings/";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(dataDir + "sample.dwt");
|
||||
String outFile = dataDir+ "example.dxf";
|
||||
cadImage.save(outFile);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AddAttribMText {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(AddAttribMText.class) + "DXFDrawings/";
|
||||
//ExStart:AddAttribMText
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
CadImage cadImage =(CadImage) Image.load(srcFile);
|
||||
|
||||
List<CadBaseEntity> mtextList = new ArrayList<CadBaseEntity>();
|
||||
List<CadBaseEntity> attribList = new ArrayList<CadBaseEntity>();
|
||||
try
|
||||
{
|
||||
for (CadBaseEntity entity : cadImage.getEntities())
|
||||
{
|
||||
if (entity.getTypeName() == CadEntityTypeName.MTEXT)
|
||||
{
|
||||
mtextList.add(entity);
|
||||
}
|
||||
|
||||
if (entity.getTypeName() == CadEntityTypeName.INSERT)
|
||||
{
|
||||
for (CadBaseEntity childObject : entity.getChildObjects())
|
||||
{
|
||||
if (childObject.getTypeName() == CadEntityTypeName.ATTRIB)
|
||||
{
|
||||
attribList.add(childObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("MText Size: "+ mtextList.size());
|
||||
System.out.println("Attribute Size: "+ attribList.size());
|
||||
}
|
||||
finally
|
||||
{
|
||||
cadImage.dispose();
|
||||
}
|
||||
|
||||
//ExEnd:AddAttribMText
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class AddCustomProperties {
|
||||
public static void main(String[] args) {
|
||||
//ExStart:1
|
||||
String dataDir = Utils.getDataDir(ExportDXFToWMF.class) + "DXFDrawings/";
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
String outFile = dataDir + "AddCustomProperties_out.dxf";
|
||||
CadImage cadImage = (CadImage)Image.load(srcFile);
|
||||
|
||||
cadImage.getHeader().getCustomProperties().put("CUSTOM_PROPERTY_1", "Custom property test 1");
|
||||
cadImage.getHeader().getCustomProperties().put("CUSTOM_PROPERTY_2", "Custom property test 2");
|
||||
cadImage.getHeader().getCustomProperties().put("CUSTOM_PROPERTY_3", "Custom property test 3");
|
||||
|
||||
cadImage.save(outFile);
|
||||
//ExEnd:1
|
||||
System.out.println("\nAddCustomProperties executed successfully.");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBlockEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadInsertObject;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DecomposeCadInsertObject {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(DecomposeCadInsertObject.class) + "DXFDrawings/";
|
||||
//ExStart:DecomposeCadInsertObject
|
||||
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
CadImage cadImage =(CadImage) Image.load(srcFile);
|
||||
|
||||
try
|
||||
{
|
||||
for (int i=0; i<cadImage.getEntities().length;i++)
|
||||
{
|
||||
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT)
|
||||
{
|
||||
CadBlockEntity block =
|
||||
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName());
|
||||
for (CadBaseEntity blockChild : block.getEntities())
|
||||
{
|
||||
// process entities
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
cadImage.dispose();
|
||||
}
|
||||
//ExEnd:DecomposeCadInsertObject
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.CadRenderResult;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.RenderResult;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mfazi
|
||||
*/
|
||||
public class EnableTracking {
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
//ExStart:EnableTracking
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(EnableTracking.class) + "DXFDrawings/";
|
||||
|
||||
Image image = Image.load(dataDir + "conic_pyramid.dxf");
|
||||
{
|
||||
OutputStream stream = new FileOutputStream(dataDir + "output_conic_pyramid.pdf");
|
||||
{
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
cadRasterizationOptions.setPageWidth(800);
|
||||
cadRasterizationOptions.setPageHeight(600);
|
||||
|
||||
cadRasterizationOptions.RenderResult = new ErrorHandler();
|
||||
|
||||
System.out.println("Exporting to pdf format");
|
||||
image.save(stream, pdfOptions);
|
||||
}
|
||||
}
|
||||
//ExEnd:EnableTracking
|
||||
}
|
||||
//ExStart:CadRenderHandler
|
||||
public static class ErrorHandler extends CadRasterizationOptions.CadRenderHandler
|
||||
{
|
||||
@Override
|
||||
public void invoke(CadRenderResult result) {
|
||||
System.out.println("Tracking results of exporting");
|
||||
|
||||
if (result.isRenderComplete())
|
||||
return;
|
||||
|
||||
System.out.println("Have some problems:");
|
||||
|
||||
int idxError = 1;
|
||||
for (RenderResult rr : result.getFailures())
|
||||
{
|
||||
System.out.printf("{0}. {1}, {2}", idxError, rr.getRenderCode(), rr.getMessage());
|
||||
idxError++;
|
||||
}
|
||||
}
|
||||
}
|
||||
//ExEnd:CadRenderHandler
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ExportDXFDrawingToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportDXFDrawingToPDF.class) + "DXFDrawings/";
|
||||
//ExStart:ExportDXFDrawingToPDF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setBackgroundColor(Color.getWhite());
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DXF to PDF
|
||||
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions);
|
||||
//ExEnd:ExportDXFDrawingToPDF
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.ifc.IfcImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.WmfOptions;
|
||||
|
||||
public class ExportDXFToWMF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportDXFToWMF.class) + "DXFDrawings/";
|
||||
//ExStart:ExportDXFToWMF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
IfcImage cadImage = (IfcImage)Image.load((dataDir +"example.ifc"));
|
||||
try
|
||||
{
|
||||
{
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
|
||||
rasterizationOptions.setPageWidth(100);
|
||||
rasterizationOptions.setPageHeight(100);
|
||||
WmfOptions wmfOptions = new WmfOptions();
|
||||
|
||||
cadImage.save(dataDir+" example.ifc.wmf", wmfOptions);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
cadImage.dispose();
|
||||
|
||||
}
|
||||
|
||||
// Export the DXF to PDF
|
||||
image.save(dataDir + "conic_pyramid_out_.pdf");
|
||||
}
|
||||
//ExEnd:ExportDXFToWMF
|
||||
}
|
||||
|
||||
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject;
|
||||
import java.io.File;
|
||||
import static java.lang.System.in;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mfazi
|
||||
*/
|
||||
public class ExportImagesToDXF {
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
//ExStart:ExportImagesToDXF
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/";
|
||||
|
||||
File[] files = new File(dataDir).listFiles();
|
||||
for (File file : files) {
|
||||
|
||||
String extension = GetFileExtension(file);
|
||||
if(extension == ".dxf"){
|
||||
|
||||
// ****************************
|
||||
// Set new font per document
|
||||
// ****************************
|
||||
CadImage cadImage = (CadImage)Image.load(file.getName());
|
||||
for (Object style : cadImage.getStyles()) {
|
||||
// Set font name
|
||||
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Broadway");
|
||||
}
|
||||
cadImage.save(file.getName() + "_font.dxf");
|
||||
|
||||
// ****************************
|
||||
// Hide all "straight" lines
|
||||
// ****************************
|
||||
CadImage cadImageEntity = (CadImage)Image.load(file.getName());
|
||||
for (CadBaseEntity entity : cadImageEntity.getEntities()) {
|
||||
// Make lines invisible
|
||||
if ((entity.getTypeName() == CadEntityTypeName.LINE)) {
|
||||
entity.setVisible((short)0);
|
||||
}
|
||||
}
|
||||
cadImageEntity.save(file.getName() + "_lines.dxf");
|
||||
|
||||
// ****************************
|
||||
// Manipulations with text
|
||||
// ****************************
|
||||
|
||||
CadImage cadImageText = (CadImage)Image.load(file.getName());
|
||||
for (CadBaseEntity entity : cadImageText.getEntities()) {
|
||||
// Make lines invisible
|
||||
if ((entity.getTypeName() == CadEntityTypeName.TEXT)) {
|
||||
((CadText)entity).setDefaultValue("New text here!!! :)");
|
||||
break;
|
||||
}
|
||||
}
|
||||
cadImageText.save(file.getName() + "_text.dxf");
|
||||
|
||||
}//If extension = .dxf
|
||||
}
|
||||
|
||||
//ExEnd:ExportImagesToDXF
|
||||
|
||||
}
|
||||
|
||||
//ExStart:GetFileExtension
|
||||
private static String GetFileExtension(File file) {
|
||||
String extension = "";
|
||||
|
||||
try {
|
||||
if (file != null && file.exists()) {
|
||||
String name = file.getName();
|
||||
extension = name.substring(name.lastIndexOf("."));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
extension = "";
|
||||
}
|
||||
|
||||
return extension;
|
||||
|
||||
}
|
||||
//ExEnd:GetFileExtension
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.fileformats.dwf.whip.objects.DwfWhipLayer;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.dwf.DwfImage;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ExportSpecificDXFLayoutToImage {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//ExStart:ExportSpecificDXFLayoutToImage
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings\\";
|
||||
|
||||
String srcFile = dataDir + "for_layers_test.dwf";
|
||||
|
||||
DwfImage image =(DwfImage)Image.load(srcFile);
|
||||
|
||||
List<String> layersNames=image.getLayers().getLayersNames();
|
||||
|
||||
DwfWhipLayer layer = image.getLayers().getLayerByName("0");
|
||||
for (DwfWhipLayer lr : image.getLayers())
|
||||
{
|
||||
//...
|
||||
}
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
|
||||
String[] stringArray = Arrays.copyOf(layersNames.toArray(), layersNames.toArray().length, String[].class);
|
||||
|
||||
List<String> stringList = Arrays.asList(stringArray);
|
||||
// Add desired layers
|
||||
rasterizationOptions.setLayers(stringList);
|
||||
|
||||
JpegOptions jpegOptions = new JpegOptions();
|
||||
jpegOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
String output = dataDir+"for_layers_test.jpg";
|
||||
// Export the DXF to Image
|
||||
image.save(output, jpegOptions);
|
||||
|
||||
//ExEnd:ExportSpecificDXFLayoutToImage
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ExportSpecificDXFLayoutToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings/";
|
||||
//ExStart:ExportSpecificDXFLayoutToPDF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
// Specify desired layout name
|
||||
rasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DXF to PDF
|
||||
image.save(dataDir + "conic_pyramid_layout_out_.pdf", pdfOptions);
|
||||
//ExEnd:ExportSpecificDXFLayoutToPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ExportSpecificLayerOfDXFDrawingToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportSpecificLayerOfDXFDrawingToPDF.class) + "DXFDrawings/";
|
||||
//ExStart:ExportSpecificLayerOfDXFDrawingToPDF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
// Add desired layers
|
||||
List<String> stringList = new ArrayList<>(Arrays.asList("0"));
|
||||
rasterizationOptions.setLayers(stringList);
|
||||
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DXF to PDF
|
||||
image.save(dataDir + "conic_pyramid_layer_out_.pdf", pdfOptions);
|
||||
//ExEnd:ExportSpecificLayerOfDXFDrawingToPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class RenderDXFAsPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/";
|
||||
//ExStart:RenderDXFAsPDF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image image = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions and set its various properties
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setBackgroundColor(Color.getWhite());
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Create an instance of PdfOptions
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
// Set the VectorRasterizationOptions property
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Export the DXF to PDF
|
||||
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions);
|
||||
//ExEnd:RenderDXFAsPDF
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.CADConversion.PenSupportInExport;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import java.io.File;
|
||||
public class SaveDXFFiles {
|
||||
|
||||
public static void main(String[] args){
|
||||
//ExStart:SaveDXFFiles
|
||||
|
||||
String dataDir = Utils.getDataDir(SaveDXFFiles.class) + "CADConversion/";
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(srcFile);
|
||||
cadImage.save(dataDir+"conic.dxf");
|
||||
|
||||
//ExEnd:SaveDXFFiles
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.DXFDrawings;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.Margins;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mfazi
|
||||
*/
|
||||
public class SupportOfBlockClipping {
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
//ExStart:SupportOfBlockClipping
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/";
|
||||
String inputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.dxf";
|
||||
String outputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.pdf";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(inputFile);
|
||||
|
||||
Margins margins = new Margins();
|
||||
margins.setTop(5);
|
||||
margins.setRight(30);
|
||||
margins.setBottom(5);
|
||||
margins.setLeft(30);
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setBackgroundColor(Color.getWhite());
|
||||
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
||||
rasterizationOptions.setPageWidth(1200);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
rasterizationOptions.setMargins(margins);
|
||||
|
||||
rasterizationOptions.setLayouts( new String[] { "Model" } );
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
cadImage.save(outputFile, pdfOptions);
|
||||
|
||||
//ExEnd:SupportOfBlockClipping
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.aspose.cad.examples.ExportingCAD;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
//import com.aspose.cad.imageoptions.TypeOfEntities;
|
||||
|
||||
public class Export3DAutoCADImagesToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(Export3DAutoCADImagesToPDF.class) + "ExportingCAD/";
|
||||
//ExStart:Export3DAutoCADImagesToPDF
|
||||
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
Image cadImage = Image.load(srcFile);
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(500);
|
||||
rasterizationOptions.setPageHeight(500);
|
||||
// rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D);
|
||||
|
||||
rasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
cadImage.save(dataDir + "Export3DImagestoPDF_out_.pdf", pdfOptions);
|
||||
//ExStart:Export3DAutoCADImagesToPDF
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package com.aspose.cad.examples.ExportingCAD;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.InterpolationMode;
|
||||
import com.aspose.cad.SmoothingMode;
|
||||
import com.aspose.cad.TextRenderingHint;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
//import com.aspose.cad.imageoptions.TypeOfEntities;
|
||||
|
||||
public class ExportCADLayoutsToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportCADLayoutsToPDF.class) + "ExportingCAD/";
|
||||
//ExStart:ExportCADLayoutsToPDF
|
||||
String srcFile = dataDir + "conic_pyramid.dxf";
|
||||
|
||||
// Create an instance of CadImage class and load the file.
|
||||
Image cadImage = Image.load(srcFile);
|
||||
|
||||
// Create an instance of CadRasterizationOptions class
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
|
||||
// Set the Entities type property to Entities3D.
|
||||
// rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D);
|
||||
rasterizationOptions.setAutomaticLayoutsScaling(true);
|
||||
rasterizationOptions.setNoScaling (false);
|
||||
//rasterizationOptions.setScaleMethod(ScaleType.GrowToFit);
|
||||
rasterizationOptions.setContentAsBitmap(true);
|
||||
|
||||
// Set Layouts
|
||||
rasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
|
||||
// Create an instance of PDF options class
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
// Set Graphics options
|
||||
rasterizationOptions.getGraphicsOptions().setSmoothingMode(SmoothingMode.HighQuality);
|
||||
rasterizationOptions.getGraphicsOptions().setTextRenderingHint(TextRenderingHint.AntiAliasGridFit);
|
||||
rasterizationOptions.getGraphicsOptions().setInterpolationMode(InterpolationMode.HighQualityBicubic);
|
||||
|
||||
// Export to PDF by calling the Save method
|
||||
cadImage.save(dataDir + "CADLayoutsToPDF_out_.pdf", pdfOptions);
|
||||
//ExEnd:ExportCADLayoutsToPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.aspose.cad.examples.ExportingCAD;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.InterpolationMode;
|
||||
import com.aspose.cad.SmoothingMode;
|
||||
import com.aspose.cad.TextRenderingHint;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.BmpOptions;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
//import com.aspose.cad.imageoptions.TypeOfEntities;
|
||||
|
||||
public class ExportToBMP {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportToBMP.class) + "ExportingCAD/";
|
||||
//ExStart:ExportToBMP
|
||||
String fileName = (dataDir + "site.dwf");
|
||||
|
||||
com.aspose.cad.Image image = com.aspose.cad.Image.load(fileName);
|
||||
|
||||
BmpOptions bmpOptions = new BmpOptions();
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
bmpOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
rasterizationOptions.setPageHeight(500);
|
||||
rasterizationOptions.setPageWidth(500);
|
||||
rasterizationOptions.setLayouts(new String[] { "Model" });
|
||||
// export
|
||||
String outPath = dataDir +"site.bmp";
|
||||
image.save(outPath, bmpOptions);
|
||||
|
||||
//ExEnd:ExportToBMP
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package com.aspose.cad.examples.ExportingCAD;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.InterpolationMode;
|
||||
import com.aspose.cad.SmoothingMode;
|
||||
import com.aspose.cad.TextRenderingHint;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
//import com.aspose.cad.imageoptions.TypeOfEntities;
|
||||
|
||||
public class ExportToPDF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
// The path to the resource directory.
|
||||
String dataDir = Utils.getDataDir(ExportToPDF.class) + "ExportingCAD/";
|
||||
//ExStart:ExportToPDF
|
||||
String fileName = (dataDir +"site.dwf");
|
||||
com.aspose.cad.Image image = com.aspose.cad.Image.load(fileName);
|
||||
{
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
rasterizationOptions.setPageHeight(500);
|
||||
rasterizationOptions.setPageWidth(500);
|
||||
rasterizationOptions.setLayouts(new String[] { "Model" });
|
||||
// export
|
||||
String outPath = dataDir + "site.pdf";
|
||||
image.save(outPath, pdfOptions);
|
||||
}
|
||||
|
||||
//ExEnd:ExportToPDF
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
|
||||
public class AccessingUnderlayFlagsofDWG
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:AccessingUnderlayFlagsofDWG
|
||||
String dataDir = Utils.getDataDir(AccessingUnderlayFlagsofDWG.class) + "DWGDrawings/";
|
||||
String fileName = dataDir + "BlockRefDgn.dwg";
|
||||
|
||||
// Load an existing DWG file and convert it into CadImage
|
||||
com.aspose.cad.fileformats.cad.CadImage image = (com.aspose.cad.fileformats.cad.CadImage) com.aspose.cad.Image.load(fileName);
|
||||
|
||||
// Go through each entity inside the DWG file
|
||||
for (com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity entity : image.getEntities())
|
||||
{
|
||||
|
||||
// Check if entity is of CadDgnUnderlay type
|
||||
if (entity instanceof com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay)
|
||||
{
|
||||
// Access different underlay flags
|
||||
com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay underlay = (com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay) entity;
|
||||
System.out.println(underlay.getUnderlayPath());
|
||||
System.out.println(underlay.getUnderlayName());
|
||||
System.out.println(underlay.getInsertionPoint().getX());
|
||||
System.out.println(underlay.getInsertionPoint().getY());
|
||||
System.out.println(underlay.getRotationAngle());
|
||||
System.out.println(underlay.getScaleX());
|
||||
System.out.println(underlay.getScaleY());
|
||||
System.out.println(underlay.getScaleZ());
|
||||
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn);
|
||||
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn);
|
||||
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome) != com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//ExEnd:AccessingUnderlayFlagsofDWG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
|
||||
|
||||
|
||||
public class ExportDGNAsPartofDWG
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:ExportDGNAsPartofDWG
|
||||
|
||||
// Input and Output file paths
|
||||
String dataDir = Utils.getDataDir(ExportDGNAsPartofDWG.class) + "ExportingDGN/";
|
||||
// Input and Output file paths
|
||||
String fileName = dataDir + "BlockRefDgn.dwg";
|
||||
String outPath = dataDir +"BlockRefDgn.dwg.pdf";
|
||||
|
||||
// Create an instance of PdfOptions class as we are exporting the DWG file to PDF format
|
||||
com.aspose.cad.imageoptions.PdfOptions exportOptions = new com.aspose.cad.imageoptions.PdfOptions();
|
||||
|
||||
// Load any existing DWG file as image and convert it to CadImage type
|
||||
com.aspose.cad.fileformats.cad.CadImage cadImage = (com.aspose.cad.fileformats.cad.CadImage) com.aspose.cad.Image.load(fileName);
|
||||
|
||||
// Go through each entity inside the DWG file
|
||||
for (com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity baseEntity : cadImage.getEntities())
|
||||
{
|
||||
// Check if entity is an image definition
|
||||
if (baseEntity.getTypeName() == com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName.DGNUNDERLAY)
|
||||
{
|
||||
com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay dgnFile = (com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay)baseEntity;
|
||||
|
||||
// Get external reference to object
|
||||
System.out.println(dgnFile.getUnderlayPath());
|
||||
}
|
||||
}
|
||||
|
||||
// Define settings for CadRasterizationOptions object
|
||||
com.aspose.cad.imageoptions.CadRasterizationOptions vectorRasterizationOptions = new com.aspose.cad.imageoptions.CadRasterizationOptions();
|
||||
vectorRasterizationOptions.setPageWidth(1600);
|
||||
vectorRasterizationOptions.setPageHeight(1600);
|
||||
vectorRasterizationOptions.setLayouts(new String[] { "Model" });
|
||||
vectorRasterizationOptions.setAutomaticLayoutsScaling(false);
|
||||
vectorRasterizationOptions.setNoScaling(true);
|
||||
|
||||
vectorRasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlack());
|
||||
vectorRasterizationOptions.setDrawType(com.aspose.cad.fileformats.cad.CadDrawTypeMode.UseObjectColor);
|
||||
|
||||
// Set Vector Rasterization Options
|
||||
exportOptions.setVectorRasterizationOptions(vectorRasterizationOptions);
|
||||
|
||||
// Export the DWG to PDF by calling Save method
|
||||
cadImage.save(outPath, exportOptions);
|
||||
|
||||
//ExEnd:ExportDGNAsPartofDWG
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ExportEmbeddedDGN
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// Input and Output file paths
|
||||
//ExStart:ExportEmbeddedDGN
|
||||
|
||||
String dataDir = Utils.getDataDir(ExportEmbeddedDGN.class) + "ExportingDGN/";
|
||||
String fileName = dataDir + "BlockRefDgn.dwg";
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(fileName);
|
||||
{
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setLayouts(new String[] {"Model"});
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
objImage.save(dataDir + "BlockRefDgn.pdf", pdfOptions);
|
||||
}
|
||||
//ExEnd:ExportEmbeddedDGN
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
public class ExportingDGNAutoCADFormatToPDF {
|
||||
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
|
||||
// Input and Output file paths
|
||||
String dataDir = Utils.getDataDir(ExportingDGNAutoCADFormatToPDF.class) + "ExportingDGN/";
|
||||
//ExStart:SupportForDGNV7
|
||||
String fileName = dataDir + "Nikon_D90_Camera.dgn";
|
||||
String outFile = dataDir + "Nikon_D90_Camera.dgn";
|
||||
|
||||
DgnImage objImage = (DgnImage)com.aspose.cad.Image.load(fileName);
|
||||
|
||||
PdfOptions options = new PdfOptions();
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageWidth(1500);
|
||||
vectorOptions.setPageHeight(1500);
|
||||
vectorOptions.setAutomaticLayoutsScaling(true);
|
||||
vectorOptions.setLayouts(new String[] { "1", "2", "3", "9" });//only export 4 (1,2,3 and 9) views
|
||||
options.setVectorRasterizationOptions(vectorOptions);
|
||||
|
||||
objImage.save(outFile, options);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.ImageOptionsBase;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
|
||||
import com.aspose.cad.imageoptions.JpegOptions;
|
||||
|
||||
public class ExportingDGNAutoCADFormatToRasterImageFormat {
|
||||
|
||||
public static void main(String[] args) throws FileNotFoundException
|
||||
{
|
||||
|
||||
String dataDir = Utils.getDataDir(ExportingDGNAutoCADFormatToRasterImageFormat.class) + "ExportingDGN/";
|
||||
//ExStart:ExportingDGNAutoCADFormatToRasterImageFormat
|
||||
|
||||
// Load an existing DGN file as DgnImage.
|
||||
DgnImage dgnImage = (DgnImage) Image.load(dataDir + "Nikon_D90_Camera.dgn");
|
||||
|
||||
// Create an object of JpegOptions class as we are converting the DGN to JPEG and assign DgnRasterizationOptions object to it.
|
||||
ImageOptionsBase options = new JpegOptions();
|
||||
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageWidth(600);
|
||||
vectorOptions.setPageHeight(400);
|
||||
|
||||
vectorOptions.setNoScaling(true);
|
||||
|
||||
vectorOptions.setAutomaticLayoutsScaling(false);
|
||||
|
||||
options.setVectorRasterizationOptions(vectorOptions);
|
||||
|
||||
OutputStream outStream = new FileOutputStream(dataDir + "ExportDGNToRasterImage_Out.jpg");
|
||||
|
||||
// Call the save method of the CadImage class object.
|
||||
dgnImage.save(outStream, options);
|
||||
|
||||
//ExEnd:ExportingDGNAutoCADFormatToRasterImageFormat
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import com.aspose.cad.Color;
|
||||
|
||||
import java.awt.Image;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.fileformats.dgn.DgnElementType;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.fileformats.dgn.dgnelements.DgnDrawingElementBase;
|
||||
|
||||
public class SupportForDGNV7
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// Input and Output file paths
|
||||
String dataDir = Utils.getDataDir(SupportForDGNV7.class) + "ExportingDGN/";
|
||||
//ExStart:SupportForDGNV7
|
||||
String fileName = dataDir + "Nikon_D90_Camera.dgn";
|
||||
String outFile = dataDir + "Nikon_D90_Camera.dgn";
|
||||
|
||||
DgnImage objImage = (DgnImage)com.aspose.cad.Image.load(fileName);
|
||||
|
||||
PdfOptions options = new PdfOptions();
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageWidth(1500);
|
||||
vectorOptions.setPageHeight(1500);
|
||||
vectorOptions.setAutomaticLayoutsScaling(true);
|
||||
vectorOptions.setBackgroundColor(Color.getBlack());
|
||||
vectorOptions.setLayouts(new String[] { "1", "2", "3", "9" });//only export 4 (1,2,3 and 9) views
|
||||
options.setVectorRasterizationOptions(vectorOptions);
|
||||
|
||||
objImage.save(outFile, options);
|
||||
|
||||
//ExEnd:SupportForDGNV7
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package com.aspose.cad.examples.ExportingDGN;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.dgn.DgnElementType;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.fileformats.dgn.dgnelements.DgnDrawingElementBase;
|
||||
|
||||
|
||||
|
||||
public class SupportedDGNElements
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String dataDir = Utils.getDataDir(SupportedDGNElements.class) + "ExportingDGN/";
|
||||
//ExStart:SupportedDGNElements
|
||||
// Input and Output file paths
|
||||
String fileName = "BlockRefDgn.dwg";
|
||||
String outPath = "BlockRefDgn.dwg.pdf";
|
||||
|
||||
DgnImage dgnImage = (DgnImage)Image.load(dataDir);
|
||||
{
|
||||
for (DgnDrawingElementBase element : dgnImage.getElements())
|
||||
{
|
||||
switch (element.getMetadata().getType())
|
||||
{
|
||||
case DgnElementType.Line:
|
||||
case DgnElementType.Ellipse:
|
||||
case DgnElementType.Curve:
|
||||
case DgnElementType.BSplineCurveHeader:
|
||||
case DgnElementType.Arc:
|
||||
case DgnElementType.Shape:
|
||||
case DgnElementType.PolyLine:
|
||||
case DgnElementType.TextNode:
|
||||
case DgnElementType.Text:
|
||||
case DgnElementType.ComplexShapeHeader:
|
||||
case DgnElementType.ComplexChainHeader:
|
||||
{
|
||||
//previously supported entities, now supported also for 3D
|
||||
break;
|
||||
}
|
||||
|
||||
case DgnElementType.SolidHeader3D:
|
||||
case DgnElementType.Cone:
|
||||
case DgnElementType.CellHeader:
|
||||
{
|
||||
//supported 3D entities
|
||||
break;
|
||||
}
|
||||
}
|
||||
//ExEnd:SupportedDGNElements
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
|
||||
|
||||
package com.aspose.cad.examples.Features;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.Cad3DPoint;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadMText;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadText;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class AddWatermark {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
//ExStart:AddWatermark
|
||||
String dataDir = Utils.getDataDir(AddWatermark.class) + "DWGDrawings/";
|
||||
// Path to source file
|
||||
String sourceFilePath = dataDir+"Drawing11.dwg";
|
||||
|
||||
CadImage cadImage = (CadImage) Image.load(sourceFilePath);
|
||||
|
||||
//add new MTEXT
|
||||
CadMText watermark = new CadMText();
|
||||
watermark.setText("Watermark message");
|
||||
watermark.setInitialTextHeight(40);
|
||||
watermark.setInsertionPoint(new Cad3DPoint(300, 40));
|
||||
watermark.setLayerName("0");
|
||||
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(watermark);
|
||||
|
||||
|
||||
|
||||
// or add more simple entity like Text
|
||||
CadText text = new CadText();
|
||||
text.setDefaultValue("Watermark text");
|
||||
text.setTextHeight(40);
|
||||
text.setFirstAlignment(new Cad3DPoint(300, 40));
|
||||
text.setLayerName("0") ;
|
||||
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(text);
|
||||
|
||||
|
||||
|
||||
// export to pdf
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1600);
|
||||
rasterizationOptions.setPageHeight(1600);
|
||||
rasterizationOptions.setLayouts(new String[]{"Model"});
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
cadImage.save(dataDir + "AddWatermark_out.pdf", pdfOptions);
|
||||
//ExEnd:AddWatermark
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
|
||||
|
||||
package com.aspose.cad.examples.Features;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class CFFToPDF {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
//ExStart:CFFToPDF
|
||||
String dataDir = Utils.getDataDir(CFFToPDF.class) + "CFF/";
|
||||
// Path to source file
|
||||
String sourceFilePath = dataDir+"WineBottle_Die.cf2";
|
||||
|
||||
Image image = Image.load(sourceFilePath);
|
||||
{
|
||||
PdfOptions options = new PdfOptions();
|
||||
image.save(dataDir + "WineBottle_Die_out.pdf",options);
|
||||
}
|
||||
|
||||
|
||||
//ExEnd:CFFToPDF
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
|
||||
package com.aspose.cad.examples.Features;
|
||||
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.ObserverPoint;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
|
||||
|
||||
public class FreePointOfView {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
|
||||
//ExStart:FreePointOfView
|
||||
String dataDir = Utils.getDataDir(FreePointOfView.class) + "CADConversion/";
|
||||
// Path to source file
|
||||
String sourceFilePath = dataDir+"conic_pyramid.dxf";
|
||||
|
||||
// Load a CAD drawing in an instance of Image
|
||||
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(sourceFilePath);
|
||||
|
||||
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
|
||||
cadRasterizationOptions.setPageHeight(1500);
|
||||
cadRasterizationOptions.setPageWidth(1500);
|
||||
// Create an instance of JpegOptions class
|
||||
com.aspose.cad.imageoptions.JpegOptions options = new com.aspose.cad.imageoptions.JpegOptions();
|
||||
|
||||
options.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
|
||||
float xAngle = 10; //Angle of rotation along the X axis
|
||||
float yAngle = 30; //Angle of rotation along the Y axis
|
||||
float zAngle = 40; //Angle of rotation along the Z axis
|
||||
|
||||
ObserverPoint obvPoint = new ObserverPoint(xAngle,yAngle,zAngle);
|
||||
cadRasterizationOptions.setObserverPoint(obvPoint);
|
||||
|
||||
options.setVectorRasterizationOptions(cadRasterizationOptions);
|
||||
|
||||
//Saving to Image
|
||||
objImage.save(dataDir+"FreePointOfView_out.jpeg", options);
|
||||
//ExEnd:FreePointOfView
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package com.aspose.cad.examples.Features;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.InterruptionTokenSource;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class PutTimeoutOnSave {
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
//ExStart:1
|
||||
final String SourceDir = Utils.getDataDir_DWGDrawings();
|
||||
final String OutputDir = Utils.getDataDir_Output();
|
||||
final InterruptionTokenSource source = new com.aspose.cad.InterruptionTokenSource();
|
||||
try {
|
||||
final CadImage cadImageBig = (CadImage)Image.load(SourceDir + "Drawing11.dwg");
|
||||
try {
|
||||
CadRasterizationOptions rasterizationOptionsBig = new CadRasterizationOptions();
|
||||
rasterizationOptionsBig.setPageWidth(cadImageBig.getSize().getWidth() / 2);
|
||||
rasterizationOptionsBig.setPageHeight(cadImageBig.getSize().getHeight() / 2);
|
||||
|
||||
final PdfOptions CADfBig = new PdfOptions();
|
||||
CADfBig.setVectorRasterizationOptions(rasterizationOptionsBig);
|
||||
CADfBig.setInterruptionToken(source.getToken());
|
||||
|
||||
java.lang.Thread thread = new java.lang.Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
cadImageBig.save(OutputDir + "PutTimeoutOnSave_out.pdf", CADfBig);
|
||||
} catch (Throwable th) {
|
||||
System.out.println("interrupted !!!");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
thread.start();
|
||||
TimeUnit.SECONDS.sleep(3);
|
||||
source.interrupt();
|
||||
thread.join();
|
||||
} finally {
|
||||
cadImageBig.dispose();
|
||||
}
|
||||
} finally {
|
||||
source.dispose();
|
||||
}
|
||||
//ExEnd:1
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
|
||||
|
||||
package com.aspose.cad.examples.Features;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.SizeF;
|
||||
import com.aspose.cad.examples.DWGDrawings.ExportOLEObjects;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
import com.aspose.cad.imageoptions.VectorRasterizationOptions;
|
||||
|
||||
|
||||
public class SinglePDFWithDifferentLayouts {
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
|
||||
//ExStart:SinglePDFWithDifferentLayouts
|
||||
String dataDir = Utils.getDataDir(SinglePDFWithDifferentLayouts.class) + "DWGDrawings/";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(dataDir + "City skyway map.dwg");
|
||||
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(1000);
|
||||
rasterizationOptions.setPageHeight(1000);
|
||||
|
||||
//custom sizes for several layouts
|
||||
rasterizationOptions.getLayoutPageSizes().addItem("ANSI C Plot", new SizeF(500, 1000));
|
||||
rasterizationOptions.getLayoutPageSizes().addItem("8.5 x 11 Plot", new SizeF(1000, 100));
|
||||
|
||||
PdfOptions pdfOptions = new PdfOptions();
|
||||
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
|
||||
cadImage.save(dataDir + "singlePDF_out.pdf", pdfOptions);
|
||||
|
||||
|
||||
|
||||
//ExEnd:SinglePDFWithDifferentLayouts
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
|
||||
package com.aspose.cad.examples.Hyperlinks;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadBlockEntity;
|
||||
import com.aspose.cad.fileformats.cad.cadobjects.CadInsertObject;
|
||||
|
||||
|
||||
public class EditHyperlink {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:EditHyperlink
|
||||
String dataDir = Utils.getDataDir(EditHyperlink.class) + "DWGDrawings/";
|
||||
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(dataDir + "AutoCad_Sample.dwg");
|
||||
for (CadBaseEntity entity : cadImage.getEntities())
|
||||
{
|
||||
if (entity instanceof CadInsertObject)
|
||||
{
|
||||
CadBlockEntity block = cadImage.getBlockEntities().get_Item(((CadInsertObject)entity).getName());
|
||||
String value = block.getXRefPathName().getValue();
|
||||
if (value != null && !value.contentEquals(""))
|
||||
{
|
||||
block.getXRefPathName().setValue("new file reference.dwg");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (entity.getHyperlink() == "https://products.aspose.com")
|
||||
{
|
||||
entity.setHyperlink("https://www.aspose.com");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ExEnd:EditHyperlink
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.IFCDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.ifc.IfcImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
|
||||
public class ExportIFCToPNG {
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String dataDir = Utils.getDataDir(ExportIFCToPNG.class) + "ExportingIFC/";
|
||||
//ExStart:ExportIFCToPNG
|
||||
String fileName = dataDir +"example.ifc";
|
||||
IfcImage cadImage = (IfcImage)Image.load(fileName);
|
||||
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageWidth(1500);
|
||||
vectorOptions.setPageHeight(1500);
|
||||
|
||||
PngOptions pngOptions = new PngOptions();
|
||||
pngOptions.setVectorRasterizationOptions(vectorOptions);
|
||||
String outPath = dataDir + "example.png";
|
||||
cadImage.save(dataDir, pngOptions);
|
||||
|
||||
|
||||
//ExEnd:ExportIFCToPNG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
|
||||
package com.aspose.cad.examples.OBJDrawings;
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PdfOptions;
|
||||
|
||||
|
||||
public class SupportOfOBJ {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:SupportOfOBJ
|
||||
String dataDir = Utils.getDataDir(SupportOfOBJ.class) + "OBJDrawings/";
|
||||
|
||||
Image cadDoc = Image.load(dataDir + "example-580-W.obj");
|
||||
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
|
||||
rasterizationOptions.setPageWidth(cadDoc.getSize().getWidth());
|
||||
rasterizationOptions.setPageHeight(cadDoc.getSize().getHeight());
|
||||
PdfOptions CADf = new PdfOptions();
|
||||
CADf.setVectorRasterizationOptions(rasterizationOptions);
|
||||
cadDoc.save(dataDir + "example-580-W_custom.pdf", CADf);
|
||||
|
||||
//ExEnd:SupportOfOBJ
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.aspose.cad.examples.STLDrawings;
|
||||
|
||||
|
||||
import com.aspose.cad.Image;
|
||||
import com.aspose.cad.examples.Utils.Utils;
|
||||
import com.aspose.cad.fileformats.dgn.DgnImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.fileformats.cad.CadImage;
|
||||
import com.aspose.cad.imageoptions.CadRasterizationOptions;
|
||||
import com.aspose.cad.imageoptions.PngOptions;
|
||||
|
||||
public class ExportSTLToPNG {
|
||||
public static void main(String[] args)
|
||||
{
|
||||
//ExStart:ExportSTLToPNG
|
||||
String dataDir = Utils.getDataDir(ExportSTLToPNG.class) + "ExportingSTL/";
|
||||
String fileName = dataDir + "example.stl";
|
||||
|
||||
CadImage cadImage = (CadImage)Image.load(fileName);
|
||||
CadRasterizationOptions vectorOptions = new CadRasterizationOptions();
|
||||
vectorOptions.setPageWidth(1500);
|
||||
vectorOptions.setPageHeight(1500);
|
||||
|
||||
PngOptions pngOptions = new PngOptions();
|
||||
//pngOptions.setVectorRasterizationOptions(rasterizationOptions);
|
||||
String outPath = dataDir + "galeon.stl.png";
|
||||
cadImage.save(outPath, pngOptions);
|
||||
|
||||
//ExEnd:ExportSTLToPNG
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package com.aspose.cad.examples.Utils;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class Utils {
|
||||
|
||||
public static String getDataDir(Class c) {
|
||||
File dir = new File(System.getProperty("user.dir"));
|
||||
dir = new File(dir, "src");
|
||||
dir = new File(dir, "main");
|
||||
dir = new File(dir, "resources");
|
||||
|
||||
return dir.toString() + File.separator;
|
||||
}
|
||||
|
||||
public static String getDataDir_Output() {
|
||||
File dir = new File(System.getProperty("user.dir"));
|
||||
dir = new File(dir, "src");
|
||||
dir = new File(dir, "main");
|
||||
dir = new File(dir, "resources");
|
||||
|
||||
return dir.toString() + File.separator + "01_OutputDirectory" + File.separator;
|
||||
}
|
||||
|
||||
public static String getDataDir_DWGDrawings() {
|
||||
File dir = new File(System.getProperty("user.dir"));
|
||||
dir = new File(dir, "src");
|
||||
dir = new File(dir, "main");
|
||||
dir = new File(dir, "resources");
|
||||
|
||||
return dir.toString() + File.separator + "DWGDrawings" + File.separator;
|
||||
}
|
||||
|
||||
public static String getDataDir_DXFDrawings() {
|
||||
File dir = new File(System.getProperty("user.dir"));
|
||||
dir = new File(dir, "src");
|
||||
dir = new File(dir, "main");
|
||||
dir = new File(dir, "resources");
|
||||
|
||||
return dir.toString() + File.separator + "DXFDrawings" + File.separator;
|
||||
}
|
||||
|
||||
public static String getDataDir_DWFXDrawings() {
|
||||
File dir = new File(System.getProperty("user.dir"));
|
||||
dir = new File(dir, "src");
|
||||
dir = new File(dir, "main");
|
||||
dir = new File(dir, "resources");
|
||||
|
||||
return dir.toString() + File.separator + "DWFXDrawings" + File.separator;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,287 @@
|
||||
PLATE.001 SAMPLE MECHANICAL PART WITH ANNOTATION S 1
|
||||
USED AT AUTOFACT - OCTOBER 1982 AND IN VERSION 3.0 APPENDIX A S 2
|
||||
S 3
|
||||
ENTITY CONTENT: POINT, LINE, ARC and CONIC S 4
|
||||
LINEAR, ANGULAR, RADIUS, POINT and ORDINATE DIMENSION S 5
|
||||
GENERAL NOTE, GENERAL LABEL S 6
|
||||
S 7
|
||||
,,8HPANEL123,10HPANEL.IGES,4HEX 2,4HHAND,16,38,7,38,14,8HPANEL123,1.0, G 1
|
||||
1,4HINCH,1,0.028,13H900729.231652,0.0005,100.0, G 2
|
||||
25HIGES RFC Review Committee,8HIPO/NIST,6,0; G 3
|
||||
124 1 1 1 0 0 0 0 0D 1
|
||||
124 0 0 2 0 0D 2
|
||||
212 3 1 1 5 0 0 0 10100D 3
|
||||
212 0 0 2 0 0D 4
|
||||
214 5 1 1 5 0 0 0 10100D 5
|
||||
214 0 0 1 2 0D 6
|
||||
210 6 1 1 5 0 0 0 101D 7
|
||||
210 0 0 1 0 0D 8
|
||||
110 7 1 1 1 0 0 0 0D 9
|
||||
110 0 0 1 0 0D 10
|
||||
110 8 1 1 1 0 0 0 0D 11
|
||||
110 0 0 1 0 0D 12
|
||||
110 9 1 1 1 0 0 0 0D 13
|
||||
110 0 0 1 0 0D 14
|
||||
110 10 1 1 1 0 0 0 0D 15
|
||||
110 0 0 1 0 0D 16
|
||||
100 11 1 1 1 0 0 0 0D 17
|
||||
100 0 0 1 0 0D 18
|
||||
100 12 1 1 1 0 0 0 0D 19
|
||||
100 0 0 1 0 0D 20
|
||||
100 13 1 1 1 0 0 0 0D 21
|
||||
100 0 0 1 0 0D 22
|
||||
100 14 1 1 1 0 0 0 0D 23
|
||||
100 0 0 1 0 0D 24
|
||||
116 15 1 1 2 0 0 0 0D 25
|
||||
116 0 0 1 0 0D 26
|
||||
116 16 1 1 2 0 0 0 0D 27
|
||||
116 0 0 1 0 0D 28
|
||||
116 17 1 1 2 0 0 0 0D 29
|
||||
116 0 0 1 0 0D 30
|
||||
116 18 1 1 2 0 0 0 0D 31
|
||||
116 0 0 1 0 0D 32
|
||||
104 19 1 1 3 0 1 0 0D 33
|
||||
104 0 0 2 1 0D 34
|
||||
116 21 1 1 2 0 0 0 0D 35
|
||||
116 0 0 1 0 0D 36
|
||||
116 22 1 1 2 0 0 0 0D 37
|
||||
116 0 0 1 0 0D 38
|
||||
212 23 1 1 4 0 0 0 10100D 39
|
||||
212 0 0 1 0 0D 40
|
||||
214 24 1 1 4 0 0 0 10100D 41
|
||||
214 0 0 1 2 0D 42
|
||||
214 25 1 1 4 0 0 0 10100D 43
|
||||
214 0 0 1 2 0D 44
|
||||
106 26 1 1 4 0 0 0 10100D 45
|
||||
106 0 0 1 40 0D 46
|
||||
106 27 1 1 4 0 0 0 10100D 47
|
||||
106 0 0 1 40 0D 48
|
||||
216 28 1 1 4 0 0 0 101D 49
|
||||
216 0 0 1 0 0D 50
|
||||
212 29 1 1 4 0 0 0 10100D 51
|
||||
212 0 0 1 0 0D 52
|
||||
214 30 1 1 4 0 0 0 10100D 53
|
||||
214 0 0 1 2 0D 54
|
||||
214 31 1 1 4 0 0 0 10100D 55
|
||||
214 0 0 1 2 0D 56
|
||||
106 32 1 1 4 0 0 0 10100D 57
|
||||
106 0 0 1 40 0D 58
|
||||
106 33 1 1 4 0 0 0 10100D 59
|
||||
106 0 0 1 40 0D 60
|
||||
216 34 1 1 4 0 0 0 101D 61
|
||||
216 0 0 1 0 0D 62
|
||||
212 35 1 1 5 0 0 0 10100D 63
|
||||
212 0 0 1 0 0D 64
|
||||
106 36 1 1 5 0 0 0 10100D 65
|
||||
106 0 0 1 40 0D 66
|
||||
218 37 1 1 5 0 0 0 101D 67
|
||||
218 0 0 1 0 0D 68
|
||||
212 38 1 1 5 0 0 0 10100D 69
|
||||
212 0 0 1 0 0D 70
|
||||
106 39 1 1 5 0 0 0 10100D 71
|
||||
106 0 0 1 40 0D 72
|
||||
218 40 1 1 5 0 0 0 101D 73
|
||||
218 0 0 1 0 0D 74
|
||||
212 41 1 1 5 0 0 0 10100D 75
|
||||
212 0 0 1 0 0D 76
|
||||
106 42 1 1 5 0 0 0 10100D 77
|
||||
106 0 0 1 40 0D 78
|
||||
218 43 1 1 5 0 0 0 101D 79
|
||||
218 0 0 1 0 0D 80
|
||||
212 44 1 1 5 0 0 0 10100D 81
|
||||
212 0 0 1 0 0D 82
|
||||
106 45 1 1 5 0 0 0 10100D 83
|
||||
106 0 0 1 40 0D 84
|
||||
218 46 1 1 5 0 0 0 101D 85
|
||||
218 0 0 1 0 0D 86
|
||||
212 47 1 1 5 0 0 0 10100D 87
|
||||
212 0 0 1 0 0D 88
|
||||
106 48 1 1 5 0 0 0 10100D 89
|
||||
106 0 0 1 40 0D 90
|
||||
218 49 1 1 5 0 0 0 101D 91
|
||||
218 0 0 1 0 0D 92
|
||||
212 50 1 1 5 0 0 0 10100D 93
|
||||
212 0 0 1 0 0D 94
|
||||
106 51 1 1 5 0 0 0 10100D 95
|
||||
106 0 0 1 40 0D 96
|
||||
218 52 1 1 5 0 0 0 101D 97
|
||||
218 0 0 1 0 0D 98
|
||||
212 53 1 1 5 0 0 0 10100D 99
|
||||
212 0 0 2 0 0D 100
|
||||
106 55 1 1 5 0 0 0 10100D 101
|
||||
106 0 0 1 40 0D 102
|
||||
218 56 1 1 5 0 0 0 101D 103
|
||||
218 0 0 1 0 0D 104
|
||||
212 57 1 1 5 0 0 0 10100D 105
|
||||
212 0 0 2 0 0D 106
|
||||
106 59 1 1 5 0 0 0 10100D 107
|
||||
106 0 0 1 40 0D 108
|
||||
218 60 1 1 5 0 0 0 101D 109
|
||||
218 0 0 1 0 0D 110
|
||||
212 61 1 1 5 0 0 0 10100D 111
|
||||
212 0 0 2 0 0D 112
|
||||
214 63 1 1 5 0 0 0 10100D 113
|
||||
214 0 0 1 2 0D 114
|
||||
222 64 1 1 5 0 0 0 101D 115
|
||||
222 0 0 1 0 0D 116
|
||||
212 65 1 1 6 0 0 0 10100D 117
|
||||
212 0 0 1 0 0D 118
|
||||
214 66 1 1 6 0 0 0 10100D 119
|
||||
214 0 0 1 2 0D 120
|
||||
214 67 1 1 6 0 0 0 10100D 121
|
||||
214 0 0 1 2 0D 122
|
||||
106 68 1 1 6 0 0 0 1010100D 123
|
||||
106 0 0 1 40 0D 124
|
||||
106 69 1 1 6 0 0 0 10100D 125
|
||||
106 0 0 1 40 0D 126
|
||||
216 70 1 1 6 0 0 0 101D 127
|
||||
216 0 0 1 0 0D 128
|
||||
212 71 1 1 6 0 0 0 10100D 129
|
||||
212 0 0 1 0 0D 130
|
||||
214 72 1 1 6 0 0 0 10100D 131
|
||||
214 0 0 1 2 0D 132
|
||||
214 73 1 1 6 0 0 0 10100D 133
|
||||
214 0 0 1 2 0D 134
|
||||
106 74 1 1 6 0 0 0 10100D 135
|
||||
106 0 0 1 40 0D 136
|
||||
106 75 1 1 6 0 0 0 1010100D 137
|
||||
106 0 0 1 40 0D 138
|
||||
216 76 1 1 6 0 0 0 101D 139
|
||||
216 0 0 1 0 0D 140
|
||||
212 77 1 1 6 0 0 0 10100D 141
|
||||
212 0 0 1 0 0D 142
|
||||
214 78 1 1 6 0 0 0 10100D 143
|
||||
214 0 0 1 2 0D 144
|
||||
214 79 1 1 6 0 0 0 10100D 145
|
||||
214 0 0 1 2 0D 146
|
||||
106 80 1 1 6 0 0 0 10100D 147
|
||||
106 0 0 1 40 0D 148
|
||||
106 81 1 1 6 0 0 0 10100D 149
|
||||
106 0 0 1 40 0D 150
|
||||
216 82 1 1 6 0 0 0 101D 151
|
||||
216 0 0 1 0 0D 152
|
||||
212 83 1 1 6 0 0 0 10100D 153
|
||||
212 0 0 1 0 0D 154
|
||||
214 84 1 1 6 0 0 0 10100D 155
|
||||
214 0 0 1 2 0D 156
|
||||
214 85 1 1 6 0 0 0 10100D 157
|
||||
214 0 0 1 2 0D 158
|
||||
106 86 1 1 6 0 0 0 10100D 159
|
||||
106 0 0 1 40 0D 160
|
||||
106 87 1 1 6 0 0 0 10100D 161
|
||||
106 0 0 1 40 0D 162
|
||||
216 88 1 1 6 0 0 0 101D 163
|
||||
216 0 0 1 0 0D 164
|
||||
110 89 1 4 6 0 0 0 100D 165
|
||||
110 0 0 1 0 0D 166
|
||||
110 90 1 4 6 0 0 0 100D 167
|
||||
110 0 0 1 0 0D 168
|
||||
212 91 1 1 6 0 0 0 10100D 169
|
||||
212 0 0 1 0 0D 170
|
||||
214 92 1 1 6 0 0 0 10100D 171
|
||||
214 0 0 1 2 0D 172
|
||||
214 93 1 1 6 0 0 0 10100D 173
|
||||
214 0 0 1 2 0D 174
|
||||
106 94 1 1 6 0 0 0 1010100D 175
|
||||
106 0 0 1 40 0D 176
|
||||
106 95 1 1 6 0 0 0 1010100D 177
|
||||
106 0 0 1 40 0D 178
|
||||
202 96 1 1 6 0 0 0 101D 179
|
||||
202 0 0 1 0 0D 180
|
||||
124,0.70710678,-0.70710678,0.0,1.0,0.70710678,0.70710678,0.0, 1P 1
|
||||
1.0,0.0,0.0,1.0,0.0,0,0; 1P 2
|
||||
212,2,10,0.98,0.1,1,1.571,0.0,0,0,3.21,1.656,0.0,10HDRILL .010, 3P 3
|
||||
10,1.02,0.1,1,1.571,0.0,0,0,3.210,1.506,0.0,10H(6 PLACES),0,0; 3P 4
|
||||
214,2,0.150,0.050,0.0,4.800,2.000,4.562,1.546,4.262,1.546,0,0; 5P 5
|
||||
210,3,1,5,0,0; 7P 6
|
||||
110,0.0,0.200,0.0,0.0,3.000,0.0,0,0; 9P 7
|
||||
110,0.200,0.0,0.0,4.800,0.0,0.0,0,0; 11P 8
|
||||
110,5.000,0.200,0.0,5.000,3.000,0.0,0,0; 13P 9
|
||||
110,0.200,3.200,0.0,4.800,3.200,0.0,0,0; 15P 10
|
||||
100,0.0,4.800,3.000,5.000,3.000,4.800,3.200,0,0; 17P 11
|
||||
100,0.0,0.200,3.000,0.200,3.200,0.0,3.000,0,0; 19P 12
|
||||
100,0.0,0.200,0.200,0.0,0.200,0.200,0.00,0,0; 21P 13
|
||||
100,0.0,4.800,0.200,4.800,0.0,5.000,0.200,0,0; 23P 14
|
||||
116,4.000,3.000,0.0,0,0,0; 25P 15
|
||||
116,3.000,3.000,0.0,0,0,0; 27P 16
|
||||
116,2.000,3.000,0.0,0,0,0; 29P 17
|
||||
116,1.000,3.000,0.0,0,0,0; 31P 18
|
||||
104,4.000,0.0,16.000,0.0,0.0,-1.000,0.0,0.500,0.0,0.500,0.0, 33P 19
|
||||
0,0; 33P 20
|
||||
116,4.800,1.000,0.0,0,0,0; 35P 21
|
||||
116,4.800,2.000,0.0,0,0,0; 37P 22
|
||||
212,1,3,0.421,0.156,1,1.571,0.0,0,0,-0.639,1.614,0.0,3H3.2,0,0; 39P 23
|
||||
214,1,0.150,0.050,0.0,-0.454,3.200,-0.454,1.870,0,0; 41P 24
|
||||
214,1,0.150,0.050,0.0,-0.454,0.0,-0.454,1.514,0,0; 43P 25
|
||||
106,1,3,0.0,0.0,3.200,-0.094,3.200,-0.579,3.200,0,0; 45P 26
|
||||
106,1,3,0.0,0.0,0.0,-0.094,0.0,-0.579,0.0,0,0; 47P 27
|
||||
216,39,41,43,45,47,0,0; 49P 28
|
||||
212,1,3,0.437,0.156,1,1.571,0.0,0,0,2.032,-0.447,0.0,3H5.0,0,0; 51P 29
|
||||
214,1,0.150,0.050,0.0,0.0,-0.369,1.932,-0.369,0,0; 53P 30
|
||||
214,1,0.150,0.050,0.0,5.000,-0.369,2.519,-0.369,0,0; 55P 31
|
||||
106,1,3,0.0,0.0,0.0,0.0,-0.094,0.0,-0.494,0,0; 57P 32
|
||||
106,1,3,0.0,5.000,0.0,5.000,-0.094,5.000,-0.494,0,0; 59P 33
|
||||
216,51,53,55,57,59,0,0; 61P 34
|
||||
212,1,3,0.374,0.156,1,1.571,1.571,0,0,4.078,4.181,0.0,3H1.0,0,0; 63P 35
|
||||
106,1,3,0.0,4.000,3.094,4.000,3.188,4.000,3.993,0,0; 65P 36
|
||||
218,63,65,0,0; 67P 37
|
||||
212,1,3,0.421,0.156,1,1.571,1.571,0,0,3.078,4.183,0.0,3H2.0,0,0; 69P 38
|
||||
106,1,3,0.0,3.000,3.094,3.000,3.188,3.000,3.996,0,0; 71P 39
|
||||
218,69,71,0,0; 73P 40
|
||||
212,1,3,0.437,0.156,1,1.571,1.571,0,0,2.078,4.177,0.0,3H3.0,0,0; 75P 41
|
||||
106,1,3,0.0,2.000,3.094,2.000,3.188,2.000,3.989,0,0; 77P 42
|
||||
218,75,77,0,0; 79P 43
|
||||
212,1,3,0.437,0.156,1,1.571,1.571,0,0,1.078,4.177,0.0,3H4.0,0,0; 81P 44
|
||||
106,1,3,0.0,1.000,3.094,1.000,3.188,1.000,3.989,0,0; 83P 45
|
||||
218,81,83,0,0; 85P 46
|
||||
212,1,3,0.374,0.156,1,1.571,0.0,0,0,6.211,0.922,0.0,3H1.0,0,0; 87P 47
|
||||
106,1,3,0.0,4.894,1.000,4.988,1.000,6.024,1.000,0,0; 89P 48
|
||||
218,87,89,0,0; 91P 49
|
||||
212,1,3,0.421,0.156,1,1.571,0.0,0,0,6.211,1.922,0.0,3H2.0,0,0; 93P 50
|
||||
106,1,3,0.0,4.894,2.000,4.988,2.000,6.024,2.000,0,0; 95P 51
|
||||
218,93,95,0,0; 97P 52
|
||||
212,1,7,1.248,0.156,1,1.571,0.,0,0,6.23,-0.078,0.0,7HDATUM B,0, 99P 53
|
||||
0; 99P 54
|
||||
106,1,3,0.0,5.094,0.0,5.188,0.0,6.042,0.0,0,0; 101P 55
|
||||
218,99,101,0,0; 103P 56
|
||||
212,1,7,1.232,0.156,1,1.571,1.571,0,0,5.078,4.193,0.,7HDATUM A, 105P 57
|
||||
0,0; 105P 58
|
||||
106,1,3,0.0,5.000,3.094,5.000,3.187,5.000,4.006,0,0; 107P 59
|
||||
218,105,107,0,0; 109P 60
|
||||
212,2,4,0.35,0.100,1,1.571,0.,0,0,4.029,2.611,0.,4H.2 R,5,0.500, 111P 61
|
||||
0.100,1,1.571,0.0,0,0,4.029,2.461,0.0,5H(TYP),0,0; 111P 62
|
||||
214,2,0.150,0.050,0.0,4.877,3.185,4.862,2.511,4.562,2.511,0,0; 113P 63
|
||||
222,111,113,4.800,3.000,0,0; 115P 64
|
||||
212,1,3,0.240,0.100,1,1.571,0.0,0,0,1.559,0.602,0.0,3H1.0,0,0; 117P 65
|
||||
214,1,0.150,0.050,0.0,1.663,0.0,1.663,0.538,0,0; 119P 66
|
||||
214,1,0.150,0.050,0.0,1.663,1.000,1.663,0.766,0,0; 121P 67
|
||||
106,1,3,0.0,0.200,0.0,0.294,0.0,1.788,0.0,0,0; 123P 68
|
||||
106,1,3,0.0,1.000,1.000,1.094,1.000,1.788,1.000,0,0; 125P 69
|
||||
216,117,119,121,123,125,0,0; 127P 70
|
||||
212,1,3,0.240,0.100,1,1.571,0.0,0,0,0.537,0.275,0.0,3H1.0,0,0; 129P 71
|
||||
214,1,0.150,0.050,0.0,1.000,0.325,0.809,0.325,0,0; 131P 72
|
||||
214,1,0.150,0.050,0.0,0.0,0.325,0.473,0.325,0,0; 133P 73
|
||||
106,1,3,0.0,1.000,1.000,1.000,0.906,1.000,0.200,0,0; 135P 74
|
||||
106,1,3,0.0,0.0,0.012,0.0,0.106,0.0,0.200,0,0; 137P 75
|
||||
216,129,131,133,135,137,0,0; 139P 76
|
||||
212,1,3,0.240,0.100,1,1.571,0.0,0,0,0.470,1.289,0.0,3H1.0,0,0; 141P 77
|
||||
214,1,0.150,0.050,0.0,0.971,1.736,0.688,1.453,0,0; 143P 78
|
||||
214,1,0.150,0.050,0.0,0.264,1.029,0.459,1.225,0,0; 145P 79
|
||||
106,1,3,0.0,1.354,1.354,1.287,1.420,0.882,1.825,0,0; 147P 80
|
||||
106,1,3,0.0,0.646,0.646,0.580,0.713,0.175,1.118,0,0; 149P 81
|
||||
216,141,143,145,147,149,0,0; 151P 82
|
||||
212,1,2,0.170,0.100,1,1.571,0.0,0,0,1.631,1.622,0.0,2H.5,0,0; 153P 83
|
||||
214,1,0.150,0.050,0.0,1.863,1.509,2.146,1.226,0,0; 155P 84
|
||||
214,1,0.150,0.050,0.0,1.509,1.863,1.226,2.146,0,0; 157P 85
|
||||
106,1,3,0.0,1.177,0.823,1.243,0.890,1.951,1.598,0,0; 159P 86
|
||||
106,1,3,0.0,0.823,1.177,0.890,1.243,1.598,1.951,0,0; 161P 87
|
||||
216,153,155,157,159,161,0,0; 163P 88
|
||||
110,0.500,0.500,0.0,1.500,1.500,0.0,0,0; 165P 89
|
||||
110,1.225,0.775,0.0,0.775,1.225,0.0,0,0; 167P 90
|
||||
212,1,2,0.220,0.100,1,1.571,0.0,0,0,2.566,0.786,0.0,2H45,0,0; 169P 91
|
||||
214,1,0.150,0.050,0.0,2.847,0.0,2.754,0.722,0,0; 171P 92
|
||||
214,1,0.150,0.050,0.0,2.013,2.013,2.683,0.951,0,0; 173P 93
|
||||
106,1,3,0.0,4.988,0.0,4.894,0.0,2.972,0.0,0,0; 175P 94
|
||||
106,1,3,0.0,2.000,2.000,2.066,2.066,2.101,2.101,0,0; 177P 95
|
||||
202,169,175,177,0.0,0.0,2.847,171,173,0,0; 179P 96
|
||||
S 7G 3D 180P 96 T 1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user