chili调试笔记14 画线 页面布置 线条导出dxf

2025-05-08 09-05-06 llm画线

页面布置

 

 

 

 expand有自己的格式

删了就会按照子元素格式 

 

不加px无效

没有指定尺寸设置100%无效

怎么把线条导出dxf

@command({name: "file.export",display: "command.export",icon: "icon-export",
})
export class Export extends CancelableCommand {@Property.define("file.format")public get formats() {return this.getPrivateValue("formats", this.initCombobox());}public set formats(value: Combobox<string>) {this.setProperty("formats", value);}private initCombobox() {const box = new Combobox<string>();box.items.push(...this.application.dataExchange.exportFormats());return box;}protected async executeAsync() {const nodes = await this.selectNodesAsync();if (!nodes || nodes.length === 0) {PubSub.default.pub("showToast", "toast.select.noSelected");return;}PubSub.default.pub("showPermanent",async () => {const format = this.formats.selectedItem;if (format === undefined) return;const data = await this.application.dataExchange.export(format, nodes);if (!data) return;PubSub.default.pub("showToast", "toast.downloading");download(data, `${nodes[0].name}${format}`);},"toast.excuting{0}",I18n.translate("command.export"),);}

 

 

❓ 问题 3:缺少 TABLES 段定义图层等信息

如果你没有定义图层(Layer),某些软件可能会忽略你的图形。


✅ 推荐解决方案:补充 HEADER 和 TABLES 段落

下面是一个 完整且经过验证可以在 FreeCAD 中正常打开的 DXF 示例,基于你提供的线条数据:

 

dxf模板            不能用

0
SECTION
2
HEADER
9
$ACADVER
1
AC1027
9
$INSUNITS
70
4
0
ENDSEC0
SECTION
2
TABLES
0
TABLE
2
LAYER
701
0
LAYER
2
0
700
627
6
CONTINUOUS
0
ENDTAB
0
TABLE
2
LTYPE
701
0
LTYPE
2
CONTINUOUS
700
3
Solid line
7265
730
40
0.0
0
ENDTAB
0
ENDSEC0
SECTION
2
BLOCKS
0
BLOCK
8
0
2
*MODEL_SPACE
700
10
0.0
20
0.0
30
0.0
100
AcDbBlockBegin
3
*MODEL_SPACE
10
ENDBLK
100
AcDbBlockEnd
0
ENDSEC0
SECTION
2
ENTITIES
{{entities}}
0
ENDSEC0
SECTION
2
OBJECTS
0
DICTIONARY
5
F000
330
0
100
AcDbDictionary
3
ACAD_GROUP
350
F001
0
DICTIONARY
5
F001
330
F000
100
AcDbDictionary
0
ENDSEC0
EOF

让ai打工 

放弃了,用三方库

cnpm install three-dxf

// three-dxf.d.ts
declare module 'three-dxf' {class Point3D {x: number;y: number;z: number;constructor(x: number, y: number, z?: number);}class Drawing {header: {setVersion(version: string): void;setUnit(unit: string): void;};addLayer(name: string, options?: any): void;addLine(start: Point3D, end: Point3D): void;toString(): string;}export { Drawing, Point3D };
}

 

freecad打不开别的打开了

cnpm install @tarikjabiri/dxf

@tarikjabiri/dxf CDN by jsDelivr - A CDN for npm and GitHub

