2D Ele的文字高度标记
大家好,我使用搜索功能试图回答我的问题,但没有用。
我在一个lisp例程后,将放置一段文字的Y值(小数点后2位)和一个向下指向的三角形在一个图形中的选定点。
我将假设需要通过在图形中拾取一条水平基准线并键入该线的Y值来提供高度信息?
我对创建lisps完全是新手,所以我想我应该试试看是否有人已经做过一个,正在做一个,或者在某处发现了一个???
谢谢大家
布雷特 我不久前写的,它应该在这里的某个地方。。。
(defun c:ellev (/ *error* Line Text OLDDIM P1 P2 PT TSZE X Y)
;; Lee Mac~01.03.10
(defun *error* (msg)
(and oldDim (setvar 'DIMZIN oldDim))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(defun Line (p1 p2)
(entmakex (list (cons 0 "LINE")
(cons 10 p1) (cons 11 p2))))
(defun Text (pt hgt str)
(entmakex (list (cons 0 "TEXT") (cons 10pt)
(cons 40 hgt) (cons 1str)
(cons 50 (angle '(0 0 0) (getvar 'UCSXDIR)))
(cons 7(getvar 'TEXTSTYLE)))))
(setq oldDim (getvar 'DIMZIN))
(setvar 'DIMZIN 0)
(or *scl (setq *scl 100)) (initget 6)
(setq *scl (cond ((getint (strcat "\nEnter Drawing Scale <" (itoa *scl) "> : "))) (*scl)))
(setq tsze (* 0.002 *scl))
(while (setq pt (getpoint "\nPick Elevation Line Point: "))
(setq x (car pt) y (cadr pt))
(setq p1 (trans (list (- x (/ tsze 2)) (+ y tsze) 0.) 1 0)
p2 (trans (list (+ x (/ tsze 2)) (+ y tsze) 0.) 1 0))
(mapcar (function (lambda (x) (line (trans pt 1 0) x))) (list p1 p2))
(line p1 p2)
(Text (trans (list x (+ y tsze) 0.) 1 0) tsze (strcat (if (<= 0 y) "+" "") (rtos y 2 2))))
(setvar 'DIMZIN oldDim)
(princ))
是否有可能使其以从箭头底部到测量点的一条线出现在左侧。单位:mm,不带单位,前面加上此加号??
非常感谢!!! 你能提供你想要的结果的图片吗? 您好,谢谢您对我的帖子做出快速反应。
下面是一个PDF示例。
样本。pdf 很抱歉我的英语不好,这是我写的Lisp程序
我希望它会有用。
SimbQuota9 EN。lsp 谢谢你的帮助。不幸的是,它只进行了一次测量,然后您需要重播命令(否则我做错了什么)。我需要在一张图上做一些测量,就像李·麦克的LSP一样。
但是再一次谢谢!!! 你好,巴尔泰克,
尝试以下方法:
(defun c:ellev (/ *error* Line Text OLDDIM P1 P2 PT TSZE X Y)
;; Lee Mac~01.03.10
(defun *error* (msg)
(and oldDim (setvar 'DIMZIN oldDim))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(defun Line (p1 p2)
(entmakex (list (cons 0 "LINE")
(cons 10 p1) (cons 11 p2))))
(defun Text (pt hgt str)
(entmakex (list (cons 0 "TEXT") (cons 10pt)
(cons 40 hgt) (cons 1str)
(cons 50 (angle '(0 0 0) (getvar 'UCSXDIR)))
(cons 7(getvar 'TEXTSTYLE)))))
(setq oldDim (getvar 'DIMZIN))
(setvar 'DIMZIN 0)
(or *scl (setq *scl 100)) (initget 6)
(setq *scl (cond ((getint (strcat "\nEnter Drawing Scale <" (itoa *scl) "> : "))) (*scl)))
(setq tsze (* 0.002 *scl))
(while (setq pt (getpoint "\nPick Elevation Line Point: "))
(setq x (car pt) y (cadr pt))
(setq p1 (trans (list (- x (/ tsze 2)) (+ y tsze) 0.) 1 0)
p2 (trans (list (+ x (/ tsze 2)) (+ y tsze) 0.) 1 0))
(mapcar (function (lambda (x) (line (trans pt 1 0) x))) (list p1 p2))
(line p1 p2)
(Text (trans (list x (+ y tsze) 0.) 1 0) tsze (strcat (if (<= 0 y) "+" "") (rtos y 2 2) "m")))
(setvar 'DIMZIN oldDim)
(princ))
尊敬的先生:,
李先生的节目
它的用途非常充分
http://www.cadtutor.net/forum/showthread.php?31363-地板放大器高度lsp
(defun c:ellev (/ *error* Line Text OFFSET OLDDIM P1 P2 PT TSZE X Y)
;; Lee Mac~01.03.10
(setq offset 1.5) ;; Text Offset
(defun *error* (msg)
(and oldDim (setvar 'DIMZIN oldDim))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(defun Line (p1 p2)
(entmakex (list (cons 0 "LINE")
(cons 10 p1) (cons 11 p2))))
(defun Text (pt hgt str)
(entmakex (list (cons 0 "TEXT") (cons 10pt)
(cons 40 hgt) (cons 1str)
(cons 50 (angle '(0 0 0) (getvar 'UCSXDIR)))
(cons 7(getvar 'TEXTSTYLE))
(cons 72 1) ; Center
(cons 73 2) ; Middle
(cons 11 pt))))
(setq oldDim (getvar 'DIMZIN))
(setvar 'DIMZIN 0)
(or *scl (setq *scl 100)) (initget 6)
(setq *scl (cond ((getint (strcat "\nEnter Drawing Scale <" (itoa *scl) "> : "))) (*scl)))
(setq tsze (* 0.002 *scl))
(while (setq pt (getpoint "\nPick Elevation Line Point: "))
(setq x (car pt) y (cadr pt))
(setq p1 (trans (list (- x (/ tsze 2)) (+ y tsze) 0.) 1 0)
p2 (trans (list (+ x (/ tsze 2)) (+ y tsze) 0.) 1 0))
(mapcar (function (lambda ( x ) (line (trans pt 1 0) x))) (list p1 p2))
(line p1 p2)
(Text (trans (list x (+ y (* offset tsze)) 0.) 1 0) tsze
(strcat (if (<= 0 y) "+" "") (rtos y 2 2) "m")))
(setvar 'DIMZIN oldDim)
(princ))
这个看起来棒极了,唯一的问题是你可以像以前一样放入一个比例选项,因为它们非常小。让我知道我该如何报答你做得很好。
页:
[1]
2