给二次开发爱好者出个题?
www.dimcax.com
给二次开发爱好者出个题?
给二次开发爱好者出个题,不一定要程序,只是要大家思考一下怎样实现此功能,顺便提示一下我.
制图模板已制作好了,我需要的功能是 自动提取标题栏中的 零件名称 这个项目的值作为 相应的autocad的文件名称并保存到指定的文件目录中或者局域网服务器中.
怎么样,有难度吗?
本人做过一个小程序,只要选择标题栏中的图号或零件名应就可以在当前目录中打开已有同名文件或新建文件源程序如下请指教。
public sub daka()
dim ssetobj as acadselectionset
dim selobj as acadentity
dim textobj as acadtext
dim icount as integer
dim i as integer
dim pathname as string
dim tmp as string
with thisdrawing
dim filtertype(0) as integer
dim filterdata(0) as variant
pp:
icount = .selectionsets.count
while (icount > 0)
if .selectionsets.item(icount - 1).name = "sset" then
.selectionsets.item(icount - 1).delete
end if
icount = icount - 1
wend
set ssetobj = thisdrawing.selectionsets.add("sset")
filtertype(0) = 0
filterdata(0) = "text"
.utility.prompt "请选择文字..."
ssetobj.selectonscreen filtertype, filterdata
for i = 0 to ssetobj.count - 1
set selobj = ssetobj.item(i)
if selobj.objectname = "acdbtext" then
set textobj = selobj
tmp = .path + "\" + textobj.textstring + ".dwg"
if selobj.hyperlinks.count <> 0 then
pathname = selobj.hyperlinks.item(0).url
if pathname = tmp then
.application.documents.open pathname
else
selobj.hyperlinks.item(0).delete
selobj.hyperlinks.add tmp
.application.documents.open pathname
end if
else
on error goto pp
tmp = .utility.getstring(true, "是否按此名称创建图形文并与本图号关联y(n):")
if tmp = "" then
tmp = "y"
end if
if tmp = "y" or tmp = "y" then
pathname = .path + "\" + textobj.textstring + ".dwg"
selobj.hyperlinks.add pathname
documents.add
.saveas (pathname)
.close
else
tmp = .utility.getstring(true, "是否选择图形文并与本图号关联y(n):")
if tmp = "y" or pathname = "y" then
tmp = "hyperlink" + vbcr
.sendcommand tmp
end if
end if
end if
else
.utility.prompt "你选择的不是文字请选择文字..."
goto pp
end if
next
end with
end sub
二楼的说明好像与我想要的不符哦,我要的只是在点击 保存 或者 退出 按钮时自动执行的事件程序啊.我看你的程序作用好像是 使 装配图 中的 明细栏 的 图号 与各个零件的文件相对应,理解正确吗?请指教.
不好意思,又看了一下好像是我的要求没写明白,我的模板是零件图纸的模板而不是装配图的模板,只有标题栏而没有明细栏.
另 二楼的程序的使用有没有什么需要注意的,可以讲一讲啊.
工作量主要在提取图块属性上,这类代码网上有不少,然后添加命令反应器,对qsave执行filecopy api即可(一点浅见).
哇塞 api都上来了 是不是还涉及到mfc(vc++)啊 我可不会啊
做这类功能 objectarx 最拿手了,
我也由tongyan的问题
这个很简单呀,要根据你的具体要求而定,把标题栏做成属性块就可以了,都是正常的程序就能解决的,没什么特殊的
文件拷贝也可以不用api的
vb / vba也可以用api呀
vb / vba里自带这些事件,也不用定义反应器的
caxa这些功能都能实现,在cad里肯定也不难实现的,