   private async  handleDxfExport(nodes: VisualNode[]): Promise<string[]> {// 创建一个新的 DXF 文档const d = new DxfDocument();for (const node of nodes) {if (node instanceof LineNode) {const start = node.start;const end = node.end;// 创建线段并设置起点和终点const line = new Line({ x: start.x, y: start.y, z: Math.abs(start.z) < 1e-9 ? 0 : start.z },{ x: end.x, y: end.y, z: Math.abs(end.z) < 1e-9 ? 0 : end.z });// 添加到文档的实体集合中d.entities.modelSpace.addEntity(line);}}const fullDxfContent= d.stringify(); // 转换为字符串// 返回分割成行的数组,每行后加上换行符return fullDxfContent.split('\n').map(line => line + '\n');}

 

2年前的了,用python写吧

python直接写本地freecad可以打得开发回网页就打不开

import ezdxf
import tempfile
import osdef draw_lines_and_get_dxf(lines):"""根据给定的线段列表绘制直线,并返回 DXF 文档的字符串格式。:param lines: 线段列表,每个线段由起点和终点组成,格式为 [{"start": {"x": x1, "y": y1, "z": z1}, "end": {"x": x2, "y": y2, "z": z2}}, ...]:return: DXF 文档的字符串表示"""# 创建一个新的 DXF 文档doc = ezdxf.new('R2010')msp = doc.modelspace()# 遍历每条线段并绘制直线for line in lines:print(line)start = (line["start"]["x"], line["start"]["y"], line["start"]["z"])end = (line["end"]["x"], line["end"]["y"], line["end"]["z"])msp.add_line(start, end)# 保存到临时文件with tempfile.NamedTemporaryFile(suffix=".dxf", delete=False) as temp_file:doc.saveas(temp_file.name)temp_file_path = temp_file.name# 创建保存目录save_dir = './run/dxf'os.makedirs(save_dir, exist_ok=True)# 另存为指定路径save_path = os.path.join(save_dir, 'output.dxf')doc.saveas(save_path)# 读取文件内容with open(temp_file_path, "r") as file:dxf_content = file.read()# 删除临时文件os.remove(temp_file_path)return dxf_content

打不开的:

打得开的

浪费了一下午发现是freecad打不开中文命名的文档

不是卡中文可能@tarikjabiri/dxf包就能用了

2025-05-08 16-59-41 linenode导出dxf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝绿发布与金丝雀发布

蓝绿发布与金丝雀发布 一、蓝绿发布&#xff1a;像「搬家」一样安全上线1. 生活化故事2. 技术步骤拆解步骤①&#xff1a;初始状态步骤②&#xff1a;部署新版本到绿环境步骤③&#xff1a;内部验证绿环境步骤④&#xff1a;一键切换流量步骤⑤&#xff1a;监控与回滚 3. 蓝绿发…

【2025五一数学建模竞赛B题】 矿山数据处理问题|建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的美赛O奖、国赛国一的数学建模团队&#xff0c;我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析&#xff0c…

JavaSE核心知识点02面向对象编程02-02(封装、继承、多态)

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 JavaSE核心知识点02面向对象编程02-02&#…

Yolo迁移训练-带训练源码

目录 下载Git 拉下yolo模型 下载labelimg 准备训练集 迁移训练 继续训练 下载Git Git - Downloading Package 拉下yolo模型 然后用克隆脚本拉下yolo模型 python clone_yolo.py import os import subprocess import sys import shutildef check_git_installed():"…

LangChain框架-PromptTemplate 详解

摘要 本文聚焦于 LangChain 框架中PromptTemplate提示词模板模块的深度解析,主要参考langchain_core.prompts源码模块与官方文档。系统梳理 LangChain 对提示词模板的封装逻辑与设计思路,旨在帮助读者构建全面、深入的知识体系,为高效运用LangChain 框架的提示词模板开发应用…

中小企业设备预测性维护三步构建法:从零到精的技术跃迁与中讯烛龙实践

在工业4.0浪潮中&#xff0c;中小企业常陷入"设备故障频发"与"数字化成本高企"的双重困境。本文基于半导体、食品加工等行业实证数据&#xff0c;结合中讯烛龙系统技术突破&#xff0c;为中小企业提供一套零基础、低门槛、可扩展的预测性维护实施框架&…

C30-函数

一 函数的优点 避免代码冗长模块化的设计思路(十分类似组装电脑)按功能划分,每个函数代表一个功能 二 函数的三要素 函数要先定义再使用(就像是变量一样)三要素: 函数名→体现功能参数列表 比如yf(x)→x就是参数又如yf(x,y)→x,y就是参数→参数的个数取决于需求 返回值:比如…

【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案

在使用 Spring Boot 构建多模块项目&#xff0c;集成 MyBatis-Plus 时&#xff0c;很多开发者会遇到类似如下启动报错&#xff1a; Error creating bean with name mapperScannerConfigurer ... Caused by: java.lang.IllegalArgumentException: Property basePackage is requ…

pimpl与unique_ptr的问题

PImpl与std::unique_ptr组合 pimpl(Pointer to Implementation)是C程序开发中非常常用的技巧之一&#xff0c;它的好处有&#xff1a; 节省程序编译时间保持程序/库的二进制兼容性隐藏实现细节 举例一个常见的pimpl的使用示例&#xff1a; // a.h class Impl; //前置声明 c…

C++类和对象:构造函数、析构函数、拷贝构造函数

引言 介绍&#xff1a;C类和对象&#xff1a;构造函数、析构函数、拷贝构造函数 _涂色_博主主页 C基础专栏 一、类的默认成员函数 先认识一下类中的默认成员函数&#xff1a; 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数。⼀个类…

CTF - PWN之ORW记录

CTF - Pwn之ORW记录https://mp.weixin.qq.com/s/uiRtqCSopn6U6NqyKJ8I7Q

RabbitMQ 中的六大工作模式介绍与使用

文章目录 简单队列&#xff08;Simple Queue&#xff09;模式配置类定义消费者定义发送消息测试消费 工作队列&#xff08;Work Queues&#xff09;模式配置类定义消费者定义发送消息测试消费负载均衡调优 发布/订阅&#xff08;Publish/Subscribe&#xff09;模式配置类定义消…

民宿管理系统6

普通管理员管理&#xff1a; 新增普通管理员&#xff1a; 前端效果&#xff1a; 前端代码&#xff1a; <body> <div class"layui-fluid"><div class"layui-row"><div class"layui-form"><div class"layui-f…

vue3+ant design vue + Sortable实现多级表格列拖动

1、最近遇到个需求&#xff0c;需使用vue3ant design vue Sortable实现多级表格的表头允许用户拖拽移动。即当用户拖拽一级表头时&#xff0c;其对应的子级表头及数据应同步移动&#xff0c;并且只允许一级非固定表头允许拖拽。 2、代码 <a-table:data-source"rowDat…

第五十四篇 AI与数据分析

一、AI数据分析就像做菜 想象你在厨房做一道新菜&#xff0c;AI数据分析的流程其实非常相似&#xff1a; 买菜&#xff08;获取数据&#xff09; 去市场挑选新鲜蔬菜 从Excel/数据库获取数据例&#xff1a;pd.read_csv(超市销售表.csv) 洗菜切菜&#xff08;清洗数据&#x…

差分OPA verilogaA 模型

做电路设计&#xff0c;需要提前用理想模型如VerilogA模型做验证。这里分享一个由ahdlib库里单端opamp改造而来的差分opamp。参考何乐年的《模拟集成电路设计与仿真》10.4节423页&#xff1b; 描述的小信号模型如上。 VerilogA 用到了SRI/C&#xff0c;GBWgm/C,gaingm*r1等概念…

Solidity语言基础:区块链智能合约开发入门指南

一、Solidity概述 Solidity是以太坊生态系统中最重要的智能合约编程语言&#xff0c;由Gavin Wood于2014年提出。作为面向合约的高级语言&#xff0c;它结合了JavaScript、Python和C的语法特点&#xff0c;专为在以太坊虚拟机&#xff08;EVM&#xff09;上运行而设计。 核心…

开启智能Kubernetes管理新时代:kubectl-ai让操作更简单!

在如今的科技世界中,Kubernetes 已经成为容器编排领域的标杆,几乎所有现代应用的基础设施都离不开它。然而,面对复杂的集群管理和日常运维,许多开发者常常感到无所适从。今天,我们将为大家介绍一款结合了人工智能的强大工具——kubectl-ai。它不仅能帮助开发者更加顺畅地与…

2003-2020年高铁站开通时间数据

2003-2020年高铁站开通时间数据 1、时间&#xff1a;2003-2020年 2、来源&#xff1a;Chinese High-speed Rail and Airline Database&#xff0c;CRAD 3、指标&#xff1a;高铁站名称、开通时间、所在省份、所在城市、所属线路名称 4、说明&#xff1a; Hsrwsnm[高铁站名…

神经网络—感知器、多层感知器

文章目录 前言一、生物神经元与感知器的类比二、感知器1、简单感知器2、多层感知器&#xff08;1&#xff09;多层感知机结构 3、神经网络结构 总结1、感知器的局限性如何突破感知器的局限性&#xff1f; 2、感知器的应用 前言 感知器&#xff08;Perceptron&#xff09;是神经…