自动将文本旋转到任何UCS
我们从我们的地理信息系统导入街道地图,包括名称和街道编号。我们经常使用UCS,使街道在图纸上显示为水平,唯一的问题是街道编号仍然处于真实世界坐标的角度。我搜索了一个自动旋转文本查看等,但没有找到任何合适的,找到了一些东西,但它不是百分之百的会议任务。如果有人有什么事,请告诉我。
无论如何,作为一种解决方法,如果你有CIV3D,你可以做得相当简单,将文本导出到csv文件,并将其读回,因为CIV3D点应用了一种标签样式,显示描述(原始文本),设置了“面向视图”,文本将始终水平显示。
; converts text to xyz with text description
;
; by Alan H July 2016
(defun stnumlable ( / ss x y)
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
(alert "Make sure you have only the correct text layer on\n \nPress Esc now if you need to exit")
(setq ss (ssget))
(setq y (sslength ss))
(alert (strcat "You have picked " (rtos y 2 0 ) " St Numbers"))
(setq x (- (getint "Enter start point number") 1)) ;subtract 1 then add on in while
(setq fo (open "c:\\acadtemp\\Stnames.xyz" "W"))
(repeat (sslength ss)
(setq en (entget (ssname ss (setq y (- y 1)))))
; Entity type
(setq entyp (cdr (assoc 0 en)))
(if (= entyp "TEXT")
(progn
(setq xyz (cdr (assoc 10 en)))
(setq txtstr (cdr (assoc 1 en)))
(WRITE-LINE (STRCAT (RTOS (setq X (+ x 1)) 2 0) "," (RTOS (car xyz) 2 2) "," (RTOS (cadr xyz) 2 2) "," "0.0" "," txtstr) fo)
)
)
;end while
)
(close fo)
(alert "All done")
(setvar "osmode" oldsnap)
) ; defun
(princ )
(stnumlable)
比加尔,
我使用alanjt的以下内容:
http://www.cadtutor.net/forum/showthread.php?41290-零旋转。lsp将对象旋转设置为零-(基于当前UCS)
您可以修改它以满足您的特定要求。
干杯 关闭abr CAD abra它将文本设置为当前ucs,但我有两个布局,它们的方向间隔为90度,因此ucs1文本正确,ucs2在90度,这是我的问题。 如果我理解正确,另一种方法是:
使用“将方向与布局匹配”的属性块(注释性):
用命名的属性块替换所有街道名称文字实体。属性值将是每个街道名称的文本字符串。
删除原始文本字符串。
代码如下:
http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-routine-to-substitute-text-to-blocks-at-point-location/td-p/3585322 这听起来像是我想要的“比赛方向”将有一个发挥。添加块没有问题。 对于块,文本需要具有注释性。注释性样式不需要与布局匹配。文字属性应为注释性“是”,并带有“匹配方向是”。
我想这就是你想要的。。。
图纸3.dwg 嗨,比格尔,毫无疑问你已经知道李的http://www.lee-mac.com/2dprojection.html
哪个是肖特的?
我从来没有用过这个,很可能是你想要的。
谢谢李和肖特! Iconeo谢谢,这正是我想要的,与多个ucs一起工作,文本是水平的。我会好好看看它,然后发布我问题的解决方案。
Dadgad也谢谢你。 我的希望破灭了,我仍在继续,我在块中只需要一个属性“st name”,没有线条,没有额外的东西,但属性文本必须显示水平,无论我使用什么UCS。如果我们需要一条线作为参考,那么把它放在defpoints上。 请。发布dwg。在cad中,更容易理解使用块在cad中要做什么。最好将其保存到cad 2010并发布。
页:
[1]
2