Тема: Izmenit koordinati vertexsov v pollilinii
Privet
MOzet kto pomozet, mne nada sdelat kopiju liniju i izmenit vse koordinati vertexsov
Spasibo
Ps:Izvinite cto pisu ne ruskimi bukvami:(
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Izmenit koordinati vertexsov v pollilinii
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Privet
MOzet kto pomozet, mne nada sdelat kopiju liniju i izmenit vse koordinati vertexsov
Spasibo
Ps:Izvinite cto pisu ne ruskimi bukvami:(
По поводу русских букв есть специальный тэг [rus]text na latince[/rus] который отобразится: техт на латинце
По поводу самого вопроса - уточни:
1) какая именно полилиния (AcDbPolyline, AcDb2dPolyline, AcDb3dpolyline)
2) как именно нужно изменить все вершины полилинии.
mne nuzni vse AcDbPolyline, AcDb2dPolyline, AcDb3dpolyline, no ocen blagodaren i za adin pirmer, da ti prav nado izmenit vse versini
> Darius
1) Сначала воспользуйся поиском: https://www.caduser.ru/forum/search.htm … DbPolyline
2) Если ты не уточнишь постановку задачи - примера не будет! Известно ли что нужно сделать с вершинами (т.е. куда именно их перенести)? Сохраняется ли количество вершин или какие-то нужно удалить, а какие-то добавить? Есть ли дуговые сегменты у полилинии? Слишком много неизвестных, чтобы начинать писать программу...
moja zadaca tokaja, ia biru AcDb3dpolyline i ia dolzen tolko izmenit vse koordinati versin , neudalit i ne domavit tolko vzial versinu na primer x=100 y=100 ia izmeniaju x=x+b i y = y+b i tak so vsemi versinami,eto ne prosto ofset potomu cto b mozet izminiatsa, no poscetaneja eto ne problema mne neudajotsa samo izmenenija koordinat versin, mozet kto nebut zdes delaet cto nebud i pod Civil 3D, eta zadaca imeno dlia nego
spasibo vsem
> Darius
// // Функция для переноса указанной вершины 3D-полилинии в новую точку // static void Move3DVertex(void) { ads_point p; ads_name entPoly; if (acedEntSel("\nВыберите 3D-полилинию: ", entPoly, p) != RTNORM) return; AcDbObjectId pObjId; if (acdbGetObjectId(pObjId,entPoly) != Acad::eOk) return; AcDbObjectPointer<AcDb3dPolyline> poly3d(pObjId,AcDb::kForRead); if (poly3d.openStatus() != Acad::eOk) return; int nVertex = 0, iVertex = 1; AcDbObjectIterator *pVertIter= poly3d->vertexIterator(); if (!pVertIter) return; AcDbObjectIdArray vts; for (pVertIter->start();!pVertIter->done();pVertIter->step()) { nVertex++; // Подсчитываем количество вершин vts.append(pVertIter->objectId()); // И формируем массив AcDbObjectId для вершин } delete pVertIter; char buf[256]; sprintf(buf,"\nУкажите номер перемещаемой вершины (1-%d) <1>: ",nVertex); if (acedGetInt(buf,&iVertex) == RTCAN) return; if (iVertex < 1 || iVertex > nVertex) return; AcDbObjectPointer<AcDb3dPolylineVertex> pVert3d(vts[iVertex-1],AcDb::kForWrite); if (pVert3d.openStatus() != Acad::eOk) return; AcGePoint3d newPos = pVert3d->position(); acdbWcs2Ucs(asDblArray(newPos),asDblArray(newPos),0); if (acedGetPoint(asDblArray(newPos),"\nУкажите новое положение вершины: ",asDblArray(newPos)) != RTNORM) return; acdbUcs2Wcs(asDblArray(newPos),asDblArray(newPos),0); pVert3d->setPosition(newPos); // Перемещаем вершину }
> Darius
:) С этим сюда: https://www.caduser.ru/forum/topic20709.html
Ia probival zdelat toze samoje dlia 2D no ne kak nepalucaetca mozet mozes pomoc
Sbasibo
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Izmenit koordinati vertexsov v pollilinii
Форум работает на PunBB, при поддержке Informer Technologies, Inc