明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4216|回复: 15

delphi + cad

  [复制链接]
发表于 2004-3-17 11:08:00 | 显示全部楼层 |阅读模式
我使用delphi,有没有同路的?开发了一些程序,主要是应用数据库设计,将sql数据库数据与cad图形联系,做电气设计。例如不同的元件选型而对应的电机保护等。
发表于 2004-5-26 14:02:00 | 显示全部楼层
也想用delphi+cad, 能否发一份delphi+cad的框架例子? breezer2003@sohu.com 3x
发表于 2004-6-15 02:45:00 | 显示全部楼层
我也想用delphi进行二次开发,发个列子把 zengzhigang_0@163.com thanks
发表于 2004-6-15 08:27:00 | 显示全部楼层
我也是刚学,给此简单的例子吧 pckite@163.com
发表于 2004-6-16 10:47:00 | 显示全部楼层
放弃吧,光数据转换中用到variant就够头疼的了
 楼主| 发表于 2004-7-2 11:01:00 | 显示全部楼层
首先谢谢各位支持,出差了好久,邮件一直没有仔细看过。不值各位还有兴趣么。 下面是个简单的例子,抛砖引玉,实际上只要你仔细看acad的help就能做出来了
记得要 uses ComObj procedure TForm1.Button2Click(Sender: TObject);
var
cad,CADDOC:variant;
startPoint, endpoint:Variant;
begin
cad:=GetActiveOleObject('AutoCAD.Application');
cad.visible:=true;
caddoc:= cad.activedocument; startPoint:= VarArrayCreate([0,2],5 );
startPoint[0]:=0;
startPoint[1]:=0;
startPoint[2]:=0; endPoint:= VarArrayCreate([0,2],5 );
endPoint[0]:=120;
endPoint[1]:=120;
endPoint[2]:=0;
caddoc.ModelSpace.AddCircle(VarArrayRef(startPoint), 25).Update; //画个圆
caddoc.ModelSpace.AddLine((startPoint),(endpoint)); //画条线
caddoc.ModelSpace.Addtext('sdgfdag',VarArrayRef(endPoint),20); //写个字
caddoc:=Unassigned;
cad:=Unassigned;
end;
发表于 2007-2-13 11:39:00 | 显示全部楼层
非常 感谢
发表于 2007-2-14 19:55:00 | 显示全部楼层
发表于 2007-2-15 23:58:00 | 显示全部楼层

我用perl实现了

我从前用LISP,快把我搞疯了。所以我想办法将Perl在Cad上搞起来,并响应Cad的对象事件,管理对象。

我用Perl控制Excel、word,ODBC将各个程序联系起来互通信息。

我用Perl写动态网页。我的目标是只用Perl就包打天下。用Perl写起程序来是如此顺手。

例程:

use Tk;
use strict;
use Win32::OLE qw(EVENTS);
use Win32::OLE::Variant;
$|=1;
       
package MyEvent;
use strict;
use Win32::OLE::Variant;
$|=1;
my $status = 0;
my $Handle = 0;

sub ObjectModified {
 if ($status == 1){
    return(0)}
 $status = 1;
    my ($Obj,$arg) = @_;
 my $ModifyObj = $arg->Value();
 print $ModifyObj->{'ObjectName'} . "\n";
 $Handle = $ModifyObj->Handle();
}

sub EndCommand{
    my ($Obj,$arg) = @_;
 my $one = Variant(VT_ARRAY|VT_R8,3);
    $one->ut([1, 1, 0]);
    my $two = Variant(VT_ARRAY|VT_R8,3);
    $two->ut([1, 20, 0]);
 my $ModifyObj = $Obj->HandleToObject($Handle);
 $ModifyObj -> Move($one,$two);
}

package main;
$Win32::OLE::Warn = 3;
my $acad = Win32::OLE->GetActiveObject('AutoCAD.Application.16')
    || Win32::OLE->new('AutoCAD.Application.16');
 $acad->{'visible'}=1;
my $Documents = $acad->{'Documents'};
my $Document1 = $Documents->Item(0);
$Document1->Activate();
my $moduspace=$Document1->ModelSpace;
Win32::OLE->WithEvents($Document1,"MyEvent","_DAcadDocumentEvents");
Win32::OLE->MessageLoop;

发表于 2007-2-21 18:28:00 | 显示全部楼层
这个perl能开发autocad 2007 LT么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-22 19:02 , Processed in 0.339933 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表