Occt幾何內核快速入門

本文簡單介紹?Open Cascade Technology(OCCT),提供了下載地址和文檔地址。通過OCCT的測試工具Draw,展示了OCCT的一些功能特性。介紹了OCCT集成開發的演示代碼,提供了源代碼下載地址和編譯過程文件。

一、簡介

Open Cascade Technology(OCCT),原名?CAS.CADE,是由Open Cascade SAS開發和支持的三維CAD、CAM、CAE等的開源軟件開發平臺。自1999年作為開源CAD軟件內核發布以來,OCCT已成功應用于從建筑、建筑到航空航天和汽車等眾多項目。

OCCT是唯一一個開源的全尺寸三維幾何庫,是一個面向對象C++類庫,用于快速開發設計領域的專業應用程序。OCCT致力于成為最好的免費cad軟件內核之一。OCCT在LGPL-2.1許可證下可用,允許在開源和專有應用程序中使用。

OCCT主要用于開發二維和三維幾何建模應用程序,是一個全面的B-Rep(邊界表達)建模工具包。OCCT是為CAD、CAM、CAE快速開發程序而設計的面向對象的C++類庫。可以使用OCCT來開發二維和三維的通用幾何造型的計算機輔助設計程序CAD(Computer Aided Design),計算機輔助制造程序CAM(Computer Aided Manufacturing)和計算機輔助分析程序CAA(Computer Aided Analysis);仿真程序和繪圖程序。OCCT庫可以明顯加快程序的開發進度。

?

一、OCCT的特點

? ? 開源性:OCCT是一個開源項目,其源代碼公開且可自由使用、修改和分發。這使得開發者能夠靈活地使用和定制,以滿足特定的工程需求。

? ? 跨平臺性:支持多種操作系統,包括Windows、Linux和Mac OS等。這使得開發者可以在不同的平臺上開發和部署CAD應用程序,提高了軟件的靈活性和可移植性。

? ? 模塊化設計:采用模塊化設計,將不同的功能劃分為獨立的模塊。這種設計使得開發者可以根據需要選擇使用哪些模塊,降低了軟件開發的復雜性和成本。

? ?
二、OCCT的功能

1、2D和3D幾何造型工具箱,可對任何物體造型;

  • ?創建基本圖元,如prism,cylinder, cone, torus;
  • 對實體進行布爾操作,addition, subtraction and intersection;
  • 根據倒圓、倒角、草圖拉伸出幾何實體;
  • 使用偏移offsets、成殼shelling、挖空hollowing和擠壓sweeps構造幾何實體;
  • 計算幾何實體屬性,如表面積、體積、重心、曲率半徑;
  • 使用插值interpolation、逼近approximation、投影projection計算出幾何體;

2、 可視化功能提供對幾何實體的顯示、控制功能,例如:

  • 三維旋轉3D rotation;
  • 縮放Zoom;
  • 著色Shading;

3、 程序框架提供如下功能:

  • ?將非幾何數據與幾何實體關聯;

  • ?參數化模型;

二、下載地址

最新代碼及編譯包:?Download - Open CASCADE Technology

2025年6月最新版發布版 7.9.1

選擇??Windows package and 3rd-party VC++ 2022 64 bit:?occt-vc14-64-combined.zip

文檔地址:

Open CASCADE Technology: Introduction

三、功能體驗

下載occt-vc14-64-combined.zip后,解壓。

在occt_vc14-64目錄下有draw.bat、env.bat。

1、修改env.bat

在開頭,添加一行代碼

set PATH=%PATH%;E:\rep\occlib\3rdparty-vc14-64\tcltk-8.6.15-x64\bin

修改后env.bat如下:

