Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




AutoCAD Mechanical Application Programming Interface (API)

autocad en




AutoCAD Mechanical Application Programming Interface (API)
Migration Guide For Mechanical Desktop 5

Copyright © 1997-2000 Autodesk, Inc.

All Rights Reserved

This publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose.

AUTODESK, INC. MAKES NO WARRANTY, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRA 14114l1123o NTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, REGARDING THESE MATERIALS AND MAKES SUCH MATERIALS AVAILABLE SOLELY ON AN "AS-IS" BASIS.

IN NO EVENT SHALL AUTODESK, INC. BE LIABLE TO ANYONE FOR SPECIAL, COLLATERAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING OUT OF PURCHASE OR USE OF THESE MATERIALS. THE SOLE AND EXCLUSIVE LIABILITY TO AUTODESK, INC., REGARDLESS OF THE FORM OF ACTION, SHALL NOT EXCEED THE PURCHASE PRICE OF THE MATERIALS DESCRIBED HEREIN.

Autodesk, Inc. reserves the right to revise and improve its products as it sees fit. This publication describes the state of this product at the time of its publication, and may not reflect the product at all times in the future.

Autodesk Trademarks

The following are registered trademarks of Autodesk, Inc., in the USA and/or other countries: 3D Plan, 3D Props, 3D Studio, 3D Studio MAX, 3D Studio VIZ, 3DSurfer, ActiveShapes, Actrix, ADE, ADI, Advanced Modeling Extension, AEC Authority (logo), AEC-X, AME, Animator Pro, Animator Studio, ATC, AUGI, AutoCAD, AutoCAD Data Extension, AutoCAD Development System, AutoCAD LT, AutoCAD Map, Autodesk, Autodesk Animator, Autodesk (logo), Autodesk MapGuide, Autodesk University, Autodesk View, Autodesk WalkThrough, Autodesk World, AutoLISP, AutoShade, AutoSketch, AutoSurf, AutoVision, Biped, bringing information down to earth, CAD Overlay, Character Studio, Design Companion, Drafix, Education by Design, Fire, Flame, Flint, Frost, Generic, Generic 3D Drafting, Generic CADD, Generic Software, Geodyssey, Heidi, HOOPS, Hyperwire, Inferno, Inside Track, Kinetix, MaterialSpec, Mechanical Desktop, Mountstone, Multimedia Explorer, NAAUG, ObjectARX, Office Series, Opus, PeopleTracker, Physique, Planix, Powered with Autodesk Technology, Powered with Autodesk Technology (logo), RadioRay, Rastation, Riot, Softdesk, Softdesk (logo), Solution 3000, Stone, Stream, Tech Talk, Texture Universe, The AEC Authority, The Auto Architect, TinkerTech, Vapour, VISION*, WHIP!, WHIP! (logo), Wire, Woodbourne, WorkCenter, and World-Creating Toolkit.

The following are trademarks of Autodesk, Inc., in the USA and/or other countries: 3D on the PC, ACAD, Advanced User Interface, AEC Office, AME Link, Animation Partner, Animation Player, Animation Pro Player, A Studio in Every Computer, ATLAST, Auto-Architect, AutoCAD Architectural Desktop, AutoCAD Architectural Desktop Learning Assistance, AutoCAD Learning Assistance, AutoCAD LT Learning Assistance, AutoCAD Simulator, AutoCAD SQL Extension, AutoCAD SQL Interface, Autodesk Animator Clips, Autodesk Animator Theatre, Autodesk Device Interface, Autodesk Inventor, Autodesk PhotoEDIT, Autodesk Software Developer's Kit, Autodesk View DwgX, AutoFlix, AutoPAD, AutoSnap, AutoTrack, Built with ObjectARX (logo), ClearScale, Combustion, Concept Studio, Content Explorer, cornerStone Toolkit, Dancing Baby (image), Design 2000 (logo), DesignCenter, Design Doctor, Designer's Toolkit, DesignProf, DesignServer, Design Your World, Design Your World (logo), Discreet, DWG Linking, DWG Unplugged, DXF, Extending the Design Team, FLI, FLIC, GDX Driver, Generic 3D, Heads-up Design, Home Series, Kinetix (logo), Lightscape, ObjectDBX, Ooga-Chaka, Photo Landscape, Photoscape, Plugs and Sockets, PolarSnap, ProjectPoint, Pro Landscape, QuickCAD, SchoolBox, Simply Smarter Diagramming, SketchTools, Suddenly Everything Clicks, Supportdesk, The Dancing Baby, Transform Ideas Into Reality, Visual LISP, Visual Syllabus, Volo, and Where Design Connects.

