Тема: Помогите с установкой типа линии

Почему-то не устанавливается тип линии для окружности. Помогите разобраться.
Код поместил ниже:

    
AcDbLinetypeTablePointer pLT(acdbCurDwg(),AcDb::kForWrite);
            if ((es = pLT.openStatus()) != Acad::eOk) {
                acutPrintf(_T("\npLT.openStatus()=%s"),acadErrorStatusText(es));
                return;
            }
            AcDbLinetypeTableRecord *pLtype = new AcDbLinetypeTableRecord(); 
            pLtype->setName(_T("MyLine")); 
            pLtype->setComments(_T("Программно созданный тип линии")); 
            pLtype->setPatternLength(14.22);   
            pLtype->setNumDashes(4);       
            pLtype->setDashLengthAt(0,12);   
            pLtype->setDashLengthAt(1,-1);   
            if ((es = pLT->add(pLtype)) == Acad::eOk || (es==Acad::eDuplicateRecordName)) 
            {
                crcl->setLinetypeScale(1.0); 
                crcl->setLinetype(_T("MyLine")); 
                postToDwgAndClose(crcl,id);
            }
            pLT->close();

(изменено: Александр Ривилис, 16 июня 2011г. 19:32:22)

Re: Помогите с установкой типа линии

Думаю, что ошибок как минимум три:
1. Ты указываешь, что количество "тире" 4

pLtype->setNumDashes(4);   

а инициализируешь только 0-ое и 1-ое (т.е. еще два нулевые). Так что, наверное правильней:

pLtype->setNumDashes(2);

2. Ты не "закрыл" тип линии, т.е. не сделал pLtype->close() после pLT->add(pLtype), что неправильно.
3. Ты меняешь тип линии окружности до того как не закрыл тип линии.

P.S.: Ну и внимательнее посмотри этот пример.

Re: Помогите с установкой типа линии

Спасибо большое, разобрался. :)