几何尺寸与公差论坛------致力于产品几何量公差标准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-21, 03:28 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】标注样式中怎样设置箭头样式?

标注样式中怎样设置箭头样式?
www.dimcax.com
标注样式中怎样设置箭头样式?
database m_db = hostapplicationservices.workingdatabase; using (application.documentmanager.mdiactivedocument.lockdocument()) { using (transaction m_tr = m_db.transactionmanager.starttransaction()) { dimstyletable m_dst = (dimstyletable)m_tr.getobject(m_db.dimstyletableid, openmode.forwrite, false); if (!m_dst.has(m_dimstylename)) { try { dimstyletablerecord m_dstr = new dimstyletablerecord(); m_dstr.name = m_dimstylename;// m_dstr.dimtxsty = m_textstyleid;//文字样式id m_dstr.dimtxt = m_textheight;//文字高度 m_dstr.dimblk =???;//箭头样式???怎样得到标注样式中内置的箭头样式块的id? m_dstr.dimasz = 1.8;//箭头大小 m_dimstyleid = m_dst.add(m_dstr); m_tr.addnewlycreateddbobject(m_dstr, true); } catch (system.exception ex) { m_ed.writemessage("\n创建新标注样式 " + m_dimstylename + " 不成功!" + " 错误信息: " + ex.message); } } else { m_dimstyleid = m_dst[m_dimstylename]; } m_tr.commit(); } }
箭头是以块的形式存在,你要改变箭头,需要重新设置注标样式箭头的块id,以下过程是返回块id,将它设置给下面属性。 .dimblk = blkid .dimblk1 = blkid .dimblk2 = blkid
public function getarrowblock(byval blkarrow as string) as objectid
dim blkid as objectid
application.setsystemvariable("dimblk", blkarrow)
dim db as database = hostapplicationservices.workingdatabase
using trans as transaction = db.transactionmanager.starttransaction()
dim bt as blocktable = ctype(trans.getobject(db.blocktableid, openmode.forread, false), blocktable)
dim btr as blocktablerecord = ctype(trans.getobject(bt.item(blkarrow), openmode.forread), blocktablerecord)
blkid = btr.objectid
trans.commit()
end using
return blkid
end function
复制代码
这个是箭头的系统变量
设置尺寸线末端显示的箭头块。 要返回默认值(实心闭合箭头显示),请输入单个句点 (.)。“新建标注样式”、“修改标注样式”和“替代当前样式”对话框中用于选择箭头块的项和名称如下所示。还可以输入用户定义的箭头块名称。注意 注释性块不能用作标注或引线的自定义箭头。 "" 实心闭合
"_dot" 点
"_dotsmall" 小点
"_dotblank" 空心点
"_origin" 原点标记
"_origin2" 原点标记 2
"_open" 打开
"_open90" 直角
"_open30" 30 度角
"_closed" 闭合
"_small" 空心小点
"_none" 无
"_oblique" 倾斜
"_boxfilled" 实心框
"_boxblank" 框
"_closedblank" 空心闭合
"_datumfilled" 实心基准三角形
"_datumblank" 基准三角形
"_integral" 完整标记
"_archtick" 建筑标记
我就是搞不明白,为什么要先把系统变量设置了才行?
这样的话,如果不把系统变量改回来,其他标注样式的箭头都会变成我现在的设置,这不是我希望的
晕哦,怎么系统变量dimblk改不回来默认值"" 了 application.setsystemvariable("dimblk", "") 出错!!!! 一样不行! 只要原先dimblk的值是默认值(就是""),application.setsystemvariable("dimblk", oldvariable)这句就会出错,晕唠
设置尺寸线末端显示的箭头块。 要返回默认值(实心闭合箭头显示),请输入单个句点 (.) application.setsystemvariable("dimblk", ".")
这个过程我已经测试过了,完全可以用了。
public shared function getarrowblock(byval blkarrow as string) as objectid
dim blkid as objectid
dim oldvariable as string = application.getsystemvariable("dimblk")
application.setsystemvariable("dimblk", blkarrow)
dim db as database = hostapplicationservices.workingdatabase
using trans as transaction = db.transactionmanager.starttransaction()
dim bt as blocktable = ctype(trans.getobject(db.blocktableid, openmode.forread, false), blocktable)
dim btr as blocktablerecord = ctype(trans.getobject(bt.item(blkarrow), openmode.forread), blocktablerecord)
blkid = btr.objectid
trans.commit()
end using
if oldvariable = "" then
application.setsystemvariable("dimblk", ".")
else
application.setsystemvariable("dimblk", oldvariable)
end if
return blkid
end function


1
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



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


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