Third Party Software Credits

ACIS is a registered trademark of SPATIAL TECHNOLOGY, INC.

Portions licensed from D-Cubed Ltd. DCM-2D is a trademark of D-Cubed LTD. DCM-2D Copyright D-Cubed Ltd. 1989-1997

The license management portion of this product is based on Élan License Manager 1997, Élan Computer Group, Inc. All rights reserved. Élan License Manager is a trademark of Élan Computer Group, Inc.

International CorrectSpell English spelling correction system 1993 by INSO Corporation. All rights reserved. Reproduction or disassembly of embodied algorithms or database prohibited.

SmartHeap memory manager Copyright 1991-1996 by Arthur D. Applegate. All rights reserved. All other brand names, product names or trademarks belong to their respective holders.

GOVERNMENT USE

Use, duplication, or disclosure by the U. S. Government is subject to restrictions as set forth in FAR 12.212 (Commercial Computer Software-Restricted Rights) and DFAR 227.7202 (Rights in Technical Data and Computer Software), as applicable.

Table of Contents

AutoCAD Mechanical 2000i Power Pack API changes

New functions, classes and constants

Methods   

Classes   

Constants   

Obsolete member functions

Reference   

ACM.H

ACMDEF.H   

CvarDlgInfo

CSymStdTreeItemDesc

BALLOON.H   

BOMMGR.H   

AcmBOMManager

BOMSTD.H   

AcmBOMStd

AcmCColumnDef

AcmCBalloonService

AcmCBalloonStd

AcmCPartListStd

AcmCPartList

CAUXENT.H   

AcmCAuxEntity

DATUMTGT.H   

AcmDatumTarget

FCFRAME.H   

AcmFCF

IDSYM.H   

AcmDatumId, AcmFeatId

SURFSYM.H   

AcmSurfaceTexture

WELDSYM.H   

AcmWelding

SYMBOL.H   

AcmSymbol

LEADER.H   

AcmCLeader, AcmCLeaderNodeIterator

PARTLIST.H   

AcmPartList

STDMGR.H   

AcmStandardManager

AcmStdReactor

SYMSTD.H   

AcmStandard

StdANSI.h, StdBSI.h, StdIso.h, StdDIN.h, StdJIS.h


AutoCAD Mechanical 2000i Power Pack API changes

New features and enhancements in the AutoCAD Mechanical 2000i Power Pack have resulted in changes to the API as well. This document describes the API enhancements, along with the steps developers need to take to adapt their applications to these changes.

Note: Even in cases where they are using functions, classes and constants that have not changed, API users must still recompile and relink their applications. This is due to changes in the LIB file, and to the fact that AcmSymBB has been split into two ARXs.

New functions, classes and constants

This section describes new functionality that has been added to existing API classes and services. These changes usually do not require any action (aside from recompiling and relinking).

Methods

AcmStandardManager::attachReactor / removeReactor: Used for attaching and detaching the reactor class to the standard manager. It supports various notifications.

AcmBOMManager::getItemRawData Returns attributes in unevaluated form, as opposed to getItemData, which will return them in evaluated form. You get NAME as '=<PART:NAME>' if you use getItemRawData, and 'PART1' if you use getItemData.

AcmBOMManager:: getItemData has a new default parameter: BOM standard ID. The standard ID is necessary to get correct default formulas, which are stored in the BOM standard.

AcmBOMManager has been extended to include some methods containing AmiCompDefKey and AmiCompKey. All these methods use Ami*Key in place of AcDbObjectId or AcDbObjectIdArray.

AcmStandard::projectionType / setProjectionType: Controls the projection type used for creating drawing views.

AcmStandard::listInsertPoint / setListInsertPoint: Controls the attachment type for lists.

AcmStandard::replaceWith: Used to change from one standard to another.

AcmCColumnDef::isVisible() / setVisible: Sets the visibility of the column.

AcmCColumnDef::isSummed() / setIsSummed: Controls whether the numerical column is summed.

