有cad图形操作,用delphi编程。
for ii:=0 to OpenDialog1.Files.Count -1 do<BR> begin<BR> //opendialog1.Filter:='cad 文件(*.dwg) | *.dwg|所有文件(*.*) |*.*'; <BR> szFile:=OpenDialog1.Files;CAD:=CreateOleObject('AutoCAD.Application');<BR> Doc:=CAD.Documents.Open(szFile);
下面不会写了,要对这个文件实行删除两层tk层和tkmap层,然后把所有的图层都变成黑颜色。
求教斑主。因为不是专门搞cad的,所以这不会。
求救,help。不胜感激
文件再附件里面。 <B>噢! 你用 delphi 对CAD开发啦. 高手</B> , 我不会这门语言. 这里好少人用这个的, 那能不能帮助我写个用vb完成同样的功能。删除两层,然后保存层dwg就可以了。
1、我能不能得到这个dwg的层数,然后做循环。把每层都设置为acblack,就可以。
2、我需要对这个thisdrawing删除两层。不知道怎么删除亚。
help
3、想是一次性可以批量很多幅图操作。 本帖最后由 作者 于 2005-1-7 16:21:17 编辑 <br /><br /> 我会LISP, 其它不了解.
不过图层是不可以删除的. 要删除图层的做法是:
1, 先将要删去的图层上面的对象统统删除或转到其它不删的图层去.
2, 再调用CAD的清理命令才可以清除那个要删的图层.
请参见下面在lisp程序在删除图层的做法
(DEFUN C:DLAYER()<BR> (SETQ LNAME (GETSTRING "\n要删除的图层名:"))<BR> (command ".erase" (ssget "x" (list (cons 8 LNAME)))""<BR> "-layer" "s" "0" "" "purge" "la" LNAME "n")) 再对当前文档所有层遍历,查找到这个层,然后删除或做别的操作不就行了? procedure TForm1.Button1Click(Sender: TObject);<BR>var<BR>cadApp:acadApplication;<BR>cadLayer:acadLayer;<BR>i:integer;
begin<BR>cadApp:=getActiveOleObject('autocad.application') as acadApplication;<BR>for i:=0 to cadApp.ActiveDocument.Layers.Count-1 do<BR>begin<BR>cadLayer := cadApp.ActiveDocument.Layers.Item(i);<BR> if ((cadLayer.Name='k2') or (cadLayer.Name='k3')) then<BR> cadLayer.Delete<BR>else<BR> cadLayer.color:=acGreen;<BR>end;<BR>end;
页:
[1]