C#进行二次开发

muyangren0633 2016-07-04 02:12:24
在使用C#进行二次开发中遇到了一个问题:开发要求是使用程序设计一个界面,可以与用户进行交互,用户可以输入草图的参数方程来画出草图。我的想法是,使用C#的SwCSharpAddin插件生成模板,通过将函数改写为load form;form.show()函数调出设计好的窗口。问题出现了:当我调试的时候,在弹出的窗口中写入参数方程,当点击自动建模指令后,SW并没有反应,而是直接退出C#的编译。作为一只小白,不懂这种情况出现的问题在哪里,希望能得到各位大神的指点,谢谢。

...全文
956 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccvah 2016-07-30
  • 打赏
  • 举报
回复
您好,我们可以交流一下吗?我最近在在用C#对SolidWorks进行二次开发
Imcx 2016-07-06
  • 打赏
  • 举报
回复
引用 13 楼 muyangren0633 的回复:
[quote=引用 12 楼 muyangren0633 的回复:] [quote=引用 11 楼 Imcx_ 的回复:] 里面的参数 => 等号后面的参数
您好 swApp确实是null 应该是没有进行赋值的缘故 但在sw自带的api帮助文档中的例子中也是一样的使用方法啊 不知道为什么我在使用的时候会闪退 是因为在这边我使用的是wpf的关系吗?[/quote] 另外 想问一下 您说得“里面的参数 => 等号后面的参数”是什么意思啊[/quote] 前面回复打错字修改一下的意思。。。
Imcx 2016-07-06
  • 打赏
  • 举报
回复
你可以单独测试为什么swApp会在赋值后还是为null,比如文件路径有误
Imcx 2016-07-05
  • 打赏
  • 举报
回复
里面的参数 => 等号后面的参数
Imcx 2016-07-05
  • 打赏
  • 举报
回复
引用 9 楼 muyangren0633 的回复:
[quote=引用 6 楼 zhi_ai_yaya 的回复:]
 try
 {
     ModelDoc2 swModel = (ModelDoc2)swApp.NewDocument(partTemplate, (int)swDwgPaperSizes_e.swDwgPaperA2size, 0.0, 0.0);
 }
catch (Exception ex)
 {
     Console.WriteLine("错误:"+ ex.Message + ex.StackTrace);
 }
把错误打印出来看看
第二,ex也显示未将引用设置到对象..[/quote] swModel为null可能是由于里边的参数为null引起的,如果swModel是可以为null的类你这里是不会报错的,应该会在后面使用的时候才出现这个,看下到这一步时swApp的值
muyangren0633 2016-07-05
  • 打赏
  • 举报
回复
引用 12 楼 muyangren0633 的回复:
[quote=引用 11 楼 Imcx_ 的回复:] 里面的参数 => 等号后面的参数
您好 swApp确实是null 应该是没有进行赋值的缘故 但在sw自带的api帮助文档中的例子中也是一样的使用方法啊 不知道为什么我在使用的时候会闪退 是因为在这边我使用的是wpf的关系吗?[/quote] 另外 想问一下 您说得“里面的参数 => 等号后面的参数”是什么意思啊
muyangren0633 2016-07-05
  • 打赏
  • 举报
回复
引用 11 楼 Imcx_ 的回复:
里面的参数 => 等号后面的参数
您好 swApp确实是null 应该是没有进行赋值的缘故 但在sw自带的api帮助文档中的例子中也是一样的使用方法啊 不知道为什么我在使用的时候会闪退 是因为在这边我使用的是wpf的关系吗?
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复
引用 6 楼 zhi_ai_yaya 的回复:
 try
{
ModelDoc2 swModel = (ModelDoc2)swApp.NewDocument(partTemplate, (int)swDwgPaperSizes_e.swDwgPaperA2size, 0.0, 0.0);
}
catch (Exception ex)
{
Console.WriteLine("错误:"+ ex.Message + ex.StackTrace);
}


把错误打印出来看看


就比如这个问题 我能发现这里有两个问题:第一swModel显示为null,表示没有值 可能是实例化过程中出现问题 但是swApp.NewDocument()函数我之前使用过 就是用这样的方式 没有问题啊;第二,ex也显示未将引用设置到对象 之前用Exception实例化的时候也没有出现问题啊 也是这样的使用方法 用try...catch语句..
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复
引用 7 楼 zhi_ai_yaya 的回复:
[quote=引用 4 楼 muyangren0633 的回复:] [quote=引用 3 楼 zhi_ai_yaya 的回复:] 在btnBuild_Click代码中逐行调试。
、 前辈见谅 我没有搞过编程 请问我调试时为了发现什么错误呢?[/quote] 没有人天生就会编程的,不会就学习,学不会再说。 调试是为了发现错误,至于具体是什么错误,得发现了才知道。代码打断点,逐语句F11,逐过程F10调试,先学会这3个操作,再学写代码[/quote] 您说得很有道理 之前我在看书的时候还不理解 断点调试到底有什么用 现在真正写代码的时候才体会到熟练使用它们或者用try..catch语句找到问题有多重要。现在还有一个问题 因为自己没有编程经验 有时候即使找到问题也不知道该怎么修改 不知道您有什么建议?
我叫小菜菜 2016-07-04
  • 打赏
  • 举报
回复
引用 4 楼 muyangren0633 的回复:
[quote=引用 3 楼 zhi_ai_yaya 的回复:] 在btnBuild_Click代码中逐行调试。
、 前辈见谅 我没有搞过编程 请问我调试时为了发现什么错误呢?[/quote] 没有人天生就会编程的,不会就学习,学不会再说。 调试是为了发现错误,至于具体是什么错误,得发现了才知道。代码打断点,逐语句F11,逐过程F10调试,先学会这3个操作,再学写代码
我叫小菜菜 2016-07-04
  • 打赏
  • 举报
回复
 try
 {
     ModelDoc2 swModel = (ModelDoc2)swApp.NewDocument(partTemplate, (int)swDwgPaperSizes_e.swDwgPaperA2size, 0.0, 0.0);
 }
catch (Exception ex)
 {
     Console.WriteLine("错误:"+ ex.Message + ex.StackTrace);
 }
把错误打印出来看看
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复
引用 3 楼 zhi_ai_yaya 的回复:
在btnBuild_Click代码中逐行调试。
你好 我逐步调试后发现 程序在执行到“ModelDoc2 swModel = (ModelDoc2)swApp.NewDocument(partTemplate, (int)swDwgPaperSizes_e.swDwgPaperA2size, 0.0, 0.0);”时出现闪退,请问您觉得会是什么原因造成的 我该如何修改呢?
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复
引用 3 楼 zhi_ai_yaya 的回复:
在btnBuild_Click代码中逐行调试。
、 前辈见谅 我没有搞过编程 请问我调试时为了发现什么错误呢?
我叫小菜菜 2016-07-04
  • 打赏
  • 举报
回复
在btnBuild_Click代码中逐行调试。
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复
这是调试输出的信息 我觉得应该是这个问题 但是我不知道这代表什么意思 请各位前辈帮帮忙 调试时的闪退是因为下图中的原因吗 出现这种情况该如何解决?
muyangren0633 2016-07-04
  • 打赏
  • 举报
回复

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