AcmCColumnDef::data() / setData: Controls default data associated with the column.

AcmCColumnDef::isLocked() / setIsLocked: Controls whether the column is editable from the UI. The default value for most columns is false, except for QTY.

AcmCBalloonService::horizDistance / setHorizDistance: Controls horizontal distance for balloons.

AcmCBalloonService: vertDistance() / setVertDistance: Controls vertical distance for balloons.

AcmCBalloonService::pattern() / setPattern: Controls the formula to be evaluated in balloon.

AcmCBalloonStd::sizeFactor() / setSizeFactor: Controls the setting for the default balloon service's scale factor.

AcmCBalloonStd::horizDistance / setHorizDistance: Controls horizontal distance for the default balloon.

AcmCBalloonStd::vertDistance() / setVertDistance: Control vertical distance for the default balloon.

AcmCBalloonStd::pattern() / setPattern: Controls the formula to be evaluated in the default balloon.

AcmCPartListStd::isGripFrameEnabled() / setIsGripFrameEnabled: Controls the visibility of the grip frame.

AcmCPartListStd::dataTextHeight / setDataTextHeight: Controls the text size for data in a parts list.

AcmCPartListStd::textStyleId / setTextStyleId: Controls the text style for data in a parts list.

AcmCPartListStd::dataTextColor / setDataTextColor: Controls the text color for data in a parts list.

AcmCPartList::isGripFrameEnabled() / setIsGripFrameEnabled: Controls the visibility of the grip frame of a parts list. The same method exists in AcmPartList as well.

AcmCPartList::isResultBarEnabled() / setIsResultBarEnabled: Controls the visibility of the result bar for the current parts list. The same method exists in AcmPartList as well.

AcmCPartList::isFormulaBarEnabled / setIsFormulaBarEnabled: Controls the visibility of the formula bar for the current parts list. This is persistent data. The same method exists in AcmPartList as well.

AcmCPartList::getValue() / setValue: These methods can be used to access values from the result bar. The same method exists in AcmPartList as well.

AcmCAuxEntity::lineWeight() / setLineWeight: Controls line weights for the display list entity.

CsymStdTreeItemDesc::OnFactoryDefaults()Supports finer granularity for applying factory defaults. It was added mainly for use with AcmCPartListStd and AcmCBalloonStd, but it can be used in any symbol standard that implements more than one symbol.

Classes

AcmStdReactor: This is a new reactor class that is used with AcmStandardManager. You may want to override several of its notifications to control your applications more precisely.

Constants

The addition of new classes has required the addition of new constants, including:

Acm::ArrowType Contains two additional arrowheads for new symbol support.

Acm::Variable Contains several new symbol variables for new symbol support.

Acm::ProjectionType New enumeration for the projections type. Used in view creation module.

Acm::ListInsertionPoint New enumeration for the common insertion point type. Used in Parts List setting, revision list setting, hole charts setting.

Acm::StdVariable New enumeration for variable used in AcmStandard. It is used with the AcmStdReactor class.

Obsolete member functions

This section describes all member functions that have been removed from the AutoCAD Mechanical 2000i API. If any of these discontinued member functions have been used in your applications, you will need to create workarounds to provide similar functionality.

AcmSymbol::newLeader() has been removed and it was removed also from all derived classes. If you are currently using it, you'll have to use getLeader() instead. If you've used it to create a leader of your own, you'll have to call AcmSymbol's addLeader to create new one and then use getLeader() to manipulate it.

AcmSymbol::notifyUpdate() - both signatures

AcmSymbol::notifyErased()

AcmSymbol::notifyMove()

AcmSymbol::notifyConstrainedMove()

Several member functions have been removed from the AcmSymbol class and also from all derived classes. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

AcmSymbol::subClose();

This was no longer required. Normally we wouldn't do this change, but since there was already planned change to decouple the interface and to remove the notification methods, we did this change as well.

AcmCLeader::notifyUpdate() - both signatures

AcmCLeader::notifyErased()

AcmCLeader::notifyMove()

AcmCLeader::notifyConstrainedMove()

AcmCLeaderNodeIterator::nodeNumber()

AcmCLeadeNodeIterator::getExpectUpdate()

AcmCLeadeNotdeIterator::attachObject()

They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

