Parikon Posted May 8, 2017 Report 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
kojacek Posted May 8, 2017 Report Posted May 8, 2017 Utwórz tekst bez podkreślenia, tak jak sugerujesz. Potem do istniejącego już dodaj "%%u".
kruszynski Posted May 8, 2017 Report 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?
dmatusz3 Posted May 8, 2017 Report Posted May 8, 2017 Myślę, że dobrze byłoby zsynchronizować vernum.
Parikon Posted May 8, 2017 Author Report 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
Parikon Posted May 8, 2017 Author Report 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.
kruszynski Posted May 8, 2017 Report 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
Parikon Posted May 9, 2017 Author Report Posted May 9, 2017 Chciałem tylko zgłosić, że można dopracować metodę w .net. Dziękuję za wysłanie.
Parikon Posted May 12, 2017 Author Report 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
Parikon Posted February 14, 2018 Author Report Posted February 14, 2018 Problem wydaje się rozwiązany vernum = "2018.02.11(28325)_x64" dmatusz3 1
dmatusz3 Posted February 14, 2018 Report Posted February 14, 2018 Dziękuję bardzo za informacje. Zatem zamykam wątek.
Recommended Posts