echo off
set PATH=%PATH%;E:\rep\occlib\3rdparty-vc14-64\tcltk-8.6.15-x64\bin
set "SCRIPTROOT=%~dp0"
set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"rem ----- Reset values to defaults -----
set "VCVER=vc14"
set "ARCH=64"
set "CASDEB="if not ["%1"]    == [""]      set "VCVER=%1"
if not ["%2"]    == [""]      set "ARCH=%2"
if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
if /I ["%3"]     == ["debug"] set "CASDEB=d"
if /I ["%3"]     == ["d"]     set "CASDEB=d"
if /I ["%3"]     == ["i"]     set "CASDEB=i"
if /I ["%3"]     == ["relwithdeb"] set "CASDEB=i"rem ----- Decode VCVER variable and define related ones -----
rem
rem VCFMT - "vc" followed by full version number of Visual Studio toolset
rem         (same as VCVER without optional suffix "-uwp")
rem VCLIB - name of folder containing binaries
rem         (same as VCVER except without third version in number)
rem VCPROP - name of required Visual Studion Workload (starting with VS 2017)
rem
rem Note that for VS before 2015 (vc14) always
rem VCFMT=VCLIB=VCVER and VCPROP=NativeDesktoprem Since VS 2017, environment variables like VS100COMNTOOLS are not defined 
rem any more, we can only use vswhere.exe tool to find Visual Studio.
rem Add path to vswhere.exe
if /I not "%VCFMT%" == "gcc" (set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
)rem for vc10-12, interpretation is trivial
set VCFMT=%VCVER%
set VCLIB=%VCVER:~0,4%
set VCPROP=NativeDesktop
rem vc14 and later can have optional suffix "-uwp"
if "%VCVER:~-4%" == "-uwp" (set VCFMT=%VCVER:~0,-4%set VCLIB=%VCLIB%-uwpset VCPROP=Universal
)
rem echo VCVER=%VCVER% VCFMT=%VCFMT% VCLIB=%VCLIB% VCPROP=%VCPROP%rem ----- Parsing of Visual Studio platform -----
set "VisualStudioExpressName=VCExpress"if not "%DevEnvDir%" == "" (rem If DevEnvDir is already defined (e.g. in custom.bat), use that value
) else if /I "%VCFMT%" == "vc9" (set "DevEnvDir=%VS90COMNTOOLS%..\IDE"
) else if /I "%VCFMT%" == "vc10" (set "DevEnvDir=%VS100COMNTOOLS%..\IDE"
) else if /I "%VCFMT%" == "vc11" (set "DevEnvDir=%VS110COMNTOOLS%..\IDE"rem Visual Studio Express starting from VS 2012 is called "for Windows Desktop"rem and has a new name for executable - WDExpressset "VisualStudioExpressName=WDExpress"
) else if /I "%VCFMT%" == "vc12" (set "DevEnvDir=%VS120COMNTOOLS%..\IDE"set "VisualStudioExpressName=WDExpress"
) else if /I "%VCFMT%" == "vc14" (set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
) else if /I "%VCFMT%" == "vc141" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "DevEnvDir=%%i\Common7\IDE\")
) else if /I "%VCFMT%" == "vc142" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "DevEnvDir=%%i\Common7\IDE\")  
) else if /I "%VCFMT%" == "vc143" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "DevEnvDir=%%i\Common7\IDE\") 
) else if /I "%VCFMT%" == "gcc" (rem MinGW
) else if /I "%VCFMT%" == "clang" (rem clang
) else (echo Error: wrong VS identifierexit /B
)rem ----- Parsing vcvarsall for qt samples and define PlatformToolset -----
if /I "%VCFMT%" == "vc9" (set "VCVARS=%VS90COMNTOOLS%..\..\VC\vcvarsall.bat"set "VCPlatformToolSet=v90"
) else if /I "%VCFMT%" == "vc10" (set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"set "VCPlatformToolSet=v100"
) else if /I "%VCFMT%" == "vc11" (set "VCVARS=%VS110COMNTOOLS%..\..\VC\vcvarsall.bat"set "VCPlatformToolSet=v110"
) else if /I "%VCFMT%" == "vc12" (set "VCVARS=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"set "VCPlatformToolSet=v120"
) else if /I "%VCFMT%" == "vc14" (set "VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"set "VCPlatformToolSet=v140"
) else if /I "%VCFMT%" == "vc141" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat")set "VCPlatformToolSet=v141"
) else if /I "%VCFMT%" == "vc142" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat") set "VCPlatformToolSet=v142"
) else if /I "%VCFMT%" == "vc143" (for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat") set "VCPlatformToolSet=v142"  
) else if /I "%VCFMT%" == "gcc" (rem MinGW
) else if /I "%VCFMT%" == "clang" (rem clang
) else (echo Error: first argument ^(%VCVER%^) should specify supported version of Visual C++,echo one of: vc10 ^(VS 2010 SP3^), vc11 ^(VS 2012 SP3^), vc12 ^(VS 2013^) or vc14 ^(VS 2015^)exit
)rem ----- For compatibility with external application using CASROOT -----
if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"rem ----- Define path to 3rdparty products -----
if ["%THIRDPARTY_DIR%"] == [""] set "THIRDPARTY_DIR=../3rdparty-vc14-64"if ["%ARCH%"] == ["32"] set VCARCH=x86
if ["%ARCH%"] == ["64"] set VCARCH=amd64if /I ["%1"] == ["vc141"] set "VCVER=vc14"
if /I ["%1"] == ["vc142"] set "VCVER=vc14"
if /I ["%1"] == ["vc143"] set "VCVER=vc14"if exist "%CASROOT%\custom.bat" (call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
)if not ["%QTDIR%"] == [""] (set "PATH=%QTDIR%/bin;%PATH%"set "QT_PLUGIN_PATH=%QTDIR%/plugins"
)
if not ["%TCL_DIR%"] == [""]           set "PATH=%TCL_DIR%;%PATH%"
if not ["%TK_DIR%"] == [""]            set "PATH=%TK_DIR%;%PATH%"
if not ["%FREETYPE_DIR%"] == [""]      set "PATH=%FREETYPE_DIR%;%PATH%"
if not ["%FREEIMAGE_DIR%"] == [""]     set "PATH=%FREEIMAGE_DIR%;%PATH%"
if not ["%EGL_DIR%"] == [""]           set "PATH=%EGL_DIR%;%PATH%"
if not ["%GLES2_DIR%"] == [""]         set "PATH=%GLES2_DIR%;%PATH%"
if not ["%TBB_DIR%"] == [""]           set "PATH=%TBB_DIR%;%PATH%"
if not ["%VTK_DIR%"] == [""]           set "PATH=%VTK_DIR%;%PATH%"
if not ["%FFMPEG_DIR%"] == [""]        set "PATH=%FFMPEG_DIR%;%PATH%"
if not ["%JEMALLOC_DIR%"] == [""]      set "PATH=%JEMALLOC_DIR%;%PATH%"
if not ["%OPENVR_DIR%"] == [""]        set "PATH=%OPENVR_DIR%;%PATH%"rem ----- Set path to 3rd party and OCCT libraries -----
if not "%CSF_OCCTBinPath%" == "" (set "PATH=%CSF_OCCTBinPath%;%PATH%"
)if not ["%TK_DIR%"] == ["%TCL_DIR%"] (if not ["%TK_DIR%"] == [""]  set "TK_LIBRARY=%TK_DIR%/../lib/tk%TK_VERSION_WITH_DOT%"if not ["%TCL_DIR%"] == [""] set "TCL_LIBRARY=%TCL_DIR%/../lib/tcl%TCL_VERSION_WITH_DOT%"
)rem ----- Set envoronment variables used by OCCT -----
set  CSF_LANGUAGE=us
set  MMGT_CLEAR=1
set "CSF_SHMessage=%CSF_OCCTResourcePath%\SHMessage"
set "CSF_MDTVTexturesDirectory=%CSF_OCCTResourcePath%\Textures"
set "CSF_ShadersDirectory=%CSF_OCCTResourcePath%\Shaders"
set "CSF_XSMessage=%CSF_OCCTResourcePath%\XSMessage"
set "CSF_TObjMessage=%CSF_OCCTResourcePath%\TObj"
set "CSF_StandardDefaults=%CSF_OCCTResourcePath%\StdResource"
set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
set "CSF_MIGRATION_TYPES=%CSF_OCCTResourcePath%\StdResource\MigrationSheet.txt"rem ----- Draw Harness special stuff -----
if exist "%CSF_OCCTResourcePath%\DrawResources" (set "DRAWHOME=%CSF_OCCTResourcePath%\DrawResources"set "CSF_DrawPluginDefaults=%CSF_OCCTResourcePath%\DrawResources"if exist "%CSF_OCCTResourcePath%\DrawResources\DrawDefault" (set "DRAWDEFAULT=%CSF_OCCTResourcePath%\DrawResources\DrawDefault")
)

