AutoCAD.NET 下二次开发启动打印并导出尺寸标注数据

该需求主要是:

为了对工程设计图纸尺寸进行编号,需要打印整个图纸,打印格式为JPG图片;另外就是将各个尺寸标注数据导出,涉及尺寸的文本、坐标、类型等。

部分代码

var btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForWrite);
						var lo = (Layout)tr.GetObject(btr.LayoutId, OpenMode.ForWrite);

                        // Extmin and Extmax - Returns the extents of Model space.
                        // Pextmin and Pextmax - Returns the extents of the current Paper space layout.
						var startPoint =new Point3d(lo.Limits.MinPoint.X,lo.Limits.MinPoint.Y,0);
                        var endPoint = new Point3d(lo.Limits.MaxPoint.X, lo.Limits.MaxPoint.Y, 0);
						if ( endPoint.X < doc.Database.Pextmax.X ) {
							startPoint = doc.Database.Pextmin;
							endPoint = doc.Database.Pextmax;
                        }
                        else if (endPoint.X < doc.Database.Extmax.X)
                        {
                            startPoint = doc.Database.Extmin;
							endPoint = doc.Database.Extmax;
                        }

						// Transform from UCS to DCS
						var rbFrom = new ResultBuffer(new TypedValue(5003, 1));
						var rbTo = new ResultBuffer(new TypedValue(5003, 2));

						var firres = new double[] { 0, 0, 0 };
						var secres = new double[] { 0, 0, 0 };

						// Transform the first point...			
						acedTrans(
							startPoint.ToArray(),
							rbFrom.UnmanagedObject,
							rbTo.UnmanagedObject,
							0,
							firres
							);
