几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   [求助感谢danxingpen,已完成更改坐标标注程序 (http://www.dimcax.com/hust/showthread.php?t=11369)

yang686526 2009-04-26 03:12 PM

[求助感谢danxingpen,已完成更改坐标标注程序
 
[求助感谢danxingpen,已完成更改坐标标注程序
www.dimcax.com
[求助感谢danxingpen,已完成更改坐标标注程序
朋友,本人电脑崩溃,该坐标标注程序丢失,你那里是否有备份呀
另外哪位朋友下载了,能否提供该坐标标注程序(改写后的)
原本程序在3楼
谢谢
d
请使用winrar软件打开rar压缩文件。
传了一个。
danxingpen朋友的方法思路好像是利用while if判断"osmode"
4271,然后循环执行,
大家能帮我解决这个问题吗
谢谢
d
早上再顶一次
要求输入1次比例,然后即可多点随意标注坐标,直至结束
原程序在3楼
d
我从来不用坐标标注的,以前的那个帖子怎么删除了?我灌水???怀疑中!
改为如下程序即可
(defun zz_err (s)
(if (/= s "function cancelled")
(princ (strcat "\nerror: " s))
)
(setvar "osmode" os)
(if dis (setvar "dimzin" dis))
(setvar "cmdecho" cmd)
(command "_.undo" "_e")
)
;;=============== main program ============
(defun c:zz (/ cmd os pt x y pt1 x1 y1 xx2 pt2 dis)
(setq *error* zz_err)
(setq cmd (getvar "cmdecho") )
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq dis (getvar "dimzin"))
(setvar "osmode" 4271)
;请注以下三行
(command "_.undo" "be")
(setq blx (getreal "\n请输入打印的比例<默认为1>:"))
(if (= blx nil)(setq blx 1.0))
(setvar "dimzin" 1)
(setq blc (/ blx ))
(while (and (setvar "osmode" 4271)
(setq pt (getpoint "\n拾取需要标注的点:"))
(setq pt1(getpoint pt "\n拾取标注线起点:"))
)
(setq y (strcat "y=" (rtos (car pt) 2 3))
x (strcat "x=" (rtos (cadr pt) 2 3))
x1 (car pt1) y1 (cadr pt1)
y2 y1
dxy (textbox (list (cons 1 x) (cons 40 (* 3.5 blc))))
dl1 (car (mapcar '- (cadr dxy) (car dxy)))
dxy (textbox (list (cons 1 y) (cons 40 (* 3.5 blc))))
dl2 (car (mapcar '- (cadr dxy) (car dxy)))
ddd dl1
)
(if (> dl2 dl1) (setq ddd dl2))
(if (> x1 (car pt))
(setq x2 (+ x1 ddd 0.5) xx2 (+ x1 0.5))
(setq x2 (- x1 ddd 0.5) xx2 (+ x2 0.5))
)
(setvar "osmode" 0)
(setq pt2 (list x2 y2))
(command "line" pt pt1 pt2 "")
(command "_style" "standard" "txt" "0" "1" "0" "n" "n" "")
(setvar "textstyle" "standard")
;请注意以下两行
(command "text" "ml" (list xx2 (+ y1 (* 2.625 blc))) (* 3.5 blc) 0 x)
(command "text" "ml" (list xx2 (- y1 (* 2.625 blc))) (* 3.5 blc) 0 y)
)
(command "_.undo" "_e")
(setvar "osmode" os)
(setvar "dimzin" dis)
(setvar "cmdecho" cmd)
(princ)
)


所有的时间均为北京时间。 现在的时间是 10:35 PM.