几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-29, 05:08 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】『已解决』关于面板焦点问题 - 精华帖集合

『已解决』关于面板焦点问题 - 精华帖集合
www.dimcax.com
『已解决』关于面板焦点问题
,
autodesk.autocad.windows.paletteset
在面板做任何操作,都必须等到把光标移到屏幕上才会生效,好象是要把焦点给cad的主窗口才会生效
有没有什么办法可以解决?各位!
详细观察了cad的属性面板,每次做属性修改时,都会把焦点返回给主窗口一次。
就是啊,我也遇到了.
怎么弄啊?
路漫漫其修远兮,吾将上下而求索!
在和qq群里一个网友讨论acad主窗体的焦点问题时想到的。
c#:
你要先声明一个win32 函数:
[dllimport("user32.dll")]
private static extern system.intptr setfocus(system.intptr hwnd);
然后在需要设置焦点的地方调用该函数
setfocus(application.documentmanager.mdiactivedocument.window.);
vb.net版本:
private declare function setfocus lib "user32" (byval hwnd as system.intptr) as system.intptr
setfocus(application.documentmanager.mdiactivedocument.window.handle)
当然你也可以用此函数为面板设置焦点。
c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。
问题已经解决,老大指点。
我也在想只有靠api了,但不知道这个函数,用vb.net之前,api也用过一些,到了.net之后,几乎可以不用api了,都忘了。
还是有问题啊
我按才鸟的方法做了,还是不行啊.
代码如下:
setfocus(application.documentmanager.mdiactivedocument.window.handle)
dim ed as editor = application.documentmanager.mdiactivedocument.editor
dim ppr as promptpointresult
dim pt as point3d
ppr = ed.getpoint("请输入基准点")
pt = ppr.value
原帖由 ssdmt 于 2007-11-4 11:33 am 发表
我按才鸟的方法做了,还是不行啊.
代码如下:
setfocus(application.documentmanager.mdiactivedocument.window.handle)
dim ed as editor = application.documentmanager.mdiactivedocument.edito ...
你还有什么问题?
模具相关绿色软件
皆唯网
一个样.请问如何在函数中执行fillet命令
一个样.请问如何在函数中执行fillet命令
public function testfillet() as integer
dim db as database = application.documentmanager.mdiactivedocument.database
dim tm as autodesk.autocad.databaseservices.transactionmanager = db.transactionmanager
dim ta as transaction = tm.starttransaction
dim bt as blocktable = tm.getobject(db.blocktableid, autodesk.autocad.databaseservices.openmode.forread, false)
dim btr as blocktablerecord = tm.getobject(bt(blocktablerecord.modelspace), autodesk.autocad.databaseservices.openmode.forwrite, false)
try
dim l1 as autodesk.autocad.databaseservices.line
dim l2 as autodesk.autocad.databaseservices.line
l1 = new autodesk.autocad.databaseservices.line(new point3d(0, 0, 0), new point3d(100, 0, 0))
l2 = new autodesk.autocad.databaseservices.line(new point3d(0, 0, 0), new point3d(0, 100, 0))
'请问如何使l1,l2以r为半径圆角?
btr.appendentity(l1)
tm.addnewlycreateddbobject(l1, true)
ta.commit()
catch ex as system.exception
ta.dispose()
msgbox(ex.message)
end try
end function
原帖由 ssdmt 于 2007-11-4 03:46 pm 发表
一个样.请问如何在函数中执行fillet命令
public function testfillet() as integer
dim db as database = application.documentmanager.mdiactivedocument.database
dim tm as autodesk.au ...
直接调用fillet命令好象是不能帮你修剪的。
只能通过两条线计算出圆弧的中心点,与起始角度、终止角度,然后画圆弧,再把两条线的点修改与圆弧相却。
模具相关绿色软件
皆唯网
我按才鸟的方法做了,还是不行啊.
这个问题还是解决不了啊
试了好久终于发现还可以用cad自带命令"graphscr"实现把焦点返回给主窗口
sendstringtoexecute方法
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 12:55 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多