acDoc.Editor.WriteMessage("\n  " + layout.Key);

					var acLayout = acTrans.GetObject(layout.Value, OpenMode.ForRead) as Layout;

					var filterRules = new TypedValue[]{
						new TypedValue((int)DxfCode.Operator,"<and"),
						new TypedValue((int)DxfCode.LayoutName,layout.Key),
						new TypedValue((int)DxfCode.Operator,"and>"),
					};//过滤所有曲线

					var filter = new SelectionFilter(filterRules);

					var selectionResult = editor.SelectAll(filter);
					if ( selectionResult.Status != PromptStatus.OK ) {
						editor.WriteMessage("Warning:未选择任何元素!\n");
						continue;
					}

					var allFindings = selectionResult.Value.GetObjectIds().Select(x => acTrans.GetObject(x, OpenMode.ForWrite));

					if ( allFindings.Count() == 0 ) {
						editor.WriteMessage("Warning:" + layout.Key + "下不包含任何元素!\n");
						continue;
					}

					// FeatureControlFrame
					var cadDimensions = allFindings
							.OfType<Dimension>()
							//.OrderByDescending(u => u.TextPosition.Y).ThenBy(u => u.TextPosition.X)
							.ToList();
					var toleranceFeatureControls = allFindings
							.OfType<FeatureControlFrame>()
							//.OrderByDescending(u => u.Location.Y).ThenBy(u => u.Location.X)
							.ToList();
					if ( cadDimensions.Count == 0 && toleranceFeatureControls.Count == 0 ) {
						editor.WriteMessage("Warning:" + layout.Key + "下未找到有效尺寸元素!\n");
						continue;
					}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: AutoCAD.NET是一种在AutoCAD平台上进行二次开发的工具,它允许开发者使用.NET编程语言(比如C#、VB.NET等)来创建自定义的功能和工具。 深入浅出AutoCAD.NET二次开发源码,意味着通过研究和理解AutoCAD.NET二次开发的源码,来掌握如何使用AutoCAD.NET来进行二次开发。 在开始深入研究源码之前,我们需要了解一些基础知识。首先,我们需要掌握AutoCAD的基本概念和操作方法,包括如何启动和关闭AutoCAD、如何创建新的绘图、如何绘制、编辑和修改图形等等。其次,我们需要掌握.NET编程语言,并熟悉Visual Studio这样的开发环境。 一旦我们具备了这些基础知识,我们可以开始研究AutoCAD.NET二次开发源码。源码通常会包含一些示例代码,我们可以通过阅读这些示例代码来理解AutoCAD.NET的主要功能和使用方法。同时,我们还可以通过分析源码的结构和逻辑,来学习AutoCAD.NET的工作原理和内部机制。 通过深入浅出的学习源码,我们可以逐步掌握AutoCAD.NET二次开发技术。我们可以根据自己的需求来扩展和定制AutoCAD的功能,比如创建自定义的命令、添加新的工具栏和菜单、实现特定的绘图算法等等。此外,通过阅读源码,我们还可以学习到一些编程技巧和最佳实践,从而加强我们的编程能力。 总之,深入浅出AutoCAD.NET二次开发源码是一项挑战和学习的过程,但通过不断研究和实践,我们可以逐渐掌握AutoCAD.NET二次开发技术,并应用于实际的项目中。这将为我们提供更多的自定义功能和灵活性,帮助我们更好地完成各种AutoCAD相关的任务。 ### 回答2: autocad.net是一个用于二次开发自动CAD软件的编程接口。为了深入理解和掌握autocad.net二次开发源码,首先需要了解一些基础知识。 autocad.net是建立在.NET开发平台上的,因此需要具备良好的C#编程能力。熟悉C#的语法和特性将有助于我们更好地理解autocad.net源码的实现原理和细节。 在进行autocad.net二次开发时,我们可以通过查阅官方文档和示例代码来学习和理解源码。官方文档通常提供了对各种对象和方法的详细解释,示例代码将具体演示了如何使用这些对象和方法进行二次开发。 接下来,我们需要了解autocad.net的开发框架和主要功能模块。了解这些模块的作用和相互之间的关系,可以帮助我们更好地理解和分析源码。 在深入浅出autocad.net二次开发源码的过程中,我们需要进行代码分析和调试。通过阅读源码,我们可以了解autocad.net在底层如何实现不同功能,理解其代码逻辑和设计思路。 在理解源码的基础上,我们可以根据自己的需求进行二次开发。这意味着我们可以根据具体的业务场景和需求,对源码进行修改和定制,以满足我们的开发目标。 总之,想要深入浅出地理解autocad.net二次开发源码,我们需要具备一定的C#编程能力,并且通过学习官方文档和示例代码来掌握autocad.net的基础知识。通过代码分析和调试,我们可以更深入地了解其实现细节。最后,根据自己的需求进行二次开发,加深对源码的理解和掌握。 ### 回答3: autocad.net是一种用于二次开发AutoCAD软件的编程语言和框架。它基于.NET平台,并提供了一系列的接口和类库,用于访问和操作AutoCAD软件的各种功能和对象。 深入浅出autocad.net二次开发源码意味着我们需要透彻理解和熟悉autocad.net的编程原理和方法,以便能够根据自己的需求进行二次开发。下面是一些源码的相关内容,帮助我们理解和学习autocad.net二次开发。 1. 类和对象:源码中包含了一些核心类和对象的定义,如Application、Document、Layer、Block等。了解这些类和对象的属性、方法和事件,可以帮助我们在二次开发中正确地操作和管理AutoCAD软件的各种元素。 2. 命令和交互:源码中包含了一些处理命令和交互的代码,例如注册命令、响应用户输入等。学习这些代码可以让我们实现自定义的命令和用户交互界面,提高程序的灵活性和易用性。 3. 绘图和编辑:源码中包含了一些绘图和编辑功能的实现,例如绘制线段、插入块等。通过学习这些代码,我们可以了解和掌握自定义绘图和编辑功能的实现方法。 4. 数据处理:源码中包含了一些数据处理的代码,例如读取和操作AutoCAD中的图形数据。学习这些代码可以帮助我们实现一些智能化的数据处理功能,例如自动计算、分析等。 5. 错误处理:源码中还包含了一些错误处理的代码,例如异常捕获和处理。学习这些代码可以帮助我们编写健壮的程序,提高程序的可靠性和稳定性。 通过深入浅出地学习和理解这些源码,我们可以更好地掌握autocad.net二次开发的技巧和方法,从而能够根据自己的需求进行自定义开发,提高AutoCAD软件的功能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值