高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】hatch- solid predefined
hatch- solid predefined
hatch- solid predefined
trying touse solid as predefined pattern name.
angle works ok, but when i replace angle with solid it fails with message "invalid input".
i have
phatch->setpattern(oddbhatch::kpredefined, "solid" );
why does this not work please ?.
thx
cp
strange... does this happens inside setpattern() or later?
setpattern() may throw einvalidinput if pattern name is "solid" and type is other than oddbhatch::kpredefined.
odwriteex sample creates a solid hatch.
if exception is thrown later probably hatch boundary is not closed and triangulation fails. solid hatch must have all loops closed and this is not the case for other pattern types (not solid).
sergey slezkin
i have this problem at the moment, too.
edit:
this works:
m_ptr->setpattern (oddbhatch::kpredefined, "solid");
m_ptr->appendloop (...);
this not:
m_ptr->appendloop (...);
m_ptr->setpattern (oddbhatch::kpredefined, "solid");
last edited by math; 10th may 2006 at 02:36 amfff">.
dear gentlemen, please note the following lines in dd documentation:
loops must be closed, simple, and continuous.
they must be self-intersecting itself only at their endpoints.
their start points and end points must coincide.
the outer loops must be appended before all of their inner loops.
dwgdirect provides limited validation of the hatch boundary in order to maintain api efficiency and performance.
oddbhatch doesn't perform any loop checks for non-solid hatch (since it doesn't lead to writing files, which can cause autocad problems).
but for solid hatch checks are performed (when adding the loop or when changing the hatch pattern type). since checks are limited (in order to maintain api efficiency and performance), it is possible to get such results.
the general rule here is - don't pass invalid input, and you won't get exception.
sincerely yours,
george udov
|