2、執行draw.bat

draw 是OCCT的功能測試工具。啟動后有兩個窗口,如下圖所示:

執行“View samples”

選擇“Dimensions in 3d viewer”

點擊按鈕“Run sample”

其它功能:

四、集成開發示例

1、下載源代碼

?劉星老師開發的演示代碼,Imgui+OCCT。

https://gitee.com/stoneold/OcctImgui

2、下載依賴包

選擇??Windows package and 3rd-party VC++ 2022 64 bit:?occt-vc14-64-combined.zip

解壓路徑:

OCCT 庫: E:\rep\occlib\occt_vc14-64

OCCT 依賴的第三方庫:E:/rep/occlib/3rdparty-vc14-64

3、CMake創建編譯工程

修改CMakeList.txt

cmake_minimum_required(VERSION 3.15)# Project configuration
project(OcctImgui LANGUAGES CXX)# Set output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})# Include directories
find_package(OpenCASCADE REQUIRED PATHS  E:/rep/occlib/occt_vc14-64/cmake)file(GLOB_RECURSE SOURCES"${CMAKE_SOURCE_DIR}/*.cpp""${CMAKE_SOURCE_DIR}/*.h"
)# Exclude CMake-generated files from the SOURCES list
list(FILTER SOURCES EXCLUDE REGEX ".*CMakeFiles.*")include_directories(E:/rep/occlib/3rdparty-vc14-64/glfw-3.4-x64/include)# Add executable target
add_executable(OcctImgui ${SOURCES})# Link libraries
target_link_libraries(OcctImgui
PRIVATE    TKernel TKMath TKG2d TKG3d TKGeomBase TKGeomAlgo TKBRep TKTopAlgo TKPrim TKMesh TKService TKOpenGl TKV3d
)
target_link_libraries(OcctImgui
PRIVATE  E:/rep/occlib/3rdparty-vc14-64/glfw-3.4-x64/lib-vc2022/glfw3.lib
)target_compile_options(OcctImgui PRIVATE$<$<CONFIG:Debug>:-g>$<$<CONFIG:Release>:-O3>
)target_link_directories(OcctImgui PRIVATE$<$<CONFIG:Debug>:${DEBUG_LIBS}>$<$<CONFIG:Release>:${RELEASE_LIBS}>
)# Debug environment variables (for Windows)
if(MSVC)set(DEBUG_ENVS "PATH=%PATH%;E:/rep/occlib/occt_vc14-64/win64/vc14/bin;E:/rep/occlib/3rdparty-vc14-64/freeimage-3.18.0-x64/bin;E:/rep/occlib/3rdparty-vc14-64/openvr-1.14.15-64/bin/win64;E:/rep/occlib/3rdparty-vc14-64/ffmpeg-3.3.4-64/bin;E:/rep/occlib/3rdparty-vc14-64/tbb-2021.13.0-x64/bin;E:/rep/occlib/3rdparty-vc14-64/jemalloc-vc14-64/bin")set_target_properties(OcctImgui PROPERTIES VS_DEBUGGER_ENVIRONMENT "${DEBUG_ENVS}")endif()

注意:路徑要正確

include_directories(E:/rep/occlib/3rdparty-vc14-64/glfw-3.4-x64/include)

target_link_libraries(OcctImgui
PRIVATE??
?E:/rep/occlib/3rdparty-vc14-64/glfw-3.4-x64/lib-vc2022/glfw3.lib
)

PATH=%PATH%;E:\rep\occlib\occt_vc14-64\win64\vc14\bin;E:\rep\occlib\3rdparty-vc14-64\freeimage-3.18.0-x64\bin;E:\rep\occlib\3rdparty-vc14-64\openvr-1.14.15-64\bin\win64;E:\rep\occlib\3rdparty-vc14-64\ffmpeg-3.3.4-64\bin;E:\rep\occlib\3rdparty-vc14-64\tbb-2021.13.0-x64\bin;E:\rep\occlib\3rdparty-vc14-64\jemalloc-vc14-64\bin

執行CMake-Gui.exe

4、配置vs 2022?

五、參考資料

OCCT源代碼 在gitee的鏡像,不定期同步github。

https://gitee.com/stoneold/OCCT

劉星老師開發的演示代碼,Imgui+OCCT。

https://gitee.com/stoneold/OcctImgui

https://zhuanlan.zhihu.com/p/448986691

【全網最完整】Open CASCADE Technology (OCCT) 構建項目,QT可視化操作,添加自定義測試內容-CSDN博客

有劉星老師推薦的學習教程

OpenCASCADE入門指南 - opencascade - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85651.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85651.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85651.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Docker 08】Compose - 容器編排

&#x1f308; 一、Docker Compose 介紹 ? 1. Docker Compose 是什么 Docker Compose 是由 Docker 官方提供的一個用于定義和運行多容器應用的工具&#xff0c;它讓用戶可以通過一個 YAML 文件&#xff08;通常是 docker-compose.yml&#xff09;來配置應用所需要的服務&…

CentOS Stream 9平臺部署安裝MySQL8.4.1

1、在線下載安裝包 [rootlocalhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.4.1-1.el9.x86_64.rpm-bundle.tar 2、新建解壓文件夾 [rootlocalhost ~]#mkdir /root/sql 3、離線解壓安裝包安裝配置MySQL8 上傳安裝包到home下 [rootlocalhost ~]#c…

phpstorm無縫切換vscode

要將 PhpStorm 的開發體驗無縫遷移到 VS Code&#xff0c;需重點配置插件、快捷鍵和操作習慣。以下是詳細方案&#xff1a; 一、必備插件清單 安裝以下插件&#xff08;VS Code 搜索安裝&#xff09;&#xff1a; PHP Intelephense&#xff1a;核心插件&#xff08;代碼補全、…

雨聲_錦程_時年

1 炎涼 飄零于三界。 子銘師傅看了幾卷筆記&#xff0c;以為我文筆很好&#xff0c;于是我留在石銘公社。 我每日在公社會議廳&#xff0c;高地吹風&#xff0c;悠然筆記。 我喜歡四處旅行。 穿著鞘翅飛翔&#xff0c;風劃過耳邊。 我渴求所飲的每一滴水&#xff0c;追憶木履留…

微信小程序使用rsa 加解密

jsencrypt.min.js !function(t,e){"object"typeof exports&&"undefined"!typeof module?e(exports):"function"typeof define&&define.amd?define(["exports"],e):e(t.JSEncrypt{})}(this,function(t){"use s…

2025北郵軟件工程復習

文章目錄 廢話知識點總結Part1 軟件工程概述Part2 軟件需求分析需求介紹需求描述方法 Part3 軟件設計方法軟件設計的概念與原則軟件設計的方法 Part4 程序實現方法Part5 軟件測試方法白盒測試黑盒測試 練習題北郵2021~2022期末考北郵2018期末考 考后總結 廢話 update on 4.24&…

《Whisper模型版本及下載鏈接》

Whisper模型版本及下載鏈接 Whisper是OpenAI開發的語音識別模型&#xff0c;以下按模型規模從小到大排列&#xff0c;包含不同語言版本及通用版本&#xff1a; 1. Tiny系列&#xff08;輕量級&#xff09; tiny.en.pt&#xff08;英文專用&#xff09;&#xff1a; https://…

AWS-SAA 第二部份:安全性和權限管理

我們來深入講解第二部分&#xff1a;安全性和權限管理&#xff0c;依然用通俗易懂的語言解釋。 核心服務 1&#xff1a;IAM&#xff08;Identity and Access Management&#xff09; 1. IAM 的核心概念 作用&#xff1a; IAM 是 AWS 的“門衛系統”&#xff0c;用來管理誰可以…

Linux 多種方式實現行轉列

目錄 一. 前提二. xargs 實現行轉列三. paste 實現行轉列四. sed 實現行轉列 一. 前提 ?之前在這下面篇文章中使用sed命令實現了行專列&#xff0c;本篇文章再介紹幾種更加簡單的方式。 Linux sed案例 &#x1f449; 20231126-2.log 110120 SPLREQUEST 內容1 AAA memberID1…

Hadoop HDFS存儲機制與塊大小選擇權衡

一、HDFS塊存儲機制核心原理 1.1 邏輯塊 vs 物理存儲 HDFS中的 塊大小(block size) 是一個邏輯概念&#xff0c;而非物理預分配&#xff1a; #mermaid-svg-GzNjegjSgYrnlcme {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mer…

Unity Addressable使用之AddressableAssetSettings

AddressableAssetSettings 是 Unity Addressable Assets System 的核心配置文件 配置 Manage Groups 用來打開Addressables Groups窗口 Profiles配置 Profile In Use&#xff1a;可以在這選擇使用的是哪一套配置文件Manage Profiles&#xff1a;點擊它會打開Addressables Gr…

從“詢”到“單”的智能躍遷:工業品電商復雜交易流程引擎的架構之道

當傳統企業客戶在“詢盤-報價-議價-審批-合同-下單-履約”的復雜迷宮中艱難穿行&#xff0c;反復溝通、層層審批、定制條款、手工錄入……每一步都暗藏延遲與差錯的風險&#xff0c;工業品電商平臺也承受著轉化率低、運營成本高、客戶滿意度下滑的陣痛。流程冗長、定制化依賴人…

【軟考高級系統架構論文】論模型驅動架構設計方法及其應用

論文真題 模型驅動架構設計是一種用于應用系統開發的軟件設計方法,以模型構造、模型轉換和精化為核心,提供了一套軟件設計的指導規范。在模型驅動架構環境下,通過創建出機器可讀和高度抽象的模型實現對不同問題域的描述,這些模型獨立于實現技術,以標準化的方式儲存,利用…

【入門】【例18.2】 孔融讓梨

| 時間限制&#xff1a;C/C 1000MS&#xff0c;其他語言 2000MS 內存限制&#xff1a;C/C 64MB&#xff0c;其他語言 128MB 難度&#xff1a;中等 分數&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分數2難度) 出題人&#xff1a;root | 描述 孔融小時候聰明好學&#xff0…

【nature review】原子尺度上光與物質的相互作用

2021 年 6 月,馬普固態研究所 Rico Gutzler 等人在《Nature Reviews Physics》期刊發表了題為《Light–matter interaction at atomic scales》的文章,基于掃描隧道顯微鏡(STM)與光子學結合的方法,研究了光與物質在原子尺度上的相互作用,實驗和仿真結果表明光可通過多種機…

7.3.3_1紅黑樹的定義和性質

知識總覽&#xff1a; 為什么要發明紅黑樹&#xff1a; 二叉排序樹BST 紅黑樹RBT的查找、插入和刪除效率基本和AVL平衡二叉樹的相同&#xff0c;但是平衡二叉樹在插入和刪除節點操作時容易被破壞平衡&#xff0c;所以需要消耗大量時間重新調整樹的形態(主要時間用在計算平衡因…

微處理器原理與應用篇---馮諾依曼體系結構

馮諾依曼體系結構&#xff1a;計算機的基礎設計范式 一、馮諾依曼體系結構的起源與定義 提出背景&#xff1a; 1945 年&#xff0c;匈牙利數學家約翰?馮?諾依曼&#xff08;John von Neumann&#xff09;在《EDVAC 報告書的第一份草案》中提出該架構&#xff0c;為現代計算…

vue3 + TypeScript +Element Plus 輸入框回車事件 @keydown.enter

在 Vue 3 TypeScript Element Plus 的環境下&#xff0c;keyup.enter.native 和 keydown.enter 在 el-input 組件上的區別主要在于 事件觸發時機 和 Vue 3 的事件處理機制。以下是詳細對比&#xff1a; 1. keydown.enter&#xff08;推薦&#xff09; 觸發時機&#xff1a;當…

android gradle的優化

在setting.gradle.kts配置 google()maven("https://maven.aliyun.com/repository/google")// 官方 Maven Central&#xff0c;最通用mavenCentral()// 特殊倉庫&#xff08;4thline&#xff0c;Cling 用&#xff09;maven {url uri("http://4thline.org/m2&q…

jmeter工具簡單認識

2025最新Jmeter接口測試從入門到精通&#xff08;全套項目實戰教程&#xff09; 一、JMeter 介紹 Apache JMeter是100%純JAVA桌面應用程序&#xff0c;被設計為用于測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能&#xff0c;例如&#xf…