我们从我们的地理信息系统导入街道地图,包括名称和街道编号。我们经常使用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)
|