Custom entity osnap points doesn't work

Custom entity osnap points doesn't work

Anonymous
Not applicable
815 Views
4 Replies
Message 1 of 5

Custom entity osnap points doesn't work

Anonymous
Not applicable

Hello, how can i define custom snap points for my custom entity? I'm implementing the "subGetOsnapPoints" method but the snap points doesn't appears when the mouse is closer, here is the implementation:

 

Acad::ErrorStatus Bolanum::subGetOsnapPoints (
	AcDb::OsnapMode osnapMode,
	int gsSelectionMark,
	const AcGePoint3d &pickPoint,
	const AcGePoint3d &lastPoint,
	const AcGeMatrix3d &viewXform,
	AcGePoint3dArray &snapPoints,
	AcDbIntArray &geomIds) const
{
	assertReadEnabled () ;

	switch(osnapMode)
	{
		case AcDb::kOsModeEnd :
				snapPoints.append(mLinePosition);
				snapPoints.append(getCircleBorderPoint());
			break;
	}

	return Acad::eOk;
}

Am i missing or doing something wrong? My entity full source is in the attachments as a lisp file.

I'm using ObjectARX 2012 and VS 2010 SP1. My entity is a ARX not an DBX object.

 

 

 

0 Likes
Accepted solutions (1)
816 Views
4 Replies
Replies (4)
Message 2 of 5

Alexander.Rivilis
Mentor
Mentor
Accepted solution

Declaration of subGetOsnapPoints is:

    virtual Acad::ErrorStatus   subGetOsnapPoints(
                                    AcDb::OsnapMode     osnapMode,
                                    Adesk::GsMarker     gsSelectionMark,
                                    const AcGePoint3d&  pickPoint,
                                    const AcGePoint3d&  lastPoint,
                                    const AcGeMatrix3d& viewXform,
                                    AcGePoint3dArray&   snapPoints,
                                    AcDbIntArray &   geomIds) const;

So you have to replace:

int gsSelectionMark,

with

Adesk::GsMarker     gsSelectionMark

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes
Message 3 of 5

Anonymous
Not applicable

Well, it worked. The function signature generated by the ArxWizard is wrong, even in the docs the signature is like this: 

 

virtual Acad::ErrorStatus  
subGetOsnapPoints( AcDb::OsnapMode osnapMode, 
int gsSelectionMark, 
const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const;

I'm sorry for the stupid question. Thank you Alexander Rivilis.

0 Likes
Message 4 of 5

Alexander.Rivilis
Mentor
Mentor

Some years ago I've informed Autodesk DevHelp about this. Help was corrected in new version:

 

2017-02-25_22-23-59.png

 

New version of ARXWizard also now corrected. You can change those files yourself:

 

C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizCustomObject\Templates\1033\object.cpp

C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizCustomObject\Templates\1033\object.h

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes
Message 5 of 5

Anonymous
Not applicable

I'm gonna fix it, thanks for the tip.

0 Likes