CAD填充图案从文件加载图案定义
1、在上一篇文章中介绍了在CAD图纸中由闭合区域一点绘制一个填充对象,那么这篇文章将介绍填充图案从文件加载图案定义。
2、实现思路:首先我们先在控件视区的闭合区域点取一点,然后利用DrawHatchFromPoint方法在当前控件显示范围内搜缩闭合区域,然后用该闭合区域创建填充对象。定义填充图案的文件名,再通过ObjectIdToObject方法由实体id返回实体对象,最后通过LoadPatternDefinition方法从文件加载图案定义就可以啦。
3、主要用到函数说明:
(1)_DMxDrawX::DrawHatchFromPoint
根据一个点,在当前控件显示范围内搜缩闭合区域,然后用该闭合区域创建填充对象,详细说明如下:
参数 |
说明 |
---|---|
DOUBLE dX |
开始搜索点X值 |
DOUBLE dY |
开始搜索点y值 |
DOUBLE dPatternScale |
图案缩放比例 |
(2)IMxDrawDatabase::ObjectIdToObject
实体id返回实体对象,具体详细如下:
参数 |
说明 |
---|---|
[in] LONGLONG lId |
实体id |
(3)IMxDrawHatch::LoadPatternDefinition
从文件加载图案定义,详细说明如下:
参数 |
说明 |
---|---|
[in] BSTR pszFileName |
图案定义文件 |
[in] BSTR pszName |
图案名称 |
[in] DOUBLE dPatternScale |
缩放比例,默认传1.0 dPatternAngel -角度,默认传0.0 |
c#代码实现如下:
MxDrawUiPrPoint getPoint = new MxDrawUiPrPoint();getPoint.message = "点取一点:"; if (getPoint.go() != MCAD_McUiPrStatus.mcOk) return;MxDrawPoint pt = getPoint.value();axMxDrawX1.PatternDefinition = "SOLID";Int64 id = axMxDrawX1.DrawHatchFromPoint(pt.x, pt.y, 1.0); if (id == 0) return; // 修改新绘的填充的图案从文件中加载.String sPatternFile = axMxDrawX1.GetOcxAppPath() + "\mx.pat";String sPatternName = "ANSI35";MxDrawHatch hatch = (MxDrawHatch)axMxDrawX1.ObjectIdToObject(id);hatch.LoadPatternDefinition(sPatternFile, sPatternName, 300.0, 0.0);
js代码实现如下:
var getPoint = mxOcx.NewComObject("IMxDrawUiPrPoint");getPoint.message = "点取一点";if (getPoint.go() != 1) {return;
}
var frstPt = getPoint.value();
if (frstPt == null)return;mxOcx.PatternDefinition = "SOLID";
var id = mxOcx.DrawHatchFromPoint(frstPt.x, frstPt.y, 1.0);if (id == 0)return;// 修改新绘的填充的图案从文件中加载.
var sPatternFile = mxOcx.GetOcxAppPath() + "\\mx.pat";
var sPatternName = "ANSI35";var hatch = mxOcx.ObjectIdToObject(id);
hatch.LoadPatternDefinition(sPatternFile, sPatternName, 300.0, 0.0);
CAD填充图案从文件加载图案定义相关推荐
- cad重新加载php命令,linux修改php.ini后重新加载配置文件命令 如何在不cad的况下重新加载acad...
延伸:如何在不cad的况下重新加载acad 问题:我在绘图过程中想要调整acad.pgp,担 但修改后需要 重新启 回答:能不能再说清楚点,我不太懂!例如:ET工具或者Bonus工具在哪里? 查看原帖 ...
- 已解决微软Office2016 Excel卡顿\缓慢、打开第二个文件加载很慢问题(亲测有效)
已解决微软Office2016 Excel卡顿\缓慢.打开第二个文件加载很慢问题(亲测有效) 文章目录 问题描述 问题分析 解决方法1 解决方法2 解决方法3 1) 修改基本设置 2)修改配置文件 千 ...
- Cocos2d之Texture2D类详解之将文件加载成Texture2D对象
一.声明 笔者以cocos2d框架cocos2d-x-3.3rc0版本的源码做分析.本文为笔者原创,允许转载和分享,只要注明文章出处即可. 二.简介 Texture2D类简介 Texture2D类允许 ...
- 高性能javascript 文件加载阻塞
高性能javascript javascript脚本执行过程中会中断页面加载,直到脚本执行完毕,此操作阻塞了页面加载,造成性能问题. 脚本位置和加载顺序: 如果将脚本放在head内,那么再脚本执行 ...
- 用 C 语言开发一门编程语言 — 字符串与文件加载
目录 文章目录 目录 前文列表 字符串 读取字符串 注释 文件加载函数 命令行参数 打印函数 报错函数 源代码 前文列表 <用 C 语言开发一门编程语言 - 交互式解析器> <用 C ...
- wpf 加载资源html,从资源文件加载WPF样式
我试图从 WPF自定义控件库实际上从其他文件加载WPF样式 但我没有加载这里是我的解决方案. 该解决方案包含两个项目 >类型WPF自定义控件库的WpfTestControls > WPF应 ...
- python opencv imread()函数 (从文件加载图像)
def imread(filename, flags=None): # real signature unknown; restored from __doc__"""i ...
- php基础语法(文件加载和错误)
文件加载 有4个文件加载的语法形式(注意,不是函数): include, include_once, require, require_once; 他们的本质是一样的,都是用于加载/引入/包含/载 ...
- linux 加载 iso,Linux iso文件加载和解包的用法
Linux iso文件已被广泛应用但是也在不断的更新,这里介绍Linux iso文件安装设置使用,帮助大家安装更新Linux iso文件系统.软件包管理 之Linux Fedora 软件包管理器sys ...
最新文章
- 搭建Windows Server 2008故障转移群集
- [New Portal]Windows Azure Virtual Machine (5) 配置VM的Endpoints
- redis 入门教程
- js insertBefore insertAfter appendChild
- Unicode utf8等编码类型的原理
- 试用 Vista RC1 ,正式版离我们越来越近
- 利用 livy 远程提交 spark作业
- .Net Aop(静态织入)框架 BSF.Aop
- 你会换吗?报告称将有大批iPhone用户升级苹果5G新机
- python计算结果向上取整_python中的向上取整向下取整以及四舍五入的方法
- time_t 和 struct tm 及时间戳的正确用法
- 怎么把代码放图片里面进行注入_揭秘代码分层后的新世界
- 深入解读Docker底层技术Cgroup系列(5)——cgroup子系统cpuset
- logmmse降噪算法
- Java生成、解析二维码方案以及代码实现
- 小火狐进化_第34章 契约小火狐
- 【很赞的一片文章】android获取手机号码(主要是移动手机)
- 81章 老子1章到_《道德经》81章全文(建议收藏)
- python运算符计算集合并集_Python集合、集合的运算、集合方法详细讲解
- 【观察】从新华三2022十大技术趋势,看数字化如何重塑未来社会
热门文章
- 世界需要一种什么样的语言?
- 在Eclipse中手动安装pydev插件(一切都是被逼的,垃圾网络)
- 被逼着参加QQ“酷感夏日”活动
- WebSocket私信聊天(无群聊天)
- [转]产品经理 书目录
- 《疯狂动物城》主题曲《TryEverything》中文翻译
- 体验游戏,就在即刻!Google Play Instant
- 在采用总线型结构的计算机网络中,在采用总线型结构的计算机网络中,()。
- LaTeX 花体字母和数字
- python pandas读取数据报错:Traceback (most recent call last):anaconda3/lib/python3.7/site-packages/pandas/i