游戲坐標(biāo)獲取技術(shù)全解析:從圖像識(shí)別到內(nèi)存讀取的實(shí)戰(zhàn)指南
在游戲開(kāi)發(fā)和自動(dòng)化測(cè)試領(lǐng)域獲取游戲內(nèi)坐標(biāo)是一個(gè)常見(jiàn)但技術(shù)門(mén)檻較高的需求。無(wú)論是為了開(kāi)發(fā)輔助工具、實(shí)現(xiàn)自動(dòng)化腳本還是進(jìn)行游戲數(shù)據(jù)分析掌握坐標(biāo)獲取技術(shù)都至關(guān)重要。不同游戲引擎、不同平臺(tái)下的坐標(biāo)獲取方法差異很大本文將系統(tǒng)梳理從2D小游戲到3A大作的坐標(biāo)獲取方案涵蓋內(nèi)存讀取、圖像識(shí)別、網(wǎng)絡(luò)封包分析等多種技術(shù)路徑為開(kāi)發(fā)者提供一套完整的實(shí)戰(zhàn)指南。1. 坐標(biāo)獲取的核心原理與適用場(chǎng)景1.1 什么是游戲坐標(biāo)系統(tǒng)游戲坐標(biāo)系統(tǒng)是描述游戲內(nèi)物體位置關(guān)系的數(shù)學(xué)模型。在2D游戲中通常使用笛卡爾坐標(biāo)系(x,y)而在3D游戲中則使用(x,y,z)三維坐標(biāo)。需要注意的是屏幕坐標(biāo)(玩家看到的畫(huà)面)與世界坐標(biāo)(游戲內(nèi)部邏輯位置)是不同的概念兩者之間需要通過(guò)投影變換進(jìn)行轉(zhuǎn)換。1.2 坐標(biāo)獲取的主要應(yīng)用場(chǎng)景游戲輔助開(kāi)發(fā)自動(dòng)尋路、自動(dòng)打怪等功能的實(shí)現(xiàn)基礎(chǔ)自動(dòng)化測(cè)試驗(yàn)證UI元素位置、測(cè)試角色移動(dòng)邏輯數(shù)據(jù)分析研究玩家行為模式、游戲平衡性分析教學(xué)演示游戲開(kāi)發(fā)教學(xué)中的位置追蹤演示1.3 技術(shù)方案選型考量因素選擇坐標(biāo)獲取方案時(shí)需要考慮多個(gè)因素游戲類(lèi)型(2D/3D)、平臺(tái)(PC/移動(dòng)端)、保護(hù)機(jī)制(反作弊系統(tǒng))、技術(shù)可行性等。簡(jiǎn)單的小游戲可能只需要圖像識(shí)別而復(fù)雜的3D游戲則需要結(jié)合多種技術(shù)。2. 環(huán)境準(zhǔn)備與工具選擇2.1 基礎(chǔ)環(huán)境要求操作系統(tǒng)Windows 10/11 64位多數(shù)游戲分析工具基于Windows編程語(yǔ)言Python 3.8 或 C/C#必備工具Cheat Engine、Process Explorer、Visual Studio 2019游戲環(huán)境建議使用單機(jī)版游戲進(jìn)行學(xué)習(xí)測(cè)試避免違反在線游戲用戶(hù)協(xié)議2.2 開(kāi)發(fā)工具配置Python環(huán)境需要安裝以下關(guān)鍵庫(kù)# 安裝必要的Python庫(kù) pip install opencv-python numpy pillow pyautogui pip install pymem win32gui win32api2.3 安全與法律注意事項(xiàng)在進(jìn)行游戲坐標(biāo)獲取前必須明確僅用于學(xué)習(xí)研究和單機(jī)游戲開(kāi)發(fā)嚴(yán)格遵守游戲用戶(hù)協(xié)議不用于在線游戲作弊在測(cè)試環(huán)境中進(jìn)行避免影響他人游戲體驗(yàn)尊重游戲開(kāi)發(fā)者的知識(shí)產(chǎn)權(quán)3. 基于圖像識(shí)別的坐標(biāo)獲取方案3.1 基礎(chǔ)屏幕坐標(biāo)獲取對(duì)于簡(jiǎn)單的2D游戲可以直接通過(guò)屏幕像素分析獲取坐標(biāo)import pyautogui import time def get_screen_coordinates(): 獲取當(dāng)前鼠標(biāo)位置的屏幕坐標(biāo) try: while True: x, y pyautogui.position() print(f當(dāng)前坐標(biāo): X{x}, Y{y}) time.sleep(1) except KeyboardInterrupt: print(坐標(biāo)獲取結(jié)束) # 使用示例 if __name__ __main__: get_screen_coordinates()3.2 OpenCV模板匹配定位通過(guò)圖像模板匹配可以識(shí)別游戲中的特定元素位置import cv2 import numpy as np import pyautogui def find_template_position(template_path, confidence0.8): 通過(guò)模板匹配查找游戲元素位置 template_path: 模板圖片路徑 confidence: 匹配置信度閾值 # 截取屏幕 screenshot pyautogui.screenshot() screenshot cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) # 讀取模板 template cv2.imread(template_path) h, w template.shape[:2] # 模板匹配 result cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc cv2.minMaxLoc(result) if max_val confidence: x, y max_loc center_x x w // 2 center_y y h // 2 return center_x, center_y, max_val else: return None # 使用示例 position find_template_position(player_icon.png) if position: print(f找到玩家圖標(biāo)位置: {position})3.3 基于特征點(diǎn)匹配的坐標(biāo)獲取對(duì)于動(dòng)態(tài)變化的游戲元素可以使用特征點(diǎn)匹配import cv2 import numpy as np def feature_match_position(current_screen, reference_image): 使用ORB特征點(diǎn)匹配進(jìn)行位置識(shí)別 # 初始化ORB檢測(cè)器 orb cv2.ORB_create() # 查找關(guān)鍵點(diǎn)和描述符 kp1, des1 orb.detectAndCompute(reference_image, None) kp2, des2 orb.detectAndCompute(current_screen, None) # 使用BFMatcher進(jìn)行匹配 bf cv2.BFMatcher(cv2.NORM_HAMMING, crossCheckTrue) matches bf.match(des1, des2) # 按距離排序 matches sorted(matches, keylambda x: x.distance) if len(matches) 10: # 計(jì)算Homography矩陣 src_pts np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1,1,2) dst_pts np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1,1,2) M, mask cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0) if M is not None: # 計(jì)算中心點(diǎn)位置 h, w reference_image.shape[:2] pts np.float32([[0,0], [0,h-1], [w-1,h-1], [w-1,0]]).reshape(-1,1,2) dst cv2.perspectiveTransform(pts, M) return dst return None4. 基于內(nèi)存讀取的坐標(biāo)獲取方案4.1 內(nèi)存掃描基本原理內(nèi)存讀取是通過(guò)直接訪問(wèn)游戲進(jìn)程內(nèi)存來(lái)獲取坐標(biāo)數(shù)據(jù)這種方法精度高但技術(shù)復(fù)雜import pymem import pymem.process class GameMemoryReader: def __init__(self, process_name): 初始化內(nèi)存讀取器 self.pm pymem.Pymem() self.pm.open_process_from_name(process_name) self.module_base self.get_module_base(process_name) def get_module_base(self, module_name): 獲取模塊基地址 module pymem.process.module_from_name(self.pm.process_handle, module_name) return module.lpBaseOfDll def read_float(self, address): 從指定地址讀取浮點(diǎn)數(shù) try: return self.pm.read_float(address) except: return None def read_int(self, address): 從指定地址讀取整數(shù) try: return self.pm.read_int(address) except: return None # 使用示例 reader GameMemoryReader(game.exe) player_x reader.read_float(0x12345678) player_y reader.read_float(0x1234567C)4.2 使用Cheat Engine進(jìn)行內(nèi)存分析Cheat Engine是強(qiáng)大的內(nèi)存掃描工具使用步驟附加進(jìn)程啟動(dòng)Cheat Engine附加到目標(biāo)游戲進(jìn)程首次掃描搜索未知初始值記錄角色移動(dòng)前后的數(shù)值變化精確查找通過(guò)多次移動(dòng)角色逐步縮小內(nèi)存地址范圍分析指針找到基地址和偏移量建立穩(wěn)定的地址結(jié)構(gòu)4.3 指針掃描與地址穩(wěn)定性直接的內(nèi)存地址往往在游戲重啟后失效需要使用指針鏈def read_pointer_chain(memory_reader, base_address, offsets): 讀取指針鏈指向的最終值 address base_address for offset in offsets[:-1]: address memory_reader.read_int(address offset) if address 0: return None final_offset offsets[-1] return memory_reader.read_float(address final_offset) # 示例指針鏈讀取 player_x read_pointer_chain(reader, 0x400000, [0x10, 0x20, 0x30])5. 基于網(wǎng)絡(luò)封包分析的坐標(biāo)獲取5.1 網(wǎng)絡(luò)封包捕獲基礎(chǔ)對(duì)于網(wǎng)絡(luò)游戲坐標(biāo)信息通常通過(guò)網(wǎng)絡(luò)封包傳輸import socket from struct import unpack class PacketSniffer: def __init__(self, interface_ip): self.interface_ip interface_ip self.socket socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) self.socket.bind((interface_ip, 0)) self.socket.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) self.socket.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) def parse_coordinate_packet(self, packet): 解析包含坐標(biāo)信息的網(wǎng)絡(luò)封包 # 解析IP頭部 ip_header packet[0:20] iph unpack(!BBHHHBBH4s4s, ip_header) # 解析TCP/UDP頭部 protocol iph[6] if protocol 6: # TCP tcp_header packet[20:40] # 解析游戲特定的坐標(biāo)數(shù)據(jù)格式 # 這里需要根據(jù)具體游戲協(xié)議進(jìn)行分析 pass return None5.2 Wireshark協(xié)議分析使用Wireshark進(jìn)行游戲協(xié)議分析的基本流程捕獲流量在游戲運(yùn)行時(shí)捕獲網(wǎng)絡(luò)數(shù)據(jù)包過(guò)濾分析使用過(guò)濾器定位游戲服務(wù)器IP相關(guān)的數(shù)據(jù)包協(xié)議解析分析數(shù)據(jù)包結(jié)構(gòu)識(shí)別坐標(biāo)字段模式識(shí)別觀察角色移動(dòng)時(shí)的數(shù)據(jù)變化模式5.3 自定義協(xié)議解析器針對(duì)特定游戲開(kāi)發(fā)協(xié)議解析器class GameProtocolParser: def __init__(self): self.packet_handlers { 0x01: self._handle_move_packet, 0x02: self._handle_position_packet } def parse_packet(self, data): 解析游戲數(shù)據(jù)包 packet_id data[0] if packet_id in self.packet_handlers: return self.packet_handlers[packet_id](data) return None def _handle_move_packet(self, data): 處理移動(dòng)數(shù)據(jù)包 if len(data) 13: # 假設(shè)坐標(biāo)包長(zhǎng)度為13字節(jié) x unpack(f, data[1:5])[0] # 4字節(jié)浮點(diǎn)數(shù) y unpack(f, data[5:9])[0] z unpack(f, data[9:13])[0] return {x: x, y: y, z: z} return None6. 不同游戲引擎的特定方案6.1 Unity引擎游戲坐標(biāo)獲取Unity游戲通??梢允褂靡韵路椒?/ Unity C# 示例 - 需要在游戲內(nèi)注入或使用MOD框架 using UnityEngine; public class CoordinateGetter : MonoBehaviour { void Update() { // 獲取玩家坐標(biāo) Vector3 playerPosition transform.position; Debug.Log($玩家坐標(biāo): X{playerPosition.x}, Y{playerPosition.y}, Z{playerPosition.z}); // 獲取鼠標(biāo)世界坐標(biāo) Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) { Vector3 worldPosition hit.point; Debug.Log($鼠標(biāo)世界坐標(biāo): {worldPosition}); } } }6.2 Unreal Engine游戲坐標(biāo)獲取Unreal Engine游戲的內(nèi)存結(jié)構(gòu)較為復(fù)雜但可以通過(guò)模式掃描// UE4 坐標(biāo)讀取示例思路 class UWorld* world GetWorld(); if (world world-PersistentLevel) { for (AActor* actor : world-PersistentLevel-Actors) { if (actor actor-IsA(APlayerController::StaticClass())) { FVector position actor-GetActorLocation(); // 處理坐標(biāo)數(shù)據(jù) } } }6.3 自定義引擎游戲的處理對(duì)于自定義引擎的游戲需要逆向分析反匯編分析使用IDA Pro或Ghidra分析游戲邏輯字符串引用查找坐標(biāo)相關(guān)的字符串引用函數(shù)調(diào)用分析跟蹤坐標(biāo)更新函數(shù)調(diào)用鏈內(nèi)存斷點(diǎn)在坐標(biāo)寫(xiě)入時(shí)設(shè)置內(nèi)存斷點(diǎn)分析調(diào)用棧7. 實(shí)戰(zhàn)案例2D游戲坐標(biāo)獲取完整示例7.1 案例游戲分析以經(jīng)典2D游戲?yàn)槔菔就暾鴺?biāo)獲取流程import cv2 import numpy as np import pyautogui import time class Simple2DGameCoordinateGetter: def __init__(self): self.templates { player: cv2.imread(templates/player.png), enemy: cv2.imread(templates/enemy.png) } def get_game_region(self): 識(shí)別游戲窗口區(qū)域 screenshot pyautogui.screenshot() screenshot cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) # 使用邊緣檢測(cè)識(shí)別游戲窗口 gray cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY) edges cv2.Canny(gray, 50, 150) # 查找輪廓 contours, _ cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) for contour in contours: x, y, w, h cv2.boundingRect(contour) if w 800 and h 600: # 假設(shè)游戲窗口最小尺寸 return (x, y, w, h) return None def monitor_positions(self): 持續(xù)監(jiān)控游戲內(nèi)對(duì)象位置 game_region self.get_game_region() if not game_region: print(未找到游戲窗口) return x, y, w, h game_region while True: # 截取游戲區(qū)域 screenshot pyautogui.screenshot(region(x, y, w, h)) game_frame cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) # 識(shí)別各個(gè)對(duì)象 for obj_name, template in self.templates.items(): result cv2.matchTemplate(game_frame, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc cv2.minMaxLoc(result) if max_val 0.8: obj_x max_loc[0] x # 轉(zhuǎn)換為屏幕坐標(biāo) obj_y max_loc[1] y print(f{obj_name}位置: ({obj_x}, {obj_y})) time.sleep(0.5) # 每500ms檢測(cè)一次 # 運(yùn)行監(jiān)控 getter Simple2DGameCoordinateGetter() getter.monitor_positions()8. 常見(jiàn)問(wèn)題與解決方案8.1 圖像識(shí)別精度問(wèn)題問(wèn)題現(xiàn)象模板匹配準(zhǔn)確率低經(jīng)常誤識(shí)別或漏識(shí)別解決方案使用多尺度模板匹配適應(yīng)不同大小的目標(biāo)結(jié)合顏色空間分析提高特征區(qū)分度采用深度學(xué)習(xí)方法進(jìn)行目標(biāo)檢測(cè)設(shè)置合適的置信度閾值平衡召回率和準(zhǔn)確率def multi_scale_template_match(image, template, scales[0.8, 1.0, 1.2]): 多尺度模板匹配 best_match None best_confidence 0 for scale in scales: # 縮放模板 width int(template.shape[1] * scale) height int(template.shape[0] * scale) resized_template cv2.resize(template, (width, height)) # 匹配 result cv2.matchTemplate(image, resized_template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc cv2.minMaxLoc(result) if max_val best_confidence: best_confidence max_val best_match (max_loc, (width, height), max_val) return best_match8.2 內(nèi)存地址不穩(wěn)定問(wèn)題問(wèn)題現(xiàn)象游戲更新后內(nèi)存地址失效需要重新查找解決方案使用特征碼掃描代替固定地址建立指針映射表適應(yīng)不同版本開(kāi)發(fā)自動(dòng)更新地址的機(jī)制使用模塊基址偏移量的方式提高穩(wěn)定性8.3 反作弊系統(tǒng)規(guī)避問(wèn)題現(xiàn)象游戲檢測(cè)到外部工具介入導(dǎo)致封號(hào)或游戲退出解決方案使用合法的測(cè)試接口如果游戲提供降低訪問(wèn)頻率模擬人類(lèi)操作模式使用驅(qū)動(dòng)級(jí)隱藏技術(shù)僅限合法研究用途優(yōu)先選擇單機(jī)游戲進(jìn)行技術(shù)驗(yàn)證9. 最佳實(shí)踐與工程化建議9.1 代碼架構(gòu)設(shè)計(jì)建立可維護(hù)的坐標(biāo)獲取框架from abc import ABC, abstractmethod from typing import Dict, Optional, Tuple class CoordinateProvider(ABC): 坐標(biāo)獲取器抽象基類(lèi) abstractmethod def get_coordinates(self) - Dict[str, Tuple[float, float]]: 獲取所有目標(biāo)的坐標(biāo) pass abstractmethod def is_available(self) - bool: 檢查是否可用 pass class ImageBasedProvider(CoordinateProvider): 基于圖像識(shí)別的坐標(biāo)提供器 def __init__(self): self.targets self.load_target_templates() def load_target_templates(self) - Dict[str, np.ndarray]: 加載目標(biāo)模板 # 實(shí)現(xiàn)模板加載邏輯 pass def get_coordinates(self) - Dict[str, Tuple[float, float]]: 通過(guò)圖像識(shí)別獲取坐標(biāo) coordinates {} screenshot self.capture_screen() for name, template in self.targets.items(): position self.find_template(screenshot, template) if position: coordinates[name] position return coordinates class MemoryBasedProvider(CoordinateProvider): 基于內(nèi)存讀取的坐標(biāo)提供器 def get_coordinates(self) - Dict[str, Tuple[float, float]]: 通過(guò)內(nèi)存讀取獲取坐標(biāo) # 實(shí)現(xiàn)內(nèi)存讀取邏輯 pass9.2 性能優(yōu)化策略異步處理使用多線程進(jìn)行圖像識(shí)別和內(nèi)存讀取緩存機(jī)制緩存不變的元素位置減少重復(fù)計(jì)算增量更新只處理發(fā)生變化的位置信息精度平衡根據(jù)需求調(diào)整檢測(cè)頻率和精度9.3 錯(cuò)誤處理與日志記錄建立完善的錯(cuò)誤處理機(jī)制import logging from datetime import datetime class CoordinateService: def __init__(self): self.logger self.setup_logger() self.providers [ImageBasedProvider(), MemoryBasedProvider()] def setup_logger(self): 配置日志系統(tǒng) logger logging.getLogger(CoordinateService) logger.setLevel(logging.INFO) # 創(chuàng)建文件處理器 fh logging.FileHandler(fcoordinate_log_{datetime.now().strftime(%Y%m%d)}.log) formatter logging.Formatter(%(asctime)s - %(levelname)s - %(message)s) fh.setFormatter(formatter) logger.addHandler(fh) return logger def safe_get_coordinates(self): 安全地獲取坐標(biāo)包含異常處理 for provider in self.providers: if provider.is_available(): try: return provider.get_coordinates() except Exception as e: self.logger.error(fProvider {type(provider).__name__} failed: {e}) continue self.logger.warning(All providers failed to get coordinates) return {}9.4 法律合規(guī)與道德考量明確用途僅用于學(xué)習(xí)研究和個(gè)人開(kāi)發(fā)尊重版權(quán)不破解商業(yè)游戲不開(kāi)發(fā)作弊工具遵守協(xié)議嚴(yán)格遵守游戲用戶(hù)協(xié)議技術(shù)導(dǎo)向關(guān)注技術(shù)實(shí)現(xiàn)而非實(shí)際應(yīng)用通過(guò)系統(tǒng)掌握不同游戲的坐標(biāo)獲取技術(shù)開(kāi)發(fā)者可以更好地理解游戲內(nèi)部機(jī)制為游戲開(kāi)發(fā)、測(cè)試和分析工作提供有力支持。建議從簡(jiǎn)單的2D游戲開(kāi)始實(shí)踐逐步掌握更復(fù)雜的技術(shù)方案。

相關(guān)新聞

Oracle DBA必學(xué)Python:自動(dòng)化運(yùn)維實(shí)戰(zhàn)與技能提升指南

Oracle DBA必學(xué)Python:自動(dòng)化運(yùn)維實(shí)戰(zhàn)與技能提升指南

隨著企業(yè)數(shù)據(jù)量激增和運(yùn)維自動(dòng)化需求提升,傳統(tǒng)Oracle DBA的工作邊界正在快速擴(kuò)展。近期在多個(gè)Oracle技術(shù)社區(qū)中,Python與DBA技能結(jié)合的討論熱度持續(xù)攀升——從自動(dòng)化巡檢腳本到性能監(jiān)控平臺(tái),Python正在成為DBA高效工作的關(guān)鍵工具。本文將以零…

2026/8/1 12:20:40 閱讀更多
【物理AI】和具身智能是什么關(guān)系?

【物理AI】和具身智能是什么關(guān)系?

物理AI具體指什么,和具身智能是什么關(guān)系 定義先行:兩個(gè)概念的邊界 要回答這個(gè)問(wèn)題,首先需要把兩個(gè)詞分別釘死在各自的定義上,否則后續(xù)討論容易滑向空泛。 具身智能(Embodied Intelligence)指一類(lèi)"載…

2026/8/1 12:20:40 閱讀更多
UEC++實(shí)戰(zhàn):從編碼效率到平臺(tái)跳躍游戲核心玩法與背景運(yùn)動(dòng)實(shí)現(xiàn)

UEC++實(shí)戰(zhàn):從編碼效率到平臺(tái)跳躍游戲核心玩法與背景運(yùn)動(dòng)實(shí)現(xiàn)

1. 項(xiàng)目概述:從番茄插件到角色與場(chǎng)景的動(dòng)態(tài)構(gòu)建 在UEC(虛幻引擎C)的開(kāi)發(fā)旅程中,我們常常會(huì)遇到一些看似基礎(chǔ),卻能極大提升開(kāi)發(fā)效率和游戲體驗(yàn)的“組合拳”。今天要聊的這個(gè)主題,就是一套非常典型的、從工具…

2026/8/1 12:20:40 閱讀更多
Box64高性能架構(gòu)實(shí)現(xiàn):深度解析跨平臺(tái)x86_64模擬器技術(shù)原理與優(yōu)化方案

Box64高性能架構(gòu)實(shí)現(xiàn):深度解析跨平臺(tái)x86_64模擬器技術(shù)原理與優(yōu)化方案

Box64高性能架構(gòu)實(shí)現(xiàn):深度解析跨平臺(tái)x86_64模擬器技術(shù)原理與優(yōu)化方案 【免費(fèi)下載鏈接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 項(xiàng)目地址: https://gitcode.com/gh_mirrors/bo/box64 …

2026/8/1 13:30:43 閱讀更多
單級(jí)共射放大電路:從理論計(jì)算到實(shí)操調(diào)試的完整指南

單級(jí)共射放大電路:從理論計(jì)算到實(shí)操調(diào)試的完整指南

1. 項(xiàng)目概述:從“搭積木”到“調(diào)聲音”的放大器初體驗(yàn) 剛接觸模擬電路的同學(xué),拿到“單級(jí)共射放大電路”這個(gè)實(shí)驗(yàn)任務(wù),第一反應(yīng)往往是:照著電路圖把元件焊上,通電,測(cè)幾個(gè)數(shù)據(jù),報(bào)告一交&#xff0…

2026/8/1 13:30:43 閱讀更多
SolidWorks二次開(kāi)發(fā):C#獲取裝配體邊界尺寸全攻略

SolidWorks二次開(kāi)發(fā):C#獲取裝配體邊界尺寸全攻略

1. 項(xiàng)目背景與需求解析 在機(jī)械設(shè)計(jì)領(lǐng)域,SolidWorks作為主流的三維CAD軟件,其二次開(kāi)發(fā)功能一直備受工程師關(guān)注。最近我在完成一個(gè)自動(dòng)化報(bào)表系統(tǒng)時(shí),遇到了一個(gè)典型需求:如何通過(guò)C#代碼獲取當(dāng)前裝配體的精確邊界尺寸。這個(gè)功能在生成…

2026/8/1 13:30:43 閱讀更多
MindPaw 技術(shù)解析(六):WiFi 網(wǎng)頁(yè)遙控模塊 —— ESP8266 嵌入式 Web 服務(wù)器的工程實(shí)踐

MindPaw 技術(shù)解析(六):WiFi 網(wǎng)頁(yè)遙控模塊 —— ESP8266 嵌入式 Web 服務(wù)器的工程實(shí)踐

項(xiàng)目 GitHub:https://github.com/ace-trump-tech/MindPaw 在桌面機(jī)器人的交互方式中,網(wǎng)頁(yè)遙控是最“輕量”卻最實(shí)用的方案——無(wú)需安裝任何 App,無(wú)需配對(duì)專(zhuān)用遙控器,任何一臺(tái)有瀏覽器的設(shè)備(手機(jī)、平板、電腦&#xff…

2026/8/1 13:30:43 閱讀更多
3分鐘找回QQ空間全部歷史說(shuō)說(shuō)的終極免費(fèi)指南

3分鐘找回QQ空間全部歷史說(shuō)說(shuō)的終極免費(fèi)指南

3分鐘找回QQ空間全部歷史說(shuō)說(shuō)的終極免費(fèi)指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 還記得那些年你在QQ空間寫(xiě)下的心情嗎?那些記錄著青春、夢(mèng)想、歡笑與淚水的說(shuō)說(shuō)&…

2026/8/1 13:20:42 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多