.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Read all Block in C#

19 REPLIES 19
Reply
Message 1 of 20
Anonymous
2610 Views, 19 Replies

Read all Block in C#

Hi,

i'm new in here and new in programming AutoCAD in C#. I've been developing C# for 5 years but writing a program for AutoCAD is new challenge.

I want to read all blocks from an AutoCAD dwg including the attributes. (Hint: AutoCAD 2008 and VS.NET 2008!)

Is there a way to read all blocks (and attributes) without a SelectionSet?

Here is a small code sample. This sample is compileable and runable, but i don't get any blockreference from the selectionset!

Regards
Mario

AcadApplication acadApplication = null;
AcadDocument acadDocument = null;
AcadSelectionSet acadSelectionSet = null;
AcadAttribute[] acadAttributes = null;

Int16[] filterType = new Int16[]{0};
object[] filterData = new object[] { "Insert" };


try
{
acadApplication = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
}
catch
{
acadApplication = new AcadApplication();
}
acadApplication.Visible = false;
acadDocument = acadApplication.Documents.Add("c:\\temp\\test.dwg");

acadSelectionSet = acadDocument.SelectionSets.Add("sel1");
acadSelectionSet.Select(AcSelect.acSelectionSetAll, Type.Missing, Type.Missing, filterType, filterData);

foreach (AcadBlockReference blockReference in acadSelectionSet)
{
acadAttributes = blockReference.GetAttributes() as AcadAttribute[];
foreach(AcadAttribute attr in acadAttributes)
{
switch( attr.TagString)
{
...
}
}
} Edited by: TeiMar71 on Aug 11, 2009 2:17 PM
19 REPLIES 19
Message 2 of 20
Anonymous
in reply to: Anonymous

Can nobody answer this question ?????????
Message 3 of 20
Anonymous
in reply to: Anonymous

Open the drawing you want instead of adding a new drawing which would be
blank.
acadDocument =
acadApplication.Documents.Open("c:\\test.dwg",true,Type.Missing);

wrote in message news:6235578@discussion.autodesk.com...
Can nobody answer this question ?????????
Message 4 of 20
Anonymous
in reply to: Anonymous

cool .. thanx ... that's it!

now i'm hanging at this line :
acadAttributes = blockReference.GetAttributes() as AcadAttribute[];

but that's another prob!

Regards
Mario
Message 5 of 20
Anonymous
in reply to: Anonymous

Mario - If you don't get many answers here, it is probably because
this newsgroup is focused on using the managed ObjectARX API,
rather than the ActiveX API that's used by legacy VB and VBA.

I'm not suggesting you not post here, but ActiveX API usage is
the focus of the VBA newsgroups, and you would probably get
more/quicker answers there (if for no other reason, because it
has far more readers than this newsgroup).

The newsgroups are more 'API-centric' than 'language-centric'.

--
http://www.caddzone.com

AcadXTabs: MDI Document Tabs for AutoCAD 2009
Supporting AutoCAD 2000 through 2009

http://www.acadxtabs.com

Introducing AcadXTabs 2010:
http://www.caddzone.com/acadxtabs/AcadXTabs2010.htm

Email: string.Format("{0}@{1}.com", "tonyt", "caddzone");


wrote in message news:6234760@discussion.autodesk.com...
Hi,

i'm new in here and new in programming AutoCAD in C#. I've been developing
C# for 5 years but writing a program for AutoCAD is new challenge.

I want to read all blocks from an AutoCAD dwg including the attributes.
(Hint: AutoCAD 2008 and VS.NET 2008!)

Is there a way to read all blocks (and attributes) without a SelectionSet?

Here is a small code sample. This sample is compileable and runable, but i
don't get any blockreference from the selectionset!

Regards
Mario

AcadApplication acadApplication = null;
AcadDocument acadDocument = null;
AcadSelectionSet acadSelectionSet = null;
AcadAttribute[] acadAttributes = null;

Int16[] filterType = new Int16[]{0};
object[] filterData = new object[] { "Insert" };


try
{
acadApplication =
(AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
}
catch
{
acadApplication = new AcadApplication();
}
acadApplication.Visible = false;
acadDocument = acadApplication.Documents.Add("c:\\temp\\test.dwg");

acadSelectionSet = acadDocument.SelectionSets.Add("sel1");
acadSelectionSet.Select(AcSelect.acSelectionSetAll, Type.Missing,
Type.Missing, filterType, filterData);

foreach (AcadBlockReference blockReference in acadSelectionSet)
{
acadAttributes = blockReference.GetAttributes() as AcadAttribute[];
foreach(AcadAttribute attr in acadAttributes)
{
switch( attr.TagString)
{
...
}
}
}

Edited by: TeiMar71 on Aug 11, 2009 2:17 PM
Message 6 of 20
Anonymous
in reply to: Anonymous

{code}
foreach (AcadBlockReference blockReference in acadSelectionSet)
{
object[] atts = (object[]) blockReference.GetAttributes();
foreach( AcadAttributeReference att in atts )
{
Debug.Print(att.TagString);
}
}
{code}

wrote in message news:6235615@discussion.autodesk.com...
cool .. thanx ... that's it!

now i'm hanging at this line :
acadAttributes = blockReference.GetAttributes() as AcadAttribute[];

but that's another prob!

Regards
Mario
Message 7 of 20
Anonymous
in reply to: Anonymous

Thanx Paul ... that works!
Message 8 of 20
Anonymous
in reply to: Anonymous

Thanx Tony ... i understand!

I tried to reference to the managed DLLs (acdbmgd.dll and acmgd.dll) from AutoCAD 2008 but this doesn't really work.
The program is compileable but when i execute it, i get an "File-Not-Found" exception!

So i went back to the activex api.

Regards
Mario
Message 9 of 20
Anonymous
in reply to: Anonymous

Hi Mario,

The VBA newsgroup is NOT the ActiveX/COM newsgroup, it is the VBA
newsgroup, and, since they are so similar by logical extension the VB6
newsgroup.

This is the .NET newsgroup, not just the managed half of .DOTNET newsgroup.

Regardless of numbers of readers and posters, any help ever offered to
any form of .NET programming in the other newsgroup is inevitably from
Tony himself or from other readers whose posts you will see in both
newsgroups. Please don't pollute that newsgroup with queries for which
you will find the necessary expertise here.


Regards,


Laurie Comerford

TeiMar71 wrote:
> Thanx Tony ... i understand!
>
> I tried to reference to the managed DLLs (acdbmgd.dll and acmgd.dll) from AutoCAD 2008 but this doesn't really work.
> The program is compileable but when i execute it, i get an "File-Not-Found" exception!
>
> So i went back to the activex api.
>
> Regards
> Mario Edited by: Discussion_Admin on Sep 16, 2009 11:54 AM
Message 10 of 20
Anonymous
in reply to: Anonymous

Laurie - where should people who are accessing AutoCAD via COM and not using
a .NET language go for help? Bunches of programming languages can use COM
and there are only a few AutoCAD APIs. Wouldn't simple logic be to group
questions by API and not by language? Most competent coders are looking for
API help when they come to these groups and go to language specific groups
when they need help with their specific language.

Of course there will be crossover here but the more we properly group
questions the easier it is for users. Just because you live in one world
doesn't mean we should all keep the VBA group just for ActiveX via VBA and
everything else goes to the .NET group. Just doesn't make any logical sense!

Where did COM questions go before the .NET group? The VBA group is going to
be a lonely place once VBA is dead... Or maybe someone will use some logic
and rename it ActiveX since that is where most of the ActiveX answers are
stored!

"Laurie" wrote in message
news:6236198@discussion.autodesk.com...
Hi Mario,

In this case Tony's advice is based on his dyslexia and inability to
understand English language names.

The VBA newsgroup is NOT the ActiveX/COM newsgroup, it is the VBA
newsgroup, and, since they are so similar by logical extension the VB6
newsgroup.

This is the .NET newsgroup, not just the managed half of .DOTNET newsgroup.

Regardless of numbers of readers and posters, any help ever offered to
any form of .NET programming in the other newsgroup is inevitably from
Tony himself or from other readers whose posts you will see in both
newsgroups. Please don't pollute that newsgroup with queries for which
you will find the necessary expertise here.


Regards,


Laurie Comerford

TeiMar71 wrote:
> Thanx Tony ... i understand!
>
> I tried to reference to the managed DLLs (acdbmgd.dll and acmgd.dll) from
> AutoCAD 2008 but this doesn't really work.
> The program is compileable but when i execute it, i get an
> "File-Not-Found" exception!
>
> So i went back to the activex api.
>
> Regards
> Mario
Message 11 of 20
NathTay
in reply to: Anonymous

I can not believe that you believe someone should post in a group based on the technicality of the title as opposed to the help that can be provided.



Edited by: Discussion_Admin on Sep 16, 2009 12:00 PM
Message 12 of 20
Anonymous
in reply to: Anonymous

Hi Paul,


"Laurie - where should people who are accessing AutoCAD via COM and not
using a .NET language go for help?"

Would you go to the VBA newsgroup, this one, the general customisation
NG, the ObjectARX NG or onto the internet in general?
I'd come here on the grounds that I'd expect the general expertise (and
training as programmers) of .NET programmers to be higher than the
general (and training as programmers) expertise of VBA or lispers.
However the question is largely a furphy as very few questions from
programmers in other languages ever turn up in theses newsgroups. Even
when they do, they are rarely answered satisfactorily and almost never
by the VBAers.


"Wouldn't simple logic be to group questions by API and not by language?"

I can't see any more logic in that than setting up newsgroups by
language. And clearly Autodesk didn’t when setting up their newsgroup
structure. In their wisdom Autodesk set up a VBA NG long before they
set up the .NET NG. In VBA the issue of Managed Code v ActiveX/COM
programming doesn't arise and there is no reason to expect a VBA
programmer to have knowledge of what the difference is or what the
implications of that difference are. So you are arguing that based on a
distinction which need only be understood in .NET some .NET questions
should be sent to a newsgroup where knowledge of this distinction is
irrelevant


"Of course there will be crossover here but the more we properly group
questions the easier it is for users"

I couldn’t agree more. It’s the whole point of my posting. But why do
a small number of posters here make up their own minds that a particular
aspect of a programming language must be handled in a newsgroup where
the chances of the issue being understood are far lower than in the
newsgroup named to handle that language/issue?


"Just because you live in one world doesn't mean we should all keep the
VBA group just for ActiveX via VBA and everything else goes to the .NET
group. Just doesn't make any logical sense!"

Where I live and help is irrelevant. The approach that VBA uses ActiveX
therefore every ActiveX query should go to the VBA NG is far less
logical than following the names and labels assigned to the NGs by
Autodesk. Do you seriously expect that C programmers are going to be
able to get help from VBA programmers?


"The VBA group is going to be a lonely place once VBA is dead... Or
maybe someone will use some logic and rename it ActiveX since that is
where most of the ActiveX answers are stored!"

I don’t doubt that the 64 bit environment will kill VB6/VBA. However,
the logic you are referring to depends on a particular world view and it
is at complete odds with the naming and use of these newsgroups as well
as the likelihood of finding expertise to resolve a given problem.


Regards,


Laurie Comerford


Paul Richardson
> Laurie - where should people who are accessing AutoCAD via COM and not using
> a .NET language go for help? Bunches of programming languages can use COM
> and there are only a few AutoCAD APIs. Wouldn't simple logic be to group
> questions by API and not by language? Most competent coders are looking for
> API help when they come to these groups and go to language specific groups
> when they need help with their specific language.
>
> Of course there will be crossover here but the more we properly group
> questions the easier it is for users. Just because you live in one world
> doesn't mean we should all keep the VBA group just for ActiveX via VBA and
> everything else goes to the .NET group. Just doesn't make any logical sense!
>
> Where did COM questions go before the .NET group? The VBA group is going to
> be a lonely place once VBA is dead... Or maybe someone will use some logic
> and rename it ActiveX since that is where most of the ActiveX answers are
> stored!
>
> "Laurie" wrote in message
> news:6236198@discussion.autodesk.com...
> Hi Mario,
>
> In this case Tony's advice is based on his dyslexia and inability to
> understand English language names.
>
> The VBA newsgroup is NOT the ActiveX/COM newsgroup, it is the VBA
> newsgroup, and, since they are so similar by logical extension the VB6
> newsgroup.
>
> This is the .NET newsgroup, not just the managed half of .DOTNET newsgroup.
>
> Regardless of numbers of readers and posters, any help ever offered to
> any form of .NET programming in the other newsgroup is inevitably from
> Tony himself or from other readers whose posts you will see in both
> newsgroups. Please don't pollute that newsgroup with queries for which
> you will find the necessary expertise here.
>
>
> Regards,
>
>
> Laurie Comerford
>
> TeiMar71 wrote:
>> Thanx Tony ... i understand!
>>
>> I tried to reference to the managed DLLs (acdbmgd.dll and acmgd.dll) from
>> AutoCAD 2008 but this doesn't really work.
>> The program is compileable but when i execute it, i get an
>> "File-Not-Found" exception!
>>
>> So i went back to the activex api.
>>
>> Regards
>> Mario
Message 13 of 20
Anonymous
in reply to: Anonymous

{quote}
Do you seriously expect that C programmers are going to be able to get help
from VBA programmers?
{quote}

Once again why would a C programmer need help with syntax or structure and
if they do they would go to a specific group on C using COM. What they need
is the answer to how do I do 'X"? Doesn't take a C programmer to answer that
question - just someone that uses the API.

You do realize that it's the same ActiveX API regardless of the COM aware
language being used. You cannot seem to get over that most don't want their
hand held with using a language. This doesn't mean it won't happen from time
to time - I've had mine held here but 99 percent of the time it's not what I
or others need and if we do we are in the worng place.

You should give VBAers more credit as I'd bet most realize they have much
more knowledge in their heads than just a language.

"Laurie" wrote in message
news:6236358@discussion.autodesk.com...
Hi Paul,


"Laurie - where should people who are accessing AutoCAD via COM and not
using a .NET language go for help?"

Would you go to the VBA newsgroup, this one, the general customisation
NG, the ObjectARX NG or onto the internet in general?
I'd come here on the grounds that I'd expect the general expertise (and
training as programmers) of .NET programmers to be higher than the
general (and training as programmers) expertise of VBA or lispers.
However the question is largely a furphy as very few questions from
programmers in other languages ever turn up in theses newsgroups. Even
when they do, they are rarely answered satisfactorily and almost never
by the VBAers.


"Wouldn't simple logic be to group questions by API and not by language?"

I can't see any more logic in that than setting up newsgroups by
language. And clearly Autodesk didn't when setting up their newsgroup
structure. In their wisdom Autodesk set up a VBA NG long before they
set up the .NET NG. In VBA the issue of Managed Code v ActiveX/COM
programming doesn't arise and there is no reason to expect a VBA
programmer to have knowledge of what the difference is or what the
implications of that difference are. So you are arguing that based on a
distinction which need only be understood in .NET some .NET questions
should be sent to a newsgroup where knowledge of this distinction is
irrelevant


"Of course there will be crossover here but the more we properly group
questions the easier it is for users"

I couldn't agree more. It's the whole point of my posting. But why do
a small number of posters here make up their own minds that a particular
aspect of a programming language must be handled in a newsgroup where
the chances of the issue being understood are far lower than in the
newsgroup named to handle that language/issue?


"Just because you live in one world doesn't mean we should all keep the
VBA group just for ActiveX via VBA and everything else goes to the .NET
group. Just doesn't make any logical sense!"

Where I live and help is irrelevant. The approach that VBA uses ActiveX
therefore every ActiveX query should go to the VBA NG is far less
logical than following the names and labels assigned to the NGs by
Autodesk. Do you seriously expect that C programmers are going to be
able to get help from VBA programmers?


"The VBA group is going to be a lonely place once VBA is dead... Or
maybe someone will use some logic and rename it ActiveX since that is
where most of the ActiveX answers are stored!"

I don't doubt that the 64 bit environment will kill VB6/VBA. However,
the logic you are referring to depends on a particular world view and it
is at complete odds with the naming and use of these newsgroups as well
as the likelihood of finding expertise to resolve a given problem.


Regards,


Laurie Comerford


Paul Richardson
> Laurie - where should people who are accessing AutoCAD via COM and not
> using
> a .NET language go for help? Bunches of programming languages can use COM
> and there are only a few AutoCAD APIs. Wouldn't simple logic be to group
> questions by API and not by language? Most competent coders are looking
> for
> API help when they come to these groups and go to language specific groups
> when they need help with their specific language.
>
> Of course there will be crossover here but the more we properly group
> questions the easier it is for users. Just because you live in one world
> doesn't mean we should all keep the VBA group just for ActiveX via VBA and
> everything else goes to the .NET group. Just doesn't make any logical
> sense!
>
> Where did COM questions go before the .NET group? The VBA group is going
> to
> be a lonely place once VBA is dead... Or maybe someone will use some logic
> and rename it ActiveX since that is where most of the ActiveX answers are
> stored!
>
> "Laurie" wrote in message
> news:6236198@discussion.autodesk.com...
> Hi Mario,
>
> In this case Tony's advice is based on his dyslexia and inability to
> understand English language names.
>
> The VBA newsgroup is NOT the ActiveX/COM newsgroup, it is the VBA
> newsgroup, and, since they are so similar by logical extension the VB6
> newsgroup.
>
> This is the .NET newsgroup, not just the managed half of .DOTNET
> newsgroup.
>
> Regardless of numbers of readers and posters, any help ever offered to
> any form of .NET programming in the other newsgroup is inevitably from
> Tony himself or from other readers whose posts you will see in both
> newsgroups. Please don't pollute that newsgroup with queries for which
> you will find the necessary expertise here.
>
>
> Regards,
>
>
> Laurie Comerford
>
> TeiMar71 wrote:
>> Thanx Tony ... i understand!
>>
>> I tried to reference to the managed DLLs (acdbmgd.dll and acmgd.dll) from
>> AutoCAD 2008 but this doesn't really work.
>> The program is compileable but when i execute it, i get an
>> "File-Not-Found" exception!
>>
>> So i went back to the activex api.
>>
>> Regards
>> Mario
Message 14 of 20
NathTay
in reply to: Anonymous

Can I post Visual Basic 2008 Code that uses the ActiveX API in the Visual Basic Customisation Group?

Can I post Visual Basic 2008 Code that uses the .NET API in the Visual Basic Customisation Group?
Message 15 of 20
Danielm103
in reply to: Anonymous

Mario, Here's quick a sample not using the COM API

{code}
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using AcAp = Autodesk.AutoCAD.ApplicationServices;
using AcDb = Autodesk.AutoCAD.DatabaseServices;

[assembly: CommandClass(typeof(CsGetBlkDefs.Commands))]

namespace CsGetBlkDefs
{
public class MyAttRef
{
public ObjectId id { get; set; }
public String text { get; set; }
}

public class MyBlkRef
{
public String name { get; set; }
public ObjectId id { get; set; }
public List myAttRef { get; set; }
}

public class MyBlkRefs : List { }

public class Commands
{
public Commands() { }

[CommandMethod("doit", CommandFlags.Session)]
static public void doit()
{
Editor ed =
AcAp.Application.DocumentManager.MdiActiveDocument.Editor;

string dwgPath = @"c:\Drawings\tmp.dwg";
Database db = new Database(false,true);

db.ReadDwgFile(dwgPath,
FileOpenMode.OpenForReadAndAllShare, false, string.Empty);

try
{
AcDb.TransactionManager tm = db.TransactionManager;
MyBlkRefs myBlkRefs = new MyBlkRefs();

using (Transaction tr = tm.StartTransaction())
{
BlockTable bt = tr.GetObject
(db.BlockTableId, OpenMode.ForRead, false)
as BlockTable;

foreach (ObjectId btrId in bt)
{
BlockTableRecord btr = tr.GetObject
(btrId, OpenMode.ForRead, false)
as BlockTableRecord;

if (btr.HasAttributeDefinitions == true &&
btr.IsAnonymous == false &&
btr.IsDynamicBlock == false)
{
ObjectIdCollection blkRefIds =
btr.GetBlockReferenceIds(false, false);

foreach (ObjectId blkRefId in blkRefIds)
{
BlockReference blkRef = tr.GetObject
(blkRefId, OpenMode.ForRead, false)
as BlockReference;

MyBlkRef myBlkRef = new MyBlkRef
{
name = blkRef.Name,
id = blkRefId,
myAttRef = new List()
};

foreach (ObjectId attRefId in
blkRef.AttributeCollection)
{
AttributeReference attRef = tr.GetObject
(attRefId, OpenMode.ForRead)
as AttributeReference;

myBlkRef.myAttRef.Add
(new MyAttRef
{
id = attRefId,
text = attRef.TextString
});
}
myBlkRefs.Add(myBlkRef);
}
}
}
tr.Commit();
}
foreach (var Item in myBlkRefs)
{
StringBuilder sb = new StringBuilder();
sb.Append(string.Format("{0} --- ", Item.name));
Item.myAttRef.ForEach(subItem =>
sb.Append(string.Format("{0} ", subItem.text)));
ed.WriteMessage("\n{0}", sb);
}
}
catch (System.Exception ex)
{
ed.WriteMessage(ex.Message);
}
finally
{
db.CloseInput(true);
db.Dispose();
}
}
}
}
{code}
Message 16 of 20
Danielm103
in reply to: Anonymous

I guess you need to supply your own angle brackets for the List <...>

see if this is better

{code}
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using AcAp = Autodesk.AutoCAD.ApplicationServices;
using AcDb = Autodesk.AutoCAD.DatabaseServices;

[assembly: CommandClass(typeof(CsGetBlkDefs.Commands))]

namespace CsGetBlkDefs
{
public class MyAttRef
{
public ObjectId id { get; set; }
public String text { get; set; }
}

public class MyBlkRef
{
public String name { get; set; }
public ObjectId id { get; set; }
public List<MyAttRef> myAttRef { get; set; }
}

public class MyBlkRefs : List<MyBlkRef> { }

public class Commands
{
public Commands() { }

[CommandMethod("doit", CommandFlags.Session)]
static public void doit()
{
Editor ed =
AcAp.Application.DocumentManager.MdiActiveDocument.Editor;

string dwgPath = @"c:\Drawings\tmp.dwg";
Database db = new Database(false,true);

db.ReadDwgFile(dwgPath,
FileOpenMode.OpenForReadAndAllShare, false, string.Empty);

try
{
AcDb.TransactionManager tm = db.TransactionManager;
MyBlkRefs myBlkRefs = new MyBlkRefs();

using (Transaction tr = tm.StartTransaction())
{
BlockTable bt = tr.GetObject
(db.BlockTableId, OpenMode.ForRead, false)
as BlockTable;

foreach (ObjectId btrId in bt)
{
BlockTableRecord btr = tr.GetObject
(btrId, OpenMode.ForRead, false)
as BlockTableRecord;

if (btr.HasAttributeDefinitions == true &&
btr.IsAnonymous == false &&
btr.IsDynamicBlock == false)
{
ObjectIdCollection blkRefIds =
btr.GetBlockReferenceIds(false, false);

foreach (ObjectId blkRefId in blkRefIds)
{
BlockReference blkRef = tr.GetObject
(blkRefId, OpenMode.ForRead, false)
as BlockReference;

MyBlkRef myBlkRef = new MyBlkRef
{
name = blkRef.Name,
id = blkRefId,
myAttRef = new List<MyAttRef>()
};

foreach (ObjectId attRefId in
blkRef.AttributeCollection)
{
AttributeReference attRef = tr.GetObject
(attRefId, OpenMode.ForRead)
as AttributeReference;

myBlkRef.myAttRef.Add
(new MyAttRef
{
id = attRefId,
text = attRef.TextString
});
}
myBlkRefs.Add(myBlkRef);
}
}
}
tr.Commit();
}
foreach (var Item in myBlkRefs)
{
StringBuilder sb = new StringBuilder();
sb.Append(string.Format("{0} --- ", Item.name));
Item.myAttRef.ForEach(subItem =>
sb.Append(string.Format("{0} ", subItem.text)));
ed.WriteMessage("\n{0}", sb);
}
}
catch (System.Exception ex)
{
ed.WriteMessage(ex.Message);
}
finally
{
db.CloseInput(true);
db.Dispose();
}
}
}
}
{code}
Message 17 of 20
Anonymous
in reply to: Anonymous

cool .. thanx

Regards
Mario
Message 18 of 20
Anonymous
in reply to: Anonymous

Laurie:

> Do you seriously expect that C programmers are going to
> be able to get help from VBA programmers?

Do you seriously expect that C programmers will be able to help people
with the COM API? I'll bet the only C# or C++ programmers that help with
COM API problems are those who gained experience with it in VBA.


> I'd come here on the grounds that I'd expect the general expertise
> (and training as programmers) of .NET programmers to be higher
> than the general (and training as programmers) expertise of VBA
> or lispers.

I think your premise is irrelevant, but in any case, do you call your
doctor when your car breaks down?
--
Owen Wengerd
President, ManuSoft <>
VP Americas, CADLock, Inc. <>
Message 19 of 20
Anonymous
in reply to: Anonymous

still Iam getting this code abstract error , can u pls give corrected code
Message 20 of 20
Anonymous
in reply to: Anonymous

If you'd post ALL the code, or better yet a zipped solution I'll have a look
at it tomorrow
... there seems to be several errors visible, perhaps there are more
elsewhere.

/// kdub

wrote in message news:6252835@discussion.autodesk.com...
still Iam getting this code abstract error , can u pls give corrected code

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost