编程经验交流.docx
《编程经验交流.docx》由会员分享,可在线阅读,更多相关《编程经验交流.docx(15页珍藏版)》请在冰点文库上搜索。
编程经验交流
编程经验交流2014
共享调试机上的visualstudio上的远程调试目录(以我的机器为例)
c:
\programfiles\microsoftvisualstudio.net
2014\common7\packages\debugger
*远程机将上面的共享目录考贝到本地,比如:
d:
\\debugger
*调试机共享要调试的程序所在目录,比如:
d:
\important\cvsroot\dv-to-dvd\bin\debug
*远程机将调试机上的目录影射为本地目录。
比如:
z:
\\
*远程机上以命令行形式执行d:
\\debugger\msvcmon.exe–tcpip–anyuser
*调试机启动vc.打开要调试的工程。
比如dvtodvd.选择菜单project->properties选debuging->remotesetting
connection:
remoteviatcp/ip(nativeonly)
remotemachine:
remotecommand:
z:
\dvtodvd.exe
*debug->start
*就可以调试了。
1.如何在release状态下进行调试
project->setting=>projectsetting对话框,选择release状态。
c/c++标签中的category选general,optimizations选disable(debug),debutinfo选programdatabase。
在link标签中选中generatedebuginfo复选框。
注:
只是一个介乎debug和release的中间状态,所有的assert、verify都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下quickwatch、调用队列跟踪功能仍然有效,和debug版一样。
2.release和debug有什么不同
release版称为发行版,debug版称为调试版。
debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。
release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。
release的exe文件链接的是标准的mfcdll(usemfcinasharedorstaticdll)。
这些dll在安装windows的时候,已经配置,所以这些程序能够在没有安装visualc++6.0的机器上运行。
而debug版本的exe链接了调试版本的mfcdll文件,在没有安装visualc++6.0的机器上不能运行,因为缺相应的dll,除非选择usestaticdllwhenlink。
3.assert和verify有什么区别
assert里面的内容在release版本中不编译,verify里面的内容仍然翻译,但不再判断真假。
所以后者更安全一点。
例如assert(file.open(strfilename))。
一旦到了release版本中,这一行就忽略了,file根本就不open()了,而且没有任何出错的信息。
如果用verify()就不会有这个问题。
4.workspace和project之间是什么样的关系
每个workspace可以包括几个project,但只有一个处于active状态,各个project之间可以有依赖关系,在project的setting..中可以设定,比如那个active状态的project可以依赖于其他的提供其函数调用的静态库。
5.如何在非mfc程序中使用classwizard
在工程目录下新建一个空的.rc文件,然后加入到工程中就可以了。
6.如何设置断点
按f9在当前光标处增加一个断点和取消一个断点。
另外,在编辑状态下,按ctrl+b组合键,弹出断点设置对话框。
然后单击【condition…】按钮弹出设置断点条件的对话框进行设置。
7.在编辑状态下发现成员变量或函数不能显示提示是如何打开显示功能
这似乎是目前这个visualc++6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:
(1)关闭project
(2)删除“工程名.ncb”文件
(3)重新打开工程
8.如何将一个通过classwizard生成的类彻底删除
首先在工作区的fileview中选中该类的.h和.cpp文件,按delete删除,然后在文件管理器中将这两个文件删除,再运行classwizard,这时出现是否移走该类的提示,选择remove就可以了。
9.如何将在workspace中消失的类找出来
打开该类对应的头文件,然后将其类名随便改一下,这个时候工作区就会出现新的类,再将这个类改回原来的名字就可以了。
10.如何清除所有的断点
菜单【edit】->【breakpoints…】,打开“breakpoints”对话框,单击【removeall】按钮即可。
快捷键是“ctrl+shift+f8”。
11.如何再classwizard中选择未列出的信息
打开“classwizard”对话框,然后切换到“classinfo”页面。
改变“messagefilter”,如选择“window”,“message”页面就会出现window的信息。
12.如何检测程序中的括号是否匹配
把光标移动到需要检测的括号前面,按快捷键“ctrl+]”。
如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告。
13.如何查看一个宏(或变量、函数)的定义
把光标移动到要查看的一个宏上,就比如说最常见的declare_map_message上按一下f12(或右键菜单中的相关菜单),如果没有建立浏览文件,就会出现提示对话框,按【确定】按钮,然后就会跳到该宏(或变量、函数)定义的地方。
14.如何添加lib文件到当前工程
单击菜单【project】->【settings…】弹出“projectsetting”对话框,切换到“link”标签页,在“object/librarymodules”处输入lib文件名称,不同的lib之间用空格格开。
15.如何快速删除项目下的debug文件夹中临时文件
在工作区的fileview视图中选中对应的项目,单击右键弹出菜单,选择【clean(selectiononly)】菜单即可。
16.如何快速生成一个现有工程除了工程名外完全相同的新工程
在新建工程的“new”对话框中选择“customappwizard”项,输入新工程的名字,单击
【ok】按钮。
出现“customappwizard”项,输入新工程的名字,单击【ok】按钮。
出现“customappwizard-step1of2”对话框,选择“anexistingproject”项,单击
【next】按钮。
出现“customappwizard-step2of2”对话框,选择现有工程的工程文件名,最后单击【finish】按钮。
编译后就生成一个与现有工程相同但可以重新取名的工程appwizard。
现在就可以项用mfcappwizard一样用这个定制的向导。
如果不想用了,可以在visualc++6.0安装目录下common\msdev98\template目录中删除该wizard对应的.awx和.pdb文件。
17.如何解决visualc++6.0不正确连接的问题
情景:
明明改动了一个文件,却要把整个项目全部重新编译链接一次。
刚刚链接好,一运行,又提示重新编译链接一次。
这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。
可以这样处理:
找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“rebuildall”一次。
18.引起lnk2014的常见错误都有哪些
遇到的lnk2014错误主要为:
unresolvedexternalsymbol“symbol”
如果链接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误信息。
一般来说,发生错误的原因有两个:
一是所引用的函数、变量不存在,拼写不正确或者使用错误;其次可能使用了不同版本的链接库。
以下是可能产生lnk2014错误的原因:
由于编码错误导致的lnk2014错误
(1)不相匹配的程序代码或模块定义(.def)文件导致lnk2014。
例如,如果在c++源文件了内声明了一变量“var1”,却试图在另一个文件内以变量“var1”访问改变量。
(2)如果使用的内联函数是在.cpp文件内定义的,而不是在头文件内定义将导致lnk2014错误。
(3)调用函数时如果所用的参数类型和头函数声明时的类型不符将会产生lnk2014错误。
(4)试图从基类的构造函数或析构函数中调用虚拟函数时将会导致lnk2014错误。
(5)要注意函数和变量的可公用性,只有全局变量、函数是可公用的。
静态函数和静态变量具有相同的使用范围限制。
当试图从文件外部方位任何没有在该文件内声明的静态变量时将导致编译错误或lnk2014错误。
由于编译和联机的设置而造成的lnk2014错误
(1)如果编译时使用的是/nod(/noderaultlib)选项,程序所需要的运行库和mfc时将得到又编译器写入目标文件模块,但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。
这种情况下使用/nod将导致lnk2014错误
(2)如果没有为wwinmaincrtstartup设定程序入口,在使用unicode和mfc时将出现“unresolvedexternalon_winmain@16”的lnk2014错误信息。
(3)使用/md选项编译时,既然所有的运行库都被保留在动态链接库之内,源文件中对“func”的引用,在目标文件里即对“__imp__func”的引用。
如果试图使用静态库libc.lib或libcmt.lib进行链接,将在__imp__func上发生lnk2014错误。
如果不使用/md选项编译,在使用msvcxx.lib链接时也会发生lnk2014错误。
(4)使用/ml选项编译时,如用libcmt.lib链接会在_errno上发生lnk2014错误。
(5)当编译调试版的应用程序时,如果采用发行版模态库进行链接也会产生lnk2014错误;同样,使用调试版模态库链接发行版应用程序时也会产生相同的错误。
(6)不同版本的库和编译器的混合使用也能产生问题,因为新版的库里可能包含早先的版本没有的符号和说明。
(7)在不同的模块中使用内联和非内联的编译选项能够导致lnk2014错误。
如果创建c++库时打开了函数内联(/ob1或/ob2),但是在描述该函数的相应头文件里却关闭了函数内联(没有inline关键字),只是将得到错误信息。
为避免该问题的发生,应该在相应的头文件中用inline关键字标志为内联函数。
(8)不正确的/subsystem或entry设置也能导致lnk2014错误。
19.如何调试一个没有源码的exe文件调用的dll
在visualc++6.0中,进入“projectsetting”对话框然后选择debug标签页。
通常visualstudio默认“executablefordebugsession”为可执行文件名,但可以将他改成任何你想要的程序。
甚至可以指定不同的工作目录以及传递参数到你的程序。
这个技术常用来调试dlls、名字空间扩展、com对象和其他从某些exe以及从第三方的exe中调用的plug-in程序。
20.visualc++6.0工程中的项目文件都表示什么
.opt:
工程关于开发环境的参数文件。
如工具条位置等信息。
.aps(appstudiofile)资源辅助文件,二进制格式,一般不用去管它。
.clw:
classwizard信息文件,实际上是ini文件格式,有兴趣可以研究一下。
有时候classwizard出了问题,手工修改clw文件可以解决。
如果此文件不存在的话,每次用classwizard的时候回提示是否重建。
.dsp(developstudioproject):
项目文件,文本格式,不过不熟悉的不要手工修改。
.dsw(developstudioworkspace):
是工作区文件,其他特点和.dsp差不多。
.plg:
是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大。
在单击菜单【tool】->【option】弹出的对话框里面有个选项可以控制这个文件的生成。
.hpj(helpproject):
是生成帮助文件的工程,用microsofthelpcompiler可以处理。
.mdp(microsoftdevstudioproject):
是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的.dsp格式。
.bsc:
是用于浏览项目信息的,如果用sourcebrower的话就必须有这个文件。
如果不用这个功能的话,可以在projectoptions里面去掉generatebrowseinfofile,这样可以加快编译速度。
.map是执行文件的映象信息记录文件,除非对系统底层,这个文件一般用不着。
.pch(pre-compiledfile):
是与编译文件,可以加快编译速度,但是文件非常大。
.pdb(programdatabase):
记录了程序有关的一些数据和调试信息,在调试的时候可能有用。
.exp:
只有在编译dll的时候才会生成,记录了dll文件的一些信息,一般也没有用。
.ncb:
无编译浏览文件(nocompilebrowser)。
当自动完成功能出问题时可以删除此文件。
编译工程后会自动生成。
第五篇:
mastercam编程经验分享
mastercam编程经验分享
在写刀路之前,将立体图画好后,要将图形中心移到坐标原点,最高点移到z=0,加缩水率后,方可以加工,铜
公火花位可加工负预留量。
在加工前还要检查工件的装夹方向是否同电脑中的图形方向相同,在模具中的排位是否正确,装夹具是否妨碍加
工,前后模的方向是否相配。
还要检查你所用的刀具是否齐全,校表分中的基准等。
加工铜公要注意的事项:
火花位的确定,一般幼公(即精公)预留量为0.05~0.15,粗公0.2~0.5,具体火花位的大小可由做模师父定。
铜公有没有加工不到的死角,是否需要拆多一个散公来。
加工铜工的刀路按排一般是:
大刀(平刀)开粗-小刀(平刀)清角[$#0]光刀用球刀光曲面。
开粗一般教师用平刀不用球刀,大刀后用小刀开粗,然后将外形光到数,接着用大的球刀光曲面,再用小球刀光
曲面不要图省事,为了些小的角位而用小刀去加工大刀过不了的死角可心限定小刀的走刀范围,以免直播太多的
空刀。
铜公,特别是幼公,是精度要求比较高的,公差一般选0.005~0.02,步距0.05~0.3。
铜公开粗时要留球刀位的过
刀位,即要将铜公外形开粗深一个刀半径。
d)铜公还要加工分中位,校表基准,火花放电时要校正铜工,一般校三个面(上,下,左,右)加工出的铜工必
须有三个基准面。
e)铜料是比较容易加工的材料,走刀速度,转速都可以快一点,开粗时,留加工余量0.2~0.5,视工件大小而定,
加工余量大,开粗时走刀就可以快,提高效率。
加工铜料的有关经验参数:
刀具大小
1~2
3~5
6~10
12~20
进给率(feedrate)
50~200
(50~100)
200~500
(50~300)
500~1000
(200~600)
1000~2014
(600~1000)
主轴转速(spindle)
3000
3000~2500
(2400~1200)
2500~2014
(1200~700)
1500~2014
(600~250)
注:
括号内为高速钢刀对钢料开粗时的参数,以上走刀速度是指开粗时,要光外形f=300~500,钢料光刀f为
50~200。
前模开粗的问题,
首先将铜公图在前视图或边视图内旋转180o即变成了前模图,当然还要加上枕位,pl面;原身要前模留的地方,
不要用镜身的方法将铜工图变成前模图,有时会错(当铜公图x方向y方向都不对称时)。
前模加工时有二个难点
:
材料比较硬;前模不可轻易烧焊,错不得。
前模开粗时用刀原则同铜工相似,大刀开粗→小刀工粗→大刀光刀→小刀光刀,但前模应尽量用大刀,不要用太
小的刀,容易弹刀,开粗通常先用刀把()开粗,光刀时也尽量用圆鼻刀,因这种刀够大,有力,有分型面的前模
加工时,通常会碰到一个问题,当光刀时分型面因碰穿机要准娄数,而型腔要留0.2~0.5的加工余量(留出来打
火花)。
这是可以将模具型腔表面朝正向补正0.2~0.5,面在写刀路时将加工余量设为0。
前模开粗或光刀时通常要限定走刀范围,要记住你所设的范围是刀具中心的范围,不是刀具边界的范围,不是刀
所加工到的范围,而大一个刀具半径。
前模开粗常用的刀路方法是曲面挖槽,平行式光刀。
前模加工时分型面,枕位面一般要加工到准数,而碰穿面可
以留0.1余量,以备配模。
加工后模常碰到的问题:
后模有原身科或镶科二种,后模同前模一样是钢料,材料较硬,应尽量用刀把加工,常用刀路是曲面挖槽外形,
平行铣光刀,选刀的原则是大刀开粗→小刀开粗→大刀光刀→小刀光刀。
后模图通常是铜公图缩小料位加上pl面,枕位,原身留出的东西而成,如果料位比较均匀,可以直接在加工信息
量里留负料位即可,但是pl(分型面),枕位,碰穿面不能缩料位。
这时可以先把这些面正向(更多精彩文章请关注
把科画出来。
原身科常碰到的一个问题是球刀清不到利角,这时可以用平刀走曲面陡斜面加工清角,如镶科,则后模分为藏框
和科芯,加藏科时,要注意多走几遍空刀,不然框会有斜度,上边准数,下边小,很难配模,特别是较深的框,一定要注意这个问题,光框的刀也要新好,并且选用大一点的刀。
科芯如果太高,可以先翻过来加工框位,然后装配进框后,再加工形状,有时有支口,要注意,不要过切用球刀
光形状时一定要保护支口台阶。
为了方便配模式,框尺寸可以比科芯外形尺寸小-0.02/s
科芯光刀时公差和步距可以稍大一点,公差0.01~0.03进给0.2~0.5。
散铜公加工中的问题:
有时整体铜公加工有困难,有加工不到的死角,或者是不好加工,所需刀具太长或太小,就可以考虑分多一个铜
公,有时局部需要清角铜公,这种铜公的加工并不困难,但一定要搞清楚的确良火花时的偏数,校表基准。
薄盘位铜公的加工:
这种铜公加工时很容易变开,加工时要用新刀,刀要小点,进刀也不能太大,加工时可以先将长度a做准,但d留
大点余量(如1.0mm)再二边走,每次深度h=0.2~1,深度进刀不要太多,也不要一周绕着走刀,而要分成二边分别
走。
左、右件和一出二的方向:
有时一套模会出二个零件,对于分左右件的,图形能过
镜射来制作。
如果是出二个相同的零件,则图形一定要在xy内平称或旋转,一定不可以镜射,务必小心,不要搞
反方向,
模具的方向:
模胚的四个导栓孔,不是完全对称,有一个是不对称的,所以加工前后模时这末搞清楚,每一块模板上都有基准
,加工完的前后模合起来一定要基准对基准,特别是对原身模胚成形的模具一定要注意。
画图时也注意方向,铜
公的方向和正视图(俯视图)的方向一致,科芯,藏科框的方向和铜公一致,前模则相反。
曲面上的槽或凸台等一些装饰线条,因为比较窄,所以不好加工。
对于凹槽,我们一般将槽避空,即铣深一些,
然后再补一个散公做出沉面,凸台一般只能分开做一个散公,大铜公不做,这样才能保证质量。
模具,产品的配合公差:
一套产品通常有几个及十几个零件,这些零件的主要配合尺寸都是电脑锣加工保证的,选择合理的公差就很重要
,尤其是有些产品设计图没有考虑配合问题。
底,面壳的配合,外形无疑是0对0配合,定位是靠支口保证的,凹支口和凸支口的公差一般0.1mm,单边。
大身上的配件如透明镜,一般配件外形要比大身上的尺寸小单边0.1~0.2.大身上的活动配件,如按钮,配件外形要比大身上的外形比单边小0.1~0.5。
大身上的配件表面形状一般要和大身上的表面形状一致,可以从大身表面修剪下来。
出模斜度(拔模角)
朔胶模都要做出模斜度,不然会擦花,如果图纸没有标明,可以同做模师傅商量,出模斜度一般0.5o~3o如果蚀
纹的模具,出模角要做大一点,2o~5o,视蚀纹粗细而定。
下刀问题
很多时候,鳘刀刚铣时,吃刀量都比较大,容易引起断刀,弹刀,这时可以先将下刀位开粗
或者鳘刀抬刀走,或
者昼在料外边下刀,总之要充分考虑这个问题。
抢刀,弹刀,掉刀
当加工量比较大时,刀夹得太长,刀太小时常会发生这种情况。
加工量比较大,特别是浓度进刀较多时,容易发生,如光侧面深度h=50mm直径3/4刀,我们可以分25mm二次加工
,就不容易发生。
刀具夹得太长,刀具装得长短对加工很重要,应尽量装夹短一些,初学者都很容易忽略这个问题,程序纸上一定
要标明刀具的装夹长度。
转角时很容易抢刀,解决的办法是先用小一点的刀分层将角清过,再换大的刀光侧面。
象如图直径8的半圆槽,如直接用r4的刀加工,下刀位置,就很容易抢刀,解决的办法是
(1)用r3走扫描刀路(2
)先用r3开粗,最后用r4的刀清角光刀。
磨小刀
电脑锣要加工的形状各异经常需要磨各种小刀,各种成形刀磨损了,也需磨,要达到以下几占才可以磨出一
把能用的刀1。
刀具的四个角要一样高2。
a点要比d点高3刀具的前锋(刀面)要比后而高,即有一定后角。
过切检查
过切是mastercam经常会发生的问题,千万要小心。
过切可能出现在多曲面开粗,光刀,刀路修剪,外形,挖槽
时,即使胸的参数设定、立体图都正确,也有可能发生,有些是软件本身的失误,最主要的检查方法是将刀路模
似一遍,在顶视图,边视图反复检查,没有检查的刀路不允许上机。
外形铣削时,下刀位置选择不当,也会过切
,可以改变下刀位,即可避免。
铣削方向:
电脑锣一般都是顺铣,不象铣床逆铣,原因是电脑锣的刚性比较好,不易让刀,背隙小,铣外形或者内槽都是左
补偿。
当加工左右对称的形状时,外形刀路不能镜射,否则镜射过的那边加工效果就不好。
程序纸的写法为了和操作机床的人员沟通,程序纸应包括1)程序名2刀具大小及长度3加工刀路方法4加工余量
5开粗或光刀6图档名称
.图形管理
电脑图应妥善分档管理,最好是一个产品建一个目录,一个零件起一个别名字,如铜公图名为a10,后模图可为
a10c,前模图名为a10cav,散铜公图名为a10s1,这样就比较清楚。
不同软件间格式转换:
和autocad的沟通,mastcam7以上版本的可以直接读dwg文件,低于7版本可以先在autocad转成dxf格式。
其它cam软件如(cimtron,pro/e,ug)等可以先转成iges.step等等格式。
dnc用法:
程序完成后,经过检查,没有问题就可以抄到dnc电脑里实际加工了,抄程序有二种方法1用磁盘抄2通过局域网
传送。
然后启动dnc软件,找到要运行的程序,按enter键就行了。
坐标系:
有三种,机械坐标系,加工坐标系,临时坐标系三种。
机械坐标系,机械零点是机械上一个基准点,每次开电后
,原点归零后就被确定下来,机械零点的位置由机械厂定,不要改变。
加工坐标系是用于工件加工的,是机械坐
标系的子坐标系,取机械坐标系中的一个点(一般是工件中心点)作为坐标原点,将这个点的机械坐标值记录下
来,作为加工坐标系列的原点,即可设加工坐标系。
临时