Comparing Explode with ExplodeFragments on AutoCAD MText

This request was posted by Mike C as a comment on the last post:

Could you expand this article to handle MTEXT? It would be nice to contrast the Explode and ExplodeFragments methods.

As I hadn't actually used MText.ExplodeFragments() before (at least not that I could remember), I thought it was indeed worth spending some time on today.

Before launching into the code, a few words on using Entity.Explode() or MText.ExplodeFragments(), specifically with respect to MText. Entity.Explode() works very well on MText objects: if you want to generate physical AutoCAD geometry from MText (in this case creating DBText objects or possibly a number of smaller MText objects, in the case of multi-column MText), then this is the way to go. MText.ExplodeFragments() is a good way to get at the data inside your MText – you get a function call reporting each line (or fragment) of your MText – and this is presumably quite handy for performing tasks such as stripping control codes, etc.

The below C# code extends the code in the last post to more explicitly deal with MText. It dumps the MText fragments found to the command-line, and optionally allows you to explode the MText entities anyway.

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.EditorInput;

using Autodesk.AutoCAD.Runtime;

 

namespace Explosion

{

  public class Commands

  {

    [CommandMethod("EXP", CommandFlags.UsePickSet)]

    public void ExplodeEntities()

    {

      Document doc =

          Application.DocumentManager.MdiActiveDocument;

      Database db = doc.Database;

      Editor ed = doc.Editor;

 

      // Ask user to select entities

 

      PromptSelectionOptions pso =

        new PromptSelectionOptions();

      pso.MessageForAdding = "\nSelect objects to explode: ";

      pso.AllowDuplicates = false;

      pso.AllowSubSelections = true;

      pso.RejectObjectsFromNonCurrentSpace = true;

      pso.RejectObjectsOnLockedLayers = false;

 

      PromptSelectionResult psr = ed.GetSelection(pso);

      if (psr.Status != PromptStatus.OK)

        return;

 

      // Check whether to erase the original(s)

 

      bool eraseOrig = false,

          explodeMText = false;

 

    
 
if (psr.Value.Count > 0)

      {

        PromptKeywordOptions pko =

          new PromptKeywordOptions("\nErase original objects?");

        pko.AllowNone = true;

        pko.Keywords.Add("Yes");

        pko.Keywords.Add("No");

        pko.Keywords.Default = "No";

 

        PromptResult pkr = ed.GetKeywords(pko);

        if (pkr.Status != PromptStatus.OK)

          return;

 

        eraseOrig = (pkr.StringResult == "Yes");

 

        pko.Message = "\nExplode MText?";

        pkr = ed.GetKeywords(pko);

        if (pkr.Status != PromptStatus.OK)

          return;

 

        explodeMText = (pkr.StringResult == "Yes");

      }

 

      Transaction tr =

        db.TransactionManager.StartTransaction();

      using (tr)

      {

        // Collect our exploded objects in a single collection

 

        DBObjectCollection objs = new DBObjectCollection();

 

        // Loop through the selected objects

 

        foreach (SelectedObject so in psr.Value)

        {

          // Open one at a time

 

          Entity ent =

            (Entity)tr.GetObject(

              so.ObjectId,

              OpenMode.ForRead

            );

 

          // If dealing with MText...

 

          MText mt = ent as MText;

          if (mt != null)

          {

            // Create our callback method based on

            // a lambda expression (C# 3.0 or higher)

 

            MTextFragmentCallback cb =

              new MTextFragmentCallback(

                (frag, obj) =>

                {

                  // Great to see type inference working in C#, so

                  // IntelliSense treats frag as an MTextFragment

 

                  ed.WriteMessage(

                    "\nMText fragment found: {0}", frag.Text

                  );

                  return MTextFragmentCallbackStatus.Continue;

                }

              );

            mt.ExplodeFragments(cb);

          }

 

          // Only explode if not MText or we're also exploding

          // MText objects

 

          if (mt == null || explodeMText)

          {

            // Explode the object into our collection

 

            try

            {

              ent.Explode(objs);

            }

            catch { }

 

            // Erase the original, if requested

 

            if (eraseOrig)

            {

              ent.UpgradeOpen();

              ent.Erase();

            }

          }

        }

 

 &
#160;     
// Now open the current space in order to

        // add our resultant objects

 

        BlockTableRecord btr =

          (BlockTableRecord)tr.GetObject(

            db.CurrentSpaceId,

            OpenMode.ForWrite

          );

 

        // Add each one of them to the current space

        // and to the transaction

 

        foreach (DBObject obj in objs)

        {

          Entity ent = (Entity)obj;

          btr.AppendEntity(ent);

          tr.AddNewlyCreatedDBObject(ent, true);

        }

 

        // And then we commit

 

        tr.Commit();

      }

    }

  }

} 

