Parikon Posted May 8, 2017 Report Share Posted May 8, 2017 (edited) using (zzd.DBText acText = new zzd.DBText()) { if (pełny.IsChecked == false) { acText.TextString = "%%U" + textBox.Text + "-" + textBox.Text; } else { acText.TextString = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; } acText.HorizontalMode = zzd.TextHorizontalMode.TextCenter; acText.VerticalMode = zzd.TextVerticalMode.TextBottom; acText.AlignmentPoint = ptStart; acText.Height = dimscala * 5; btr.AppendEntity(acText); tr.AddNewlyCreatedDBObject(acText, true); } Powyższy kod w AutoCAD 2010 tworzy podkreślony napis "single text". Napis ten jest wstawiany centralnie do punktu który wskazuję. Film ukazujący działanie kodu W ZwCAD 2017 użycie tak spreparowanego stringa string text = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; powoduje to, że metoda nie radzi sobie z wyznaczeniem środka tekstu. Na razie poradziłem sobie w ZwCAD poprzez rezygnację z podkreślenia. Ale wydaje mi się, że trzeba to zakwalifikować jako błąd do poprawy i zgłosić producentowi. Funkcja w ZwCAD pozbawiona podkreślenia ze względu na brak dokładnego ustawienia napisu. Edited May 8, 2017 by Parikon Link to comment Share on other sites More sharing options...
kojacek Posted May 8, 2017 Report Share Posted May 8, 2017 Utwórz tekst bez podkreślenia, tak jak sugerujesz. Potem do istniejącego już dodaj "%%u". Link to comment Share on other sites More sharing options...
kruszynski Posted May 8, 2017 Report Share Posted May 8, 2017 Sprawdziłem to i wstawiło tekst poprawnie: z podkreśleniem i punktem wstawienia na środku tekstu. Ciekawe co robimy inaczej. Czy mógłby Pan przysłać najprostszy projekt zawierający tylko wstawienie tekstu? Link to comment Share on other sites More sharing options...
dmatusz3 Posted May 8, 2017 Report Share Posted May 8, 2017 Myślę, że dobrze byłoby zsynchronizować vernum. Link to comment Share on other sites More sharing options...
Parikon Posted May 8, 2017 Author Report Share Posted May 8, 2017 (edited) // Create a single-line text object using (zzd.DBText acText = new zzd.DBText()) { if (pełny.IsChecked == false) { string text = "%%U" + textBox.Text + "-" + textBox.Text; acText.TextString = text; } else { string text = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; acText.TextString = text; } acText.HorizontalMode = zzd.TextHorizontalMode.TextCenter; acText.VerticalMode = zzd.TextVerticalMode.TextVerticalMid; acText.AlignmentPoint = ptStart; acText.Height = dimscala * 5; acText.Layer = layername; acText.ColorIndex = coloroznaczenia; acText.TransformBy(mat); btr.AppendEntity(acText); tr.AddNewlyCreatedDBObject(acText, true); anonyGroup.Append(acText.ObjectId); } vernum = "2017.04.06(15637)_x64" Tworzymy obiekt o nazwie acText któremu nadajemy właściwość Textstring Ten string zaczynamy %%U aby był podkreślony W AutoCAD tekst jest wyśrodkowany a w powyższym vernum wygląda to tak. Film w ZwCAD z podkreśleniem Edited May 8, 2017 by Parikon Link to comment Share on other sites More sharing options...
Parikon Posted May 8, 2017 Author Report Share Posted May 8, 2017 Z zachowania wynika, że metoda w ZwCAD wylicza centrum dla ciągu gdzie bierze część stringu %%U jako tekst, który powiększa długość tekstu jaki został wyświetlony, a metoda w AutoCAD uwzględnia, że ten tekst w rzeczywistości jest krótszy o te 3 niewyświetlane znaki. Link to comment Share on other sites More sharing options...
kruszynski Posted May 8, 2017 Report Share Posted May 8, 2017 już (dopiero?) rozumiem na czym polega problem. Odpowiednie zgłoszenie przesłałem do ZWSOFT. co Pan na to, żeby skorzystać z MText zamiast Text ? using (MText objText = new MText()) { objText.Contents = "{\\LPrzekrój A-A}"; objText.SetAttachmentMovingLocation( AttachmentPoint.BottomCenter ); objText.Height = 5; zsBlkTblRec.AppendEntity(objText); ZsTrans.AddNewlyCreatedDBObject(objText, true); objText.Location = new ZwSoft.ZwCAD.Geometry.Point3d(100, 100, 0); } Parikon 1 Link to comment Share on other sites More sharing options...
Parikon Posted May 9, 2017 Author Report Share Posted May 9, 2017 Chciałem tylko zgłosić, że można dopracować metodę w .net. Dziękuję za wysłanie. Link to comment Share on other sites More sharing options...
Parikon Posted May 12, 2017 Author Report Share Posted May 12, 2017 (edited) vernum 2017.05.08(17156)_x64" Poniżej próba podkreślenia textu już istniejącego w rysunku. Czyli rozwiązanie problemu jaki proponował powyżej kolega @kojacek. Tekst po podkreśleniu przesuwa się w lewo. Film Edited May 12, 2017 by Parikon Link to comment Share on other sites More sharing options...
Parikon Posted February 14, 2018 Author Report Share Posted February 14, 2018 Problem wydaje się rozwiązany vernum = "2018.02.11(28325)_x64" dmatusz3 1 Link to comment Share on other sites More sharing options...
dmatusz3 Posted February 14, 2018 Report Share Posted February 14, 2018 Dziękuję bardzo za informacje. Zatem zamykam wątek. Link to comment Share on other sites More sharing options...
Recommended Posts