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.pswp.cn/pingmian/79954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79954.shtml
英文地址,請注明出處:http://en.pswp.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;是神經…