I decided to use a lambda expression – introduced in C# 3.0 – to implement our callback function which then gets wrapped in a MTextFragmentCallback object. This will mean a little extra work if supporting prior versions of C# or converting the  code to VB.NET. I also added a try-catch block around the Explode() call, to pick up eNotApplicable exceptions and the like.

Let's see what happens when we run the code, selecting the main MText object from the Sample/Mechanical Sample/Mechanical – Text and Tables.dwg sample drawing.

Here's the selected MText – we can already see it contains a bunch of control codes from the contents property:

Selected multi-column MText

When we run the EXP command – choosing to both erase the original entities and explode MText (as well as the default behaviour of reporting the fragments) – we see these results on the command-line, with – quite importantly – not a control code in sight:

Command: EXP

Select objects to explode: 1 found

Select objects to explode:

Erase original objects? [Yes/No] <No>: Y

Explode MText? [Yes/No] <No>: Y

MText fragment found: GENERAL NOTES:

MText fragment found: 1.

MText fragment found: REFERENCE DRAWINGS ARE AS FOLLOWS:

MText fragment found: P & ID LEGEND

MText fragment found: SK-P-DR-0010

MText fragment found: GROUND LEVEL PLAN

MText fragment found: SK-F-DR-0001

MText fragment found: GENERAL NOTES ON CIVIL INTERFACE DRAWINGS

MText fragment found: SK-F-DR-0016

MText fragment found: STEAMFIELD LAYOUT

MText fragment found: SK-M-DR-0002

MText fragment found: SEPARATOR AREA - GENERAL ARRANGEMENT - PLAN

MText fragment found: SK-M-DR-0003

MText fragment found: SEPARATOR AREA - GENERAL ARRANGEMENT - ELEVATION

MText fragment found: SK-M-DR-0004

MText fragment found: PIPING KEY PLAN

MText fragment found: SK-M-DR-0010

MText fragment found: PIPING STAN
DARD DETAILS - CONDENSATE DRAIN POT

MText fragment found: SK-M-DR-0020

MText fragment found: PIPING STANDARD DETAILS - STEAM TRAP ASSEMBLY

MText fragment found: SK-M-DR-0021

MText fragment found: PIPING STANDARD DETAILS - HIGH POINT VENT

MText fragment found: SK-M-DR-0022

MText fragment found: PIPING STANDARD DETAILS - LOW POINT DRAIN

MText fragment found: SK-M-DR-0023

MText fragment found: PIPING STANDARD DETAILS - LOW POINT DRAIN (BRINE SYSTEM)

MText fragment found: SK-M-DR-0024

MText fragment found: PIPING STANDARD DETAILS - SAMPLE POINT

MText fragment found: STEAM AND CONDENSATE SERVICE

MText fragment found: SK-M-DR-0025

MText fragment found: PIPING STANDARD DETAILS - SAMPLE POINT

MText fragment found: CHEMICAL SERVICE

MText fragment found: SK-M-DR-0026

MText fragment found: PIPING STANDARD DETAILS -  ISOKINETIC SAMPLE PROBE

MText fragment found: SK-M-DR-0027

MText fragment found: PIPING STANDARD DETAILS -  PRESSURE TAPPING

MText fragment found:

MText fragment found: SK-M-DR-0028

MText fragment found: PIPING STANDARD DETAILS -  THERMOWELL

MText fragment found: SK-M-DR-0029

MText fragment found: PIPING STANDARD DETAILS -  ORIFICE PLATE

MText fragment found: SK-M-DR-0030

MText fragment found: PIPING STANDARD DETAILS -  SPRAY NOZZLE

MText fragment found:

MText fragment found: SK-M-DR-0031

MText fragment found: PIPING STANDARD DETAILS -  pH PROBE