AcmBOMStd::isBomEquivalents is obsolete. The equivalents have been replaced by the use of formulas. For example, if you have used AC_NOTE as an equivalent to NOTE, this will be migrated to the default formula as '=<ac_note>'. And if you than ask for the value of column NOTE, you'll get the same result as before. Use getItemData or getItemRawData to query the column's value.

AcmCColumnDef::getEquivalents / setEquivalents is obsolete. Equivalents are now handled as default data defined by column. Use getData, setData instead. See the discussion in AcmBOMStd above.

CvarDlgInfo::dlgIndex changed the returning type from Adesk::UInt8 to Adesk::Int16.

Reference

This section covers all changes, listed by header name and class name. You can use this as a quick reference to determine what has changed in each header.

ACM.H

Acm::ArrowType - new types: kArrowFilledHalf, kArrowEmptyHalf used for ANSI-based section view arrowheads and for detail annotations. No change aside from recompiling and relinking is necessary for existing applications.

Acm::Variable - new types for Detail Symbol (DetailSymLabelPattern, DetailSymLabelName, DetailSymScale, DetailSymShowBorder, DetailSymShowLeader, DetailSymShowAnnotLeader), new types for Section View Symbol (SectionSymLabelPattern, SectionSymLabelName). No change is necessary for existing applications.

Acm::ProjectionType: New enumeration for projections type (kFirstAngle, kThirdAngle). No change is necessary for existing applications.

Acm::ListInsertionPoint: New enumeration for common insertion point type (kInsTopLeft, kInsBottomLeft, kInsBottomRight, kInsTopRight) It influences all other insertion types: for example, if you set the common insertion point to kInsBottomLeft, the parts list attachment type will also be changed to kBottomLeft. No change aside from recompiling and relinking is necessary for existing applications.

Acm::StdVariable: New enumeration for variable (kUnits, kListAttach, kTextHeight, kTextStyle, kArrowType, kProjectionType, kScale). No change is necessary for existing applications.

ACMDEF.H

CvarDlgInfo

Changed type of dlgIndex and setDlgIndex from Adesk::UInt8 to Adesk::Int16. If you use this class in your application, you'll need to recompile and relink your application.

CSymStdTreeItemDesc

New member function added: virtual BOOL OnFactoryDefaults(). If you use this class and have a standard (such as AcmSymbolStd) that contains more than one symbol standard (in this case AcmBOMStd and AcmCPartlistStd) you need to implement this interface to support editing of the contained standards.

BALLOON.H

AcmBalloon's member function newLeader() was removed from the API. If you are currently using newLeader() with the balloon symbol, you'll have to use getLeader() instead. If you've used it to create a leader independently, you'll have to call AcmSymbol's addLeader to create a leader and then use getLeader() to manipulate it.

BOMMGR.H

AcmBOMManager

has been extended with new methods containing AmiCompDefKey and AmiCompKey. These methods are: createBomTable, getBomTable, existBomTable, getPartData, setPartData, createItem, getItemData, addItemReference, removeItemReference, getItemReferences. All these methods use Ami*Key in place of AcDbObjectId or AcDbObjectIdArray.

No change required in existing applications.

virtual Acad::ErrorStatus getItemRawData(const AcDbObjectId& itemId, CString& itemNo,

Adesk::UInt32& numOfItems, CMapStringToString& valueMap,

const AcDbObjectId& bomStdId=AcDbObjectId::kNull)const = 0;

New method. It returns attributes in unevaluated form, which means you can get NAME as '=<PART:NAME>', instead of 'PART1'. The standard Id is necessary to get correct default data, which is stored in the BOM standard's columns. All other parameters are identical to getItemData. No change required in existing applications.

getItemData

New default parameter: BOM standard id. The standard Id is necessary to get correct default formulas, which are stored in the BOM standard. These are than evaluated and the result is returned in valueMap.

Existing applications need to be recompiled and relinked.

BOMSTD.H

AcmBOMStd

The use of equivalents has been replaced by the use of formulas. For example, if you have used AC_NOTE as equivalent to NOTE, this will be migrated to the default formula as '=<ac_note>'. And if you then ask for the value of the column NOTE, you'll get the same result as before. Use getItemData or getItemRawData.

Although isBomEquivalents is still in the API, it is obsolete.

AcmCColumnDef

getEquivalents / setEquivalents are obsolete. Equivalents are now handled as data defined by column. Use getData, setData instead. See the discussion of isBomEquivalents.

virtual bool isVisible() const = 0;

virtual void setVisible(bool visible) = 0;

Sets the visibility of the column in the BOM dialog. Even if the column is defined in the BOM settings, it may be set to be invisible if desired. In this case the query method will return false.

No change required for existing applications.

virtual bool isSummed() const = 0;

virtual void setIsSummed(bool isSummed) = 0;

Controls whether the column is being summed. Supported for numerical columns only. If the column is summed, then a bar showing the result of the sum will be displayed in the BOM dialog.

No change required for existing applications.

virtual LPCTSTR data() const = 0;

virtual void setData(LPCTSTR data) = 0;

Controls default data associated with the column. Such data can be constant, or in the form of an expression. If it is constant, then virtually any part's item will display this value in the BOM dialog. If you then query part data, this attribute will NOT be in the list. You will have to call getItemData and supply the standard ID, which contains the column, which defines this data.

If the default data is a formula, then it is also evaluated for each part. For example the column NAME has data '=PART:NAME'. This is evaluated as a part name if the part was created in MDT, but stays blank if the part was created as a partref entity.

No change required for existing applications.

virtual bool isLocked() const = 0;

virtual void setIsLocked(bool isLocked) = 0;

Controls whether the column is generally editable from the UI. If it is false, users cannot change the value in the BOM dialog (or parts list or balloon dialog). The default value for most columns is false (i.e. locked), except for the QTY column.

No change required for existing applications.

AcmCBalloonService

Several new methods have been introduced here. No change required for existing applications.

virtual double horizDistance() const = 0;

virtual void setHorizDistance(double horDist) = 0;

These control the horizontal distance for the balloon. They are used for creating multiple balloons, or for reorganizing balloons. The next balloon is always placed at the specified horizontal distance away from the existing balloon. It is used if the multiple balloons are placed horizontally aligned.

virtual double vertDistance() const = 0;

virtual void setVertDistance(double verDist) = 0;

These have same meaning as horizDistance above, but pertain to vertical instead of horizontal alignment.

virtual LPCTSTR pattern() const = 0;

virtual void setPattern(LPCTSTR pattern) = 0;

This change is similar to the one made for equivalents. Formerly, you could use only a column's value in a balloon. So if you want to display something else, for example 'Part: PART1,' you had to create a new column, copy the content, update it and change the column displayed in the service. This is no longer necessary. Just set the pattern used to display the balloon to '=Part: <name>' and you'll get the desired result without having to create new columns.

AcmCBalloonStd

Several new methods have been introduced here. No change required for existing applications.

double sizeFactor() const;

void setSizeFactor(double sizeFactor);

Controls the setting for the default balloon service's scale factor. You can use this to change the text size / balloon size ratio (make the balloon relatively smaller compared to the text size).

double horizDistance() const;

void setHorizDistance(double horDist);

Controls the setting for the default balloon service. For description, see setHorizDistance above.

double vertDistance() const;

void setVertDistance(double verDist);

Controls the setting for the default balloon service. For description, see setVertDistance above.

LPCTSTR pattern() const;

void setPattern(LPCTSTR pattern);

Controls the setting for the default balloon service. For description, see setPattern above.

LPCTSTR pattern2() const;

void setPattern2(LPCTSTR pattern);

Controls the setting for the default balloon service, if it has two display fields. The behavior is same as setPattern above.

AcmCPartListStd

Several new methods have been introduced here. No change required for existing applications.

bool isGripFrameEnabled() const;

void setIsGripFrameEnabled(bool isUse);

Controls the default value for visibility of the grip frame. If user clicks on a parts list entity, four grips are highlighted. There may be lines visible that connect them to a frame. These methods control the visibility of those lines.

double dataTextHeight() const;

void setDataTextHeight(double height);

Controls the text size for data in a parts list independently of symbol text size.

AcDbObjectId textStyleId() const;

void setTextStyleId(AcDbObjectId& textId);

Controls the text style for data in a parts list independent of symbol text style.

Adesk::UInt16 dataTextColor() const;

void setDataTextColor(Adesk::UInt16 color);

Controls the text color for data in a parts list independent of symbol text color.

AcmCPartList

Several new methods have been introduced here. No change required for existing applications.

virtual bool isGripFrameEnabled() const = 0;

virtual void setIsGripFrameEnabled(bool isUse) = 0;

Controls the visibility of the grip frame. See isGripFrameEnabled for details .

virtual bool isResultBarEnabled() const = 0;

virtual void setIsResultBarEnabled(bool isUse) = 0;

Controls the visibility of the result bar for the current parts list. If the parts list displays a summed column, the default value is ON. You can overload this function for each parts list. This is persistent data.

virtual bool isFormulaBarEnabled() const = 0;

virtual void setIsFormulaBarEnabled(bool isUse) = 0;

Controls the visibility of the formula bar for the parts list. This is persistent data.

virtual Acm::ErrorStatus getValue(LPCTSTR valueName, CString& value) const = 0;

virtual Acm::ErrorStatus setValue(LPCTSTR valueName, LPCTSTR value) = 0;

These methods can be used to access values from the result bar. However, if the column is summed, the value is read-only and you cannot change it. In this case an error status is returned. For example, you can call :SetValue("Note", "Total for this assembly :"); It will work, because NOTE is a text column and it cannot be summed. However, if you are calling :

SetValue("MASS", "5.00"); you should change whether the MASS column isSummed() or not. If it is summed, the call will fail.

CAUXENT.H

AcmCAuxEntity

New methods for supporting line weights. No change required for current applications.

AcDb::LineWeight lineWeight() const;

virtual void setLineWeight(const AcDb::LineWeight wgh);

Used to control line weights for the display list entity.

DATUMTGT.H

AcmDatumTarget

Several member functions have been removed from this class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

Here is the list:

virtual Adesk::Boolean notifyMove(const AcGeVector3d &displayment);

virtual Adesk::Boolean notifyConstrainedMove(const AcGeVector3d &displayment);

virtual Adesk::Boolean notifyUpdate(const AcDbObjectId& viewId, const AcGeMatrix3d& M2PSpace);

virtual AcmCLeader* newLeader() const;

FCFRAME.H

AcmFCF

The member function newLeader() has been removed from the class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users. This particular function will cause a system crash if it is used, so it is being removed to prevent such an occurrence.

IDSYM.H

AcmDatumId, AcmFeatId

Several member functions have been removed from the class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

Here is the list:

virtual AcmCLeader* newLeader() const;

virtual Adesk::Boolean notifyUpdate(const AcDbObjectId& viewId, const AcGeMatrix3d& M2PSpace);

virtual Adesk::Boolean notifyUpdate(const AcDbIntArray& nodeNumbers, const AcDbObjectId& view = AcDbObjectId::kNull);

SURFSYM.H

AcmSurfaceTexture

Several member functions have been removed from the class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

Here is the list:

virtual AcmCLeader* newLeader() const;

virtual Adesk::Boolean notifyUpdate(const AcDbObjectId& viewId, const AcGeMatrix3d& M2PSpace);

WELDSYM.H

AcmWelding

Member function newLeader() has been removed from the class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users. This particular function will cause a system crash if it is used, so it is being removed to prevent such an occurrence.

SYMBOL.H

AcmSymbol

Several member functions have been removed from the class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

Here is the list:

virtual Adesk::Boolean notifyUpdate(const AcDbObjectId& viewId, const AcGeMatrix3d& M2PSpace);

virtual Adesk::Boolean notifyUpdate(const AcDbIntArray& nodeNumbers, const AcDbObjectId& view = AcDbObjectId::kNull);

virtual Acm::ErrorStatus notifyErased();

virtual Adesk::Boolean notifyMove(const AcGeVector3d &movement);

virtual Adesk::Boolean notifyConstrainedMove(const AcGeVector3d &movement);

virtual AcmCLeader* newLeader() const;

virtual Acad::ErrorStatus subClose();

LEADER.H

AcmCLeader, AcmCLeaderNodeIterator

Several member functions have been removed from this class. They were originally intended to provide internal notification. They were removed because they require internal structures, classes and IDs that are not exposed in the API and thus cannot be accessed by users.

Here is the list:

virtual Acm::ErrorStatus notifyViewUpdate (const AcDbObjectId& viewId, const AcGeMatrix3d& M2PSpace) = 0;

virtual Acm::ErrorStatus notifyViewErase (const AcDbObjectId& viewId) = 0;

virtual Acm::ErrorStatus notifyViewMove (const AcDbObjectId& viewId, const AcGeVector3d& movement) = 0;

virtual Acm::ErrorStatus notifyViewConstrinedMove(const AcGeVector3d &movement) = 0;

virtual void notifyUpdate(const AcmCExpectUpdate* howToUpdate) = 0;

virtual void getExpectUpdate(AcmCExpectUpdate*&) = 0;

virtual AcmCAttach* attachObject() const = 0;

PARTLIST.H

AcmPartList

The changes reflect changes in AcmCPartList sub-symbol. See AcmCPartList for details.

STDMGR.H

AcmStandardManager

Two new methods have been added to AcmStandardManager and one new reactor class is being exposed:

virtual void attachReactor(AcmStdReactor* pReactor) = 0;

virtual void removeReactor(AcmStdReactor* pReactor) = 0;

Used for attaching and detaching the AcmStandardReactor class to the standard manager. Once you attach the reactor, it must not be deleted without first detaching the reactor from the list. If the reactor is not detached before being deleted, the system will crash when sending the notification to the object, which won't be valid.

AcmStdReactor

New reactor class. You may want to override several of its notification to control your applications more precisely.

virtual void onNewStandard(AcmStandard *pNewStd)

Use this callback to populate a standard with your implemented standard. You must not use workingDatabase to access the standard's data. You should use the database that comes with Object IDs.

virtual void onChanged(const AcmStandard* pStd, Acm::StdVariable var)

Use this callback to react to changes to the basic standard setting, such as attachment for lists, units, text height, text style, arrowhead type. Var specifies which portion of the standard has changed. Once you know that a change has occurred, you can get your symbol standard and update accordingly.

virtual void onChanged(const AcmSymbolStd* pSymStd)

Use this callback to react to changes to the symbol standard setting. This can be used to react to changed settings, if the dependent entity isn't a symbol and so didn't receive the regen() callback. This callback is implemented for standards, which do not yet have their own symbols (section line, thread line).

virtual void onRemoved(const AcmStandard* pStd)

This callback is used to obtain the notification when we are going to remove the standard. This callback is going to be used in the setup dialog to react to erasing the standard. You could use it for other purposes as well. The object will already be destroyed when this notification is received.

virtual void onSetCurrentStd(AcDbObjectId& oldCurrentStandard, AcDbObjectId& newCurrentStdId)

This callback is used when we need to monitor changes to the current standard.

SYMSTD.H

AcmStandard

Several new methods were added:

Acm::ProjectionType projectionType() const;

void setProjectionType(Acm::ProjectionType);

Controls the projection type used for creating drawing views. It serves as the default value for the view creation process. Once the view is created and you change this value, the view is not updated.

Acm::ListInsertionPoint listInsertPoint() const;

void setListInsertPoint(Acm::ListInsertionPoint);

Controls the attachment type for several lists: parts lists, revision lists, hole charts, and so on. These lists may have their own symbol standards, which should update themselves if this value changes (use AcmStdReactor).

Acad::ErrorStatus replaceWith(AcDbObjectId otherStdId);

Used to replace one standard with another. If you use AutoCAD's swapIdWith without using replaceWith, the result is that AcmStandards are swapped, but their symbol standards are left untouched. The replaceWith method replaces and merges all symbol standards, so that no symbol is left behind without its standard.

virtual Acad::ErrorStatus subSwapIdWith(AcDbObjectId otherId, Adesk::Boolean swapXdata = false,

Adesk::Boolean swapExtDict = false);

Overridden virtual function necessary to properly support AutoCAD's swapIdWith.

StdANSI.h, StdBSI.h, StdIso.h, StdDIN.h, StdJIS.h

The implementation of ANSI, JIS, BSI, DIN, ISO, GB and CSN has been moved to new AMDT_STDIMP.ARX. It means, that Amdt_stdImp.lib is necessary for linking of your application if you derive from the ANSI, JIS, BSI, DIN, ISO, GB, or CSN standards directly. For example if your standard class is based on AcmStandardANSI class, then you'll need to relink your application using acmsymbb.lib and Amdt_stdImp.lib (the user's DSP will have to change).

No other change is necessary.


Document Info


Accesari: 3527
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )