UG 二次开发- UG内部调用DLL

【1】用VS新建一个dll工程

将项目设置为x64平台(这步很重要,否则程序无法编译成功)

【2】添加UG头文件目录,属性页->C/C++->常规->附加包含目录

【3】添加UG库所在目录,属性页->链接器->常规->附加库目录

【4】添加附加依赖项,属性页->链接器->输入->附加依赖项

输入:

libufun.lib
libugopenint.lib
libvmathpp.lib
libnxopencpp.lib
libnxopenuicpp.lib

【5】添加所有lib作为依赖项(此步可跳过)

dos命令行输入下边两行命令,将会在e盘111.txt中写入“\NX 12.0\UGOPEN”所有lib文件名称

C:\Users\Administrator>cd /d C:\Program Files\Siemens\NX 12.0\UGOPEN
C:\Program Files\Siemens\NX 12.0\UGOPEN>dir /b *.lib*>e:\111.txt

【6】代码:注释掉DllMain,ufusr为NX的接口函数

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
//#pragma comment(lib, "C:\\Program Files\\Siemens\\NX 10.0\\UGOPEN\\libugopenint.lib")
//#pragma comment(lib, "C:\\Program Files\\Siemens\\NX 10.0\\UGOPEN\\ugopenui.lib.lib")
#include "uf.h"				// 包含常用 UF 函数的声明
#include "uf_modl.h"		// 包含建模相关的 UF 函数声明
#include "uf_ui.h"			// 包含界面操作相关的 UF 函数声明
#include <stdio.h>// 实际工作函数
static void do_work(void)
{uc1601("do task!", 1);return;}void ufusr(char* param, int* retcode, int paramLen)
{if (!UF_initialize())//获取二次开发许可 {uc1601("获取开发许可成功!", 1);//获取二次开发许可失败,提示用户 do_work();//实际工作函数 UF_terminate();//释放二次开发许可 }else{uc1601("获取开发许可失败,退出!", 1);//获取二次开发许可失败,提示用户 }
}/*
BOOL APIENTRY DllMain( HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved)
{switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;
}*/

【7】调用

新建一个模型

Ctrl+U或者文件->执行->NX Open

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

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

相关文章

wordcount在mapreduce的例子

1.启动集群 2.创建项目 项目结构为&#xff1a; 3.pom.xml文件为 <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://mave…

智慧城市综合运营管理系统Axure原型

这款Axure原型的设计理念紧紧围绕城市管理者的需求展开。它旨在打破传统城市管理中信息孤岛的局面&#xff0c;通过统一标准接入各类业务系统&#xff0c;实现城市运营管理信息资源的全面整合与共享。以城市管理者为中心&#xff0c;为其提供一个直观、便捷、高效的协同服务平台…

Go语言:json 作用和语法

在 Go 语言中&#xff0c;JSON 字段&#xff08;也称为 JSON Tag&#xff09;是附加在结构体字段上的元数据&#xff0c;用于控制该字段在 JSON 编码&#xff08;序列化&#xff09;和解码&#xff08;反序列化&#xff09; 时的行为。它的语法是&#xff1a; type StructName…

MATLAB复制Excel数据到指定区域

Matlab中如何将Excel表中的265-528行F-AA列数据复制到1-263行AE-AZ中 版本&#xff1a;MatlabR2018b clc; clear; %旧Excel文件名 oldFile ; %新Excel文件名 newFile ; % 工作表名称&#xff08;旧表和新表一致&#xff09; sheetName Sheet1; % 旧文件中待复制的数据范…

vue3+flask+sqlite前后端项目实战

基础环境安装 pycharm 下载地址&#xff1a; https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows vscode 下载地址 https://code.visualstudio.com/docs/?dvwin64user python 下载地址 https://www.python.org/downloads/windows/ Node.js&#xff08;含npm…

Java 内存模型(JMM)与内存屏障:原理、实践与性能权衡

Java 内存模型&#xff08;JMM&#xff09;与内存屏障&#xff1a;原理、实践与性能权衡 在多线程高并发时代&#xff0c;Java 内存模型&#xff08;JMM&#xff09; 及其背后的内存屏障机制&#xff0c;是保障并发程序正确性与性能的基石。本文将系统梳理 JMM 的核心原理、内…

动手学深度学习12.3.自动并行-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;无 本节教材地址&#xff1a;12.3. 自动并行 — 动手学深度学习 2.0.0 documentation 本节开源代…

C++类和对象之初始化列表

初始化列表 C初始化列表详解&#xff1a;性能优化与正确实践什么是初始化列表&#xff1f;初始化列表的三大核心作用1. 性能优化&#xff1a;避免不必要的赋值操作2. 强制初始化&#xff1a;处理const和引用成员3. 基类初始化&#xff1a;正确调用父类构造函数4.必须使用初始化…

continue通过我们的开源 IDE 扩展和模型、规则、提示、文档和其他构建块中心,创建、共享和使用自定义 AI 代码助手

​一、软件介绍 文末提供程序和源码下载 Continue 使开发人员能够通过我们的开源 VS Code 和 JetBrains 扩展以及模型、规则、提示、文档和其他构建块的中心创建、共享和使用自定义 AI 代码助手。 二、功能 Chat 聊天 Chat makes it easy to ask for help from an LLM without…

基于Spring Boot + Vue的母婴商城系统( 前后端分离)

一、项目背景介绍 随着母婴行业在互联网平台的快速发展&#xff0c;越来越多的家庭倾向于在线选购母婴产品。为了提高商品管理效率和用户购物体验&#xff0c;本项目开发了一个基于 Spring Boot Vue 技术栈的母婴商城系统&#xff0c;实现了商品分类、商品浏览、资讯展示、评…

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API 理论千遍,不如动手一遍!在前面几篇文章中,我们了解了 Serverless 的概念、FaaS 的核心原理以及 BaaS 的重要作用。现在,是时候把这些知识运用起来,亲手构建一个简单但完整的 Serverless 应用了。 …

node.js 实战——express图片保存到本地或服务器(七牛云、腾讯云、阿里云)

本地 ✅ 使用formidable 读取表单内容 npm i formidable ✅ 使用mime-types 获取图片后缀 npm install mime-types✅ js 中提交form表单 document.getElementById(uploadForm).addEventListener(submit, function(e){e.preventDefault();const blob preview._blob;if(!blob)…

2025最新:3分钟使用Docker快速部署单节点Redis

&#x1f9d1;‍&#x1f3eb; 详细教程&#xff1a;通过 Docker 安装单节点 Redis &#x1f6e0;️ 前提条件&#xff1a; 你需要在 Ubuntu 系统上进行操作&#xff08;如果你在其他系统上操作&#xff0c;可以按相似步骤进行调整&#xff09;。已安装 Docker 和 Docker Com…

CentOS 7 系统下安装 OpenSSL 1.0.2k 依赖问题的处理

前面有提到过这个openssl的版本冲突问题&#xff0c;也是在这次恢复服务器时遇到的问题&#xff0c;我整理如下&#xff0c;供大家参考。小小一个软件的安装&#xff0c;挺坑的。 一、问题 项目运行环境需要&#xff0c;指定PHP7.0.9这个版本&#xff0c;但是‌系统版本与软件…

LoRA(Low-Rank Adaptation)原理详解

LoRA(Low-Rank Adaptation)原理详解 LoRA(低秩适应)是一种参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)技术,旨在以极低的参数量实现大模型在特定任务上的高效适配。其核心思想基于低秩分解假设,即模型在适应新任务时,参数更新矩阵具有低秩特性,可用少量参…

Solana批量转账教程:提高代币持有地址和生态用户空投代币

前言 Solana区块链因其高吞吐量和低交易费用成为批量操作&#xff08;如空投&#xff09;的理想选择。本教程将介绍几种在Solana上进行批量转账的方法&#xff0c;帮助您高效地向多个地址空投代币。 solana 账户模型 在Solana中有三类账户&#xff1a; 数据账户&#xff0c;…

基于LSTM与SHAP可解释性分析的神经网络回归预测模型【MATLAB】

基于LSTM与SHAP可解释性分析的神经网络回归预测模型【MATLAB】 一、引言 在数据驱动的智能时代&#xff0c;时间序列预测已成为许多领域&#xff08;如金融、气象、工业监测等&#xff09;中的关键任务。长短期记忆网络&#xff08;LSTM&#xff09;因其在捕捉时间序列长期依…

手机网页提示ip被拉黑名单什么意思?怎么办

‌当您使用手机浏览网页时&#xff0c;突然看到“您的IP地址已被列入黑名单”的提示&#xff0c;是否感到困惑和不安&#xff1f;这种情况在现代网络生活中并不罕见&#xff0c;但确实会给用户带来诸多不便。本文将详细解释IP被拉黑的含义、常见原因&#xff0c;并提供一系列实…

Java消息队列性能优化实践:从理论到实战

Java消息队列性能优化实践&#xff1a;从理论到实战 1. 引言 在现代分布式系统架构中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;MQ&#xff09;已经成为不可或缺的中间件组件。它不仅能够实现系统间的解耦&#xff0c;还能提供异步通信、流量削峰等重要功能…

BUUCTF——Cookie is so stable

BUUCTF——Cookie is so stable 进入靶场 页面有点熟悉 跟之前做过的靶场有点像 先简单看一看靶场信息 有几个功能点 flag.php 随便输了个admin 根据题目提示 应该与cookie有关 抓包看看 构造payload Cookie: PHPSESSIDef0623af2c1a6d2012d57f3529427d52; user{{7*7}}有…