我自己编了个坐标标注的小程序比常见的好用。
zrw_hunter
zrw_hunter Lv.12
2005年01月12日 16:04:29
只看楼主

点的坐标标注

点的坐标标注
054a2dfa234353e6ca74.rar
0 B
立即下载
0451zhao
2005年01月18日 22:41:35
2楼
你是哪个省的规划院的,这东西你自己用还行,给别人怎么用呀,图的比例都不知道,单位是什么呀!
回复
vectra
2005年01月20日 15:27:28
3楼
[原创]全功能总图坐标标注源代码

(defun c:POS (/ pt pt1 cSave eSave ret ret1
ang text_a text_b e1 e2 tb textlen
textlen2 dimzinSave
)

(posinit)
(setq cSave (getvar "cmdecho")
eSave *error*
*error* OnError
dimzinSave (getvar "dimzin")
)
(setvar "cmdecho" 0)
(setvar "dimzin" 0)

(setq ret t)
(while ret
(initget "S H P B O")
(setq pt
(getpoint
"\n指定标注点或 [比例(S)/字高(H)/精度(P)/基点(B)/偏移(O)]: "
)
)
(cond
((= pt "S")
(initget 6)
(setq ret1
(getreal (strcat "\n输入制图比例 <" (rtos *POSSCALE) ">: ")
)
)
(if (/= nil ret1)
(setq *POSSCALE ret1)
)
)
((= pt "H")
(initget 6)
(setq ret1
(getreal
(strcat "\n输入文字高度 <" (rtos *POSTEXTHEIGHT) ">: ")
)
)
(if (/= nil ret1)
(setq *POSTEXTHEIGHT ret1)
)
)
((= pt "P")
(initget 4)
(setq ret1
(getint
(strcat "\n输入标注精度 <" (itoa *POSPRECISION) ">: ")
)
)
(if (/= nil ret1)
(setq *POSPRECISION ret1)
)
)
((= pt "O")
(initget 6)
(setq ret1
(getreal
(strcat "\n输入文字偏移 <" (rtos *POSTEXTOFFSET) ">: ")
)
)
(if (/= nil ret1)
(setq *POSTEXTOFFSET ret1)
)
)
((= pt "B")
(setq ret1
(getpoint
(strcat "\n指定基点 <"
(rtos (car *POSBASEPOINT) 2 *POSPRECISION)
" "
(rtos (cadr *POSBASEPOINT) 2 *POSPRECISION)
">: "
)
)
)
(if (/= nil ret1)
(setq *POSBASEPOINT ret1)
)
)
(pt (setq ret nil))
)
)


(setq pt1 (getpoint pt "\n指定下一点: "))
(if (> (car pt1) (car pt))
(setq ang 0)
(setq ang pi)
)

(setq text_a
(rtos (* 0.001 *POSSCALE (- (cadr pt) (cadr *POSBASEPOINT)))
2
*POSPRECISION
)
)
(setq text_b
(rtos (* 0.001 *POSSCALE (- (car pt) (car *POSBASEPOINT)))
2
*POSPRECISION
)
)

(if (and pt pt1)
(progn
(command ".undo" "BE")
(disableos)

(command ".text"
(polar pt1 (/ pi 2) *POSTEXTOFFSET)
*POSTEXTHEIGHT
0
(strcat "A" text_a)
)
(setq e1 (entlast))
(setq tb (textbox (entget e1)))
(setq textlen (abs (- (car (cadr tb)) (car (car tb)))))
(command ".text"
(polar pt1 (/ pi -2) (+ *POSTEXTOFFSET *POSTEXTHEIGHT))
*POSTEXTHEIGHT
0
(strcat "B" text_b)
)
(setq e2 (entlast))
(setq tb (textbox (entget e2)))
(setq textlen2 (abs (- (car (cadr tb)) (car (car tb)))))

(if (> textlen2 textlen)
(setq
textlen textlen2
)
)
(command ".line" pt pt1 (polar pt1 ang textlen) "")
(if (/= ang 0)
(command ".move" e1 e2 "" pt (polar pt ang textlen))
)
)
)
(RestoreOS)
(command ".undo" "E")
(setvar "cmdecho" cSave)
(setvar "dimzin" dimzinSave)
(setq
回复
mwaterfall
2005年01月21日 10:56:19
4楼
还可以。就是没有全自动。我一直也想 搞一个。老是没耐心,当然水平也不行。支持。
回复
0571hhs
2005年01月21日 11:07:52
5楼
学习中……
回复
0571hhs
2005年01月21日 11:10:05
6楼
学习中……
回复
yongshitiantang
2005年01月21日 17:43:11
7楼
谢谢了
回复
xll20040516
2005年01月28日 11:36:06
8楼
厉害!佩服!谢谢!
回复
ygyang12
2005年02月02日 15:32:38
9楼
好用
回复
zrw_hunter
2006年04月15日 22:33:02
10楼
第二楼说的,我没有考虑,不过也犯不着这么牛,如果你有本事,不用来这里逛了.
我这里没有考虑比例,因为我一直是以满足工作需要为目的,不是专业搞程序开发的. 我毕竟不是靠这个吃饭的.不能舍本逐末,是吧?
再说,配合点简单的CAD知识,用来不是太坏就行.我这里指的是1:1的图纸上标的,如果不是,可以适当先变比例成为1:1. 现在没有时间改了. 以后吧.

不过,那里有几个小问题(不是错误),已经更改了. 再上传一下.
回复
zrw_hunter
2006年04月15日 22:38:53
11楼
另外说明
1.这个程序最大的特点是第二根引线不一定是水平的.任意斜线均可以.
2.因为是改改用用,所以程序中有些代码不是精简的,还有注释,所以不是专供学习用的,是供实用的.
3.运行时要检查(检二三个就行,用ID,结果对比)对不对,如不对,是图实在太另类,请另找或与我联系. zrw_hunter@hotmail.com
4.内附说明.
5.我身边的人在用,基本没有发现问题.
6.水平是有限,请说话客气点.觉得不好不用就是了.
回复

相关推荐

APP内打开