MText fragment found: SK-M-DR-0032

MText fragment found: PIPING STANDARD DETAILS -  FLOW SWITCH

MText fragment found: SK-M-DR-0033

MText fragment found: PIPING STANDARD DETAILS -  SPRAY NOZZLE

MText fragment found: SK-M-DR-0034

MText fragment found: PIPING STANDARD DETAILS -  SPRAY NOZZLE

MText fragment found: SK-M-DR-0035

MText fragment found: PIPING STANDARD DETAILS -  STEAM ANALYZER

MText fragment found: SK-M-DR-0036

MText fragment found: INSULATION & CLADDING DETAILS

MText fragment found: SK-M-DR-0037, 0038 & 0039

MText fragment found: HP SEPARATOR - GENERAL NOTES AND NOZZLE LOADS

MText fragment found: SK-M-DR-0100

MText fragment found: HP SEPARATOR - GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0101

MText fragment found: HP SEPARATOR - INLET NOZZLE DETAIL

MText fragment found: SK-M-DR-0102

MText fragment found: HP SEPARATOR - INLET NOZZLE LEMNISCATE CURVE

MText fragment found: TEMPLATE DIMENSIONS

MText fragment found: SK-M-DR-0103

MText fragment found: LP SEPARATOR - GENERAL NOTES AND NOZZLE LOADS

MText fragment found: SK-M-DR-0110

MText fragment found: LP SEPARATOR - GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0111

MText fragment found: LP SEPARATOR - INLET NOZZLE DETAIL

MText fragment found: SK-M-DR-0112

MText fragment found: LP SEPARATOR - INLET NOZZLE LEMNISCATE CURVE

MText fragment found: TEMPLATE DIMENSIONS

MText fragment found: SK-M-DR-0113

MText fragment found: FLASH TANK - GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0120

MText fragment found: FLASH TANK - HOLD-DOWN BOLT GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0121

MText fragment found: FLASH TANK - WEIR BOX DETAILS

MText fragment found: SK-M-DR-0122

MText fragment found: FLASH TANK - NOZZLE DETAILS

MText fragment found: SK-M-DR-0123

MText fragment found: FLASH TANK - OTHER NOZZLE DETAILS

MText fragment found: SK-M-DR-0124

MText fragment found: FLASH TANK - BAFFLE PLATE DETAILS

MText fragment found: SK-M-DR-0125

MText fragment found: ACID STORAGE TANK - GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0130

MText fragment found: ACID STORAGE TANK - HOLD-DOWN BOLT GENERAL ARRANGEMENT

MText fragment found: SK-M-DR-0131

MText fragment found: ACID STORAGE TANK - NOZZLE DETAILS

MText fragment found: SK-M-DR-0132

MText fragment found: PIPE SUPPORTS - PIPE GUIDE TYPE PG1

MText fragment found: SK-M-DR-0250

MText fragment found: PIPE SUPPORTS - PIPE GUIDE TYPE PG2

MText fragment found: SK-M-DR-0251

MText fragment found: PIPE SUPPORTS - PIPE GUIDE TYPE PG3

MText fragment found: SK-M-DR-0252

MText fragment found: PIPE SUPPORTS - LINE STOP TYPE LS1

MText fragment found: SK-M-DR-0253

MText fragment found: PIPE SUPPORTS - LINE STOP TYPE LS2

MText fragment found: SK-M-DR-0254

MText fragment found: PIPE SUPPORTS - LINE STOP TYPE LS3

MText fragment found: SK-M-DR-0255

MText fragment found: PIPE SUPPORTS - PIPE ANCHOR TYPE PA1

MText fragment found: SK-M-DR-0256

MText fragment found: PIPE SUPPORTS - PIPE ANCHOR TYPE PA2

MText fragment found: SK-M-DR-0257

MText fragment found: PIPE SUPPORTS - PIPE ANCHOR TYPE PA3

MText fragment found: SK-M-DR-0258

MText fragment found: 2.

MText fragment found: PIPING SHALL BE IN ACCORDANCE WITH THE FOLLOWING

SPECIFICATIONS:

MText fragment found: PIPE SPECIFICATION - CS TWO PHASE

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0001

MText fragment found: PIPE SPECIFICATION - CS HP STEAM

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0002

MText fragment found: PIPE SPECIFICATION - CS LP STEAM

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0003

MText fragment found: PIPE SPECIFICATION - CS BRINE

MText fragment found:

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0004

MText fragment found: PIPE SPECIFICATION - HDPE CONDENSATE

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0005

MText fragment found: PIPE SPECIFICATION - SS CONDENSATE

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0006

MText fragment found: PIPE SPECIFICATION - SS WASH WATER

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0007

MText fragment found: PIPE SPECIFICATION - HASTELLOY ACID

MText fragment found: - XXXX

MText fragment found: SK-M-SP-0008

MText fragment found: 3.

MText fragment found: INSPECTION AND TESTING PIPING SHALL BE INSPECTED AND

TESTED IN ACCORDANCE  WITH THE SPECIFIED

MText fragment found: CODE AS WELL AS THE FOLLOWING:

MText fragment found: A.

MText fragment found: 100% RADIOGRAPH FOR PRESSURE RETAINING WELDS

MText fragment found: B.

MText fragment found: ALL NON PRESSURE WELDS TO BE MAG PARTICLE OR DYE

PENETRANT TESTED

MText fragment found: C.

MText fragment found: HYDROSTATIC TEST PRESSURE IN ACCORDANCE WITH ASME

MText fragment found: VIII DIVISION 1  PARAGRAPH UG-99(C)

MText fragment found: D.

MText fragment found: THE CONTRACTOR IS TO PROVIDE ANY BLIND FLANGES AND

EQUIPMENT TO  UNDERTAKE THE

MText fragment found: TESTING

MText fragment found: REFER TO SPECIFICATION FOR HYDROSTATIC TESTING OF PIPES

MText fragment found: SK-M-SP-0024

MText fragment found: 4.

MText fragment found: PIPING LAYOUT DIMENSIONS ARE SHOWN IN MILLIMETERS, FOR

THE PIPING &  WELLHEADS IN THE COLD

MText fragment found: POSITION. GRIDLINE COORDINATES AND ELEVATIONS ARE  IN

METERS. PIPE DIAMETERS ARE SHOWN IN

MText fragment found: INCHES.

MText fragment found: 5.

MText fragment found: ELEVATIONS ARE GIVEN TO PIPE CENTERLINES UNLESS OTHERWISE

NOTED.

MText fragment found: 6.

MText fragment found: ABBREVIATIONS:

MText fragment found: BE

MText fragment found: BEVELED ENDS

MText fragment found: O/D

MText fragment found: OUTSIDE DIAMETER

MText fragment found: BW

MText fragment found: BUTT WELD

MText fragment found: PBE

MText fragment found: PLAIN BOTH ENDS

MText fragment found: CDP

MText fragment found: CONDENSATE DRAIN POINT

MText fragment found: PFC

MText fragment found: PARALLEL FLANGED CHANNEL

MText fragment found: CS

MText fragment found: CARBON STEEL

MText fragment found: PL

MText fragment found: PLATE

MText fragment found: C/WT

MText fragment found: COUNTER WEIGHT

MText fragment found: POE

MText fragment found: PLAIN ONE END

MText fragment found: CENTER LINE

MText fragment found: PTA

MText fragment found: PRESSURE TAPPING

MText fragment found: CTRS

MText fragment found: CENTERS

MText fragment found: RF

MText fragment found: RAISED FACE

MText fragment found: CVR

MText fragment found: COVER

MText fragment found: RL

MText fragment found: REDUCED LEVEL

MText fragment found: COS

MText fragment found: CHECK ON SITE

MText fragment found: RO

MText fragment found: RESTRICTION ORIFICE

MText fragment found: C

MText fragment found: CHANNEL

MText fragment found: RSA

MText fragment found: ROLLED STEEL ANGLE

MText fragment found: E

MText fragment found: EAST

MText fragment found: RTJ

MText fragment found: RING TYPE JOINT

MText fragment found: EW

MText fragment found: EACH WAY

MText fragment found: SPA

MText fragment found: STEAM SAMPLING POINT

MText fragment found: FO

MText fragment found: FLOW ORIFICE

MText fragment found: STD

MText fragment found: STANDARD

MText fragment found: GALV

MText fragment found: GALVANIZED

MText fragment found: SAW

MText fragment found: SUBMERGED ARC WELDED

MText fragment found: HPV

MText fragment found: HIGH POINT VENT

MText fragment found: SMLS

MText fragment found: SEAMLESS

MText fragment found: IAC

MText fragment found: INSTRUMENT AIR CONNECTION

MText fragment found: SP

MText fragment found: SAMPLE  POINT

MText fragment found: IP

MText fragment found: INTERSECTION POINT

MText fragment found: SW

MText fragment found: SOCKET WELD

MText fragment found: IS

MText fragment found: ISOKINETIC SAMPLE POINT

MText fragment found: TBE

MText fragment found: THREADED BOTH ENDS

MText fragment found: L

MText fragment found: ANGLE

MText fragment found: THD

MText fragment found: THREADED

MText fragment found: LG

MText fragment found: LONG

MText fragment found: TOE

MText fragment found: THREADED ONE END

MText fragment found: LPD

MText fragment found: LOW POINT DRAIN

MText fragment found: TOS

MText fragment found: TOP OF STEEL

MText fragment found: LR

MText fragment found: LONG RADIUS

MText fragment found: TOG

MText fragment found: TOP  OF GRATING

MText fragment found: MDFT

MText fragment found: MINIMUM DRY FILM THICKNESS

MText fragment found: TWA

MText fragment found: THERMOWELL SCREWED

MText fragment found: MS

MText fragment found: MILD STEEL

MText fragment found: TWB

MText fragment found: THERMOWELL FLANGED

MText fragment found: N

MText fragment found: NORTH

MText fragment found: THK

MText fragment found: THICK

MText fragment found: No

MText fragment found: NUMBER

MText fragment found: TYP

MText fragment found: TYPICAL

MText fragment found: NOM

MText fragment found: NOMINAL

MText fragment found: WN

MText fragment found: WELD NECK

MText fragment found: NPS

MText fragment found: NOMINAL PIPE SIZE

MText fragment found: WT

MText fragment found: WALL THICKNESS

MText fragment found: CLASS

MText fragment found: 7.

MText fragment found: PIPE SUPPORT TYPES:

MText fragment found: PA

MText fragment found: FIXED ANCHOR

MText fragment found: PG

MText fragment found: GUIDE

MText fragment found: PC

MText fragment found: CONSTANT WEIGHT SUPPORT

MText fragment found: PS

MText fragment found: SLIDE

MText fragment found: 8.

MText fragment found: WHERE APPLICABLE DIMENSIONS SHOWN ON LONG SECTIONS ARE

PLAN LENGTHS.

MText fragment found: 9.

MText fragment found: ALL GASKETS ARE 3.2mm THICK (COMPRESSED) UNLESS NOTED

OTHERWISE.

MText fragment found: 10.

MText fragment found: ALL FITTING TO FITTING DIMENSIONS INCLUDE 3mm WELD GAPS.

MText fragment found: 11.

MText fragment found: CONTOURS REFLECT EXISTING GROUND LEVELS. WHERE APPLICABLE

REFER LONG SECTION  FOR DESIGN

MText fragment found: GROUND LEVEL. CONFIRM LEVELS ON SITE.

MText fragment found: 12.

MText fragment found: INTERSECTION POINTS (IP's) SHALL BE PEGGED OUT AND

VERIFIED BY COMPANY BEFORE SUPPORT OR

MText fragment found: PIPING INSTALLATION CAN COMMENCE.

MText fragment found: 13.

MText fragment found: MAXIMUM MISALIGNMENT OF ANY SUPPORT FROM A STRAIGHT LINE

BETWEEN I.P.'s HORIZONTAL  ±10mm

MText fragment found: VERTICAL      ±3mm

MText fragment found: 14.

MText fragment found: INSULATION SHALL BE IN ACCORDANCE WITH THE FOLLOWING

SPECIFICATION AND DRAWINGS:

MText fragment found: SPECIFICATION

MText fragment found: SK-M-SP-0036

MText fragment found: DRAWINGS

MText fragment found: SK-M-DR-0037, 0038, 0039

MText fragment found: 15.

MText fragment found: CONSTANT WEIGHT SUPPORT TO BE INSTALLED HORIZONTAL IN THE

COLD POSITION (BOTH  PIPING AND

MText fragment found: WELL) UNLESS NOTED OTHERWISE.

MText fragment found: 16.

MText fragment found: CHANGES IN DIRECTION OR SLOPE TO BE FULL OR TRIMMED

ELBOWS UNLESS SINGLE OR DOUBLE  MITER

MText fragment found: BENDS ARE SPECIFIED. FOR NITRE BEND DETAILS SEE DRAWING

LISTED IN NOTE 1 ABOVE.

MText fragment found: 17.

MText fragment found: CONTRACTOR SHALL SUBMIT CONSTRUCTION PLAN AND METHODOLOGY

FOR EACH AREA  (WELL PAD, CROSS

MText fragment found: COUNTRY ROUTE, TIE-IN, ETC.) TO COMPANY FOR REVIEW PRIOR

TO  COMMENCING WORK.

MText fragment found: 18.

MText fragment found: CONTRACTOR SHALL SUBMIT HYDROTEST PLAN AND METHODOLOGY

FOR EACH AREA TO  COMPANY FOR

MText fragment found: REVIEW PRIOR TO TESTING.

Selecting the resultant objects, we can see that – while we now have two – they are still MText:

Our first level explode results

If we use EXP on these two objects – selecting the same options as before – we finally see the MText decomposed into DBText objects (there's no need to show the command-line results again – it'll be the same as last time, with the minor difference of us selecting two objects instead of one). I've only selected the text in the first column – if we select all 133 objects in both columns, AutoCAD won't show the grip markers, which makes it less clear they are now all separate objects:

Our second level explode results

Thanks for the interesting suggestion, Mike! 🙂

10 responses to “Comparing Explode with ExplodeFragments on AutoCAD MText”

  1. Is there any possible way to explode text object into their geometry?
    I'm working in Architecture, and when creating elevation views, it automatically filters out all text and dimension objects.
    I've also read where others are looking for the same thing when doing machining.
    I've asked everwhere and it seems like the answer is no.

  2. Hi Chris,

    I certainly hit this behaviour during my recent "point gathering" exercise, and ended up living with determining the accurate bounds of the text (which was sufficient for my needs).

    I'm curious to know more about what you're after... can you elaborate? I understand you want the geometry, but for what specific purpose?

    Cheers,

    Kean

  3. Specifically, I need to convert the text into lines and curves. The trouble I run into is with AutoCAD Architecture. My current project is a product configurator for cabinetry, and part of what it does is insert and automatic label and dimension so the users don't have to manually lable. However in Architecture, when you create an elevation view in a room, it does not include any text or dimension objects in the 2d output, forcing me to try and make the labels as collections of lines or curves so they show up in the evelavation drawings.
    In my seach I've also found that there are quite a few people who want to convert text objects to lines and curves to use with CAM softwares.
    I've almost given up on trying to find an answer, but I though I would ask since its somewhat relevent to the article.

  4. Hi Chris,

    I've just discovered the TXTEXP (former Express Tools) command. Can you give that a try and see how it works for you?

    Regards,

    Kean

  5. How about just getting the text string from mtext?
    I have a lisp for that but its imperfect.
    If we could get the string without formatting, we could modify the string and still preserve formatting because now we can tell what is format info and what is the resulting text. I have 20 or so text routines that do things like modify first number found, match text, round numbers in text, and so on. these work on text, mtext, and attributes, but are not dependable on mtext due to the detecting formatting characters issue.

  6. I had looked at this, the express tools explode text lisp command, it actually works by exporting the text object to a WMF and then importing it back into the database. Apart from some weird scaling issues it works, but I cannot find the same functionality in the .Net API.

  7. Hi James,

    ExplodeFragments() does provide you access to the text string without formatting codes.

    Or am I missing something?

    Regards,

    Kean

  8. Right - I don't think it is exposed via an API, as such, but you could script the use of the command, at a push.

    Kean

  9. Hi Kean,
    Is there any way by which we can convert Text into line/arc using RealDWG toolkit?

    Regards,
    Niraj

  10. Hi Niraj,

    This isn't a support forum: please post your request to the ADN team or the appropriate online discussion group.

    Regards,

    Kean

Leave a Reply to Niraj Cancel reply

Your email address will not be published. Required fields are marked *