yucad3d

Park data round-trip

Attach application strings to an entity and read them back (CadEntityPutParkData / CadEntityGetParkData).

// Application data attached to an entity (park/way strings).
static void feat_parkdata() {
    samp_clear();
    int e = CadAddCircle(g_hDwg, 0, 0, 0, 20);
    CadEntityPutParkData(e, "PARK:A-17", "WAY:ROUTE-3");
    char park[256] = {0}, way[256] = {0};
    CadEntityGetParkData(e, park, way);
    CadUpdate(g_hDwg); samp_zoom_ext();
    wchar_t s[200]; swprintf(s, 200,
        L"CadEntityPut/GetParkData round-trip: park=\"%hs\" way=\"%hs\"", park, way);
    set_status(s);
}
    9:                                            // Park data round-trip
      begin
        CadPurge(FhDwg, CAD_CLEAR_ENTITIES);
        e := CadAddCircle(FhDwg, 0, 0, 0, 20);
        CadEntityPutParkData(e, 'PARK:A-17', 'WAY:ROUTE-3');
        FillChar(park, SizeOf(park), 0); FillChar(way, SizeOf(way), 0);
        CadEntityGetParkData(e, park, way);
        CadUpdate(FhDwg); CadExecute(FhDwg, FCadHwnd, CAD_CMD_ZOOM_EXT);
        StatusBar.SimpleText := Format('CadEntityPut/GetParkData round-trip: park="%s" way="%s"',
                                       [string(AnsiString(park)), string(AnsiString(way))]);
      end;
    private void FeatParkData()
    {
        SampleClear();
        var e = YuCadApi.CadAddCircle(_hDwg, 0, 0, 0, 20);
        YuCadApi.CadEntityPutParkData(e, "PARK:A-17", "WAY:ROUTE-3");
        var park = new StringBuilder(256); var way = new StringBuilder(256);
        YuCadApi.CadEntityGetParkData(e, park, way);
        YuCadApi.CadUpdate(_hDwg); SampleZoomExt();
        SetStatus($"CadEntityPut/GetParkData round-trip: park=\"{park}\" way=\"{way}\"");
    }
This code is extracted verbatim from the shipped demo hosts (examples/cpp, examples/delphi, examples/csharp) — run the matching menu item there to see it live.