明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: sls60217

要同时标明 X , y 坐标,可有大虾指点

  [复制链接]
发表于 2004-12-14 10:16 | 显示全部楼层
谢谢楼上的,还有点不完整,呵呵,我再去研究一下你的程序。呵呵,到时不懂再请教你。先谢谢。
发表于 2004-12-14 10:49 | 显示全部楼层
哪儿不完整?您运行了吗?
发表于 2004-12-14 13:45 | 显示全部楼层
我运行过了,这是你的程序产生的,我发上来。字体还是在老地方,命令后,还多了个“再输入第一点:”的命令提示。还有,大地坐标和CAD坐标应该刚好相反的,所以求出来的X为12.1111的话,应该在图上标Y=12.1111。呵呵。 你的那个字体或标注线位移的值求出来了,呵呵。让我学了一招。但你的程序,那个把尺寸线拉伸的函数可能有点错。 (defun c:dbz ()
(setvar "cmdecho" 0)
(command "osnap" "end")
(setq p1 (getpoint "输入坐标点:"))
(setq p2 (getpoint p1 "输入标注点:"))
(setq px (rtos (nth 0 p1 ) 2 4))
(setq py (rtos (nth 1 p1 ) 2 4))
(setq txt (strcat "X=" py "" "\nY=" px))
(command "leader" p1 p2 "" txt "")
(setvar "cmdecho" 1)
)
(princ) 这个是我在五楼的基础上改良的。就是字体还没有被移到中间。产生出来的下图和上图一样,就是X和Y的值换了一下。不知能不能用你的方法把值求出来后,直接用COMMAND函数中的,“MOVE”。把字体下向移。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-12-14 15:04 | 显示全部楼层
试一下更改后的。
  1. (DEFUN C:DS (/ OLDZIN P1 P2 PX PY H P3)
  2.   (SETVAR "CMDECHO" 0)
  3.   (SETQ OLDZIN (GETVAR "DIMZIN"))
  4.   (SETVAR "DIMZIN" 0)
  5.   (WHILE (SETQ P1 (GETPOINT "\nFirst Point 第一点 :"))
  6.    (IF (SETQ P2 (GETPOINT P1 "\nSecond Point 第二点 :")) (PROGN
  7.      (SETQ PX (STRCAT "X=" (RTOS (CADR P1) 2 4)))
  8.      (SETQ PY (STRCAT "Y=" (RTOS (CAR P1) 2 4)))
  9.      (SETQ H (* (GETVAR "DIMSCALE") (GETVAR "DIMTXT")))
  10.      (SETQ P3 (POLAR P2 (/ PI -2) (* H 1.6)))
  11.      (COMMAND "LEADER" P1 P2 "" PX PY "")
  12.      (COMMAND "STRETCH" "C" "END" P3 P2 "" "END" P3 "INS" (POLAR P2 (/ PI 2) (* 0.25 H)))
  13.    ))
  14.   )
  15.   (SETVAR "DIMZIN" OLDZIN)
  16.   (SETVAR "CMDECHO" 1)
  17.   (PRINC)
  18. )
复制代码
发表于 2004-12-14 15:23 | 显示全部楼层
只是坐标改过来了,字体的位置还是在老地方,呵呵,正确的字体位置应如三楼所示的。这是对于搞规划设计的人常用的命令。呵呵。我搞建筑的很少用到。但知道制图标准是三图所示的。
发表于 2004-12-14 16:59 | 显示全部楼层
您把OSNAP关闭试一下。我怎么试都行呀。或者将您不成功的图传上来让我看一看。
发表于 2004-12-14 17:15 | 显示全部楼层
还是老样子,呵呵。


应该下图这样才正确呀。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-12-14 17:22 | 显示全部楼层
本帖最后由 作者 于 2004-12-15 8:33:12 编辑

ZZXXQQ。我在R14里,可用,在,ACAD2004就不行了,是不是你也是R14的。呵呵,走了这么多弯路,原来是版本的问题。现在又多了个新问题了。为什么2004不能用,R14能用呢?哈哈哈。不会是系统变量的原因吧。我找了好多,改了好多还是老样子。害得我现在钻进牛角尖了,这问题没搞清,睡不着觉了。 在,2004中是这样提示的:



第二点:


在指定点未找到端点


窗中说明无效


;错误:函数被取消


指定第一角点:


查了一晚,找到了答案了,当允许各尺寸有独立的标注变量里,对尺寸进行修改就要出错,除非把块打散。所以我们不用再在这问题上讨论下去了,再次谢谢ZZXXQQ,万分感谢。你是我学LISP中最好的老师。
发表于 2004-12-15 09:11 | 显示全部楼层
不要说的那么恢心,您要是早说是ACAD2004版就好了。下面的程序在2004版中和R14版中均可运行。
  1. (DEFUN C:DS ()
  2.   (SETVAR "CMDECHO" 0)
  3.   (SETQ OLDOS (GETVAR "OSMODE") OLDZIN (GETVAR "DIMZIN"))
  4.   (SETVAR "DIMZIN" 0) (SETVAR "OSMODE" 0)
  5.   (WHILE (SETQ P1 (GETPOINT "\nFirst Point 第一点 :"))
  6.    (IF (SETQ P2 (GETPOINT P1 "\nSecond Point 第二点 :")) (PROGN
  7.      (SETQ PX (STRCAT "X=" (RTOS (CADR P1) 2 4)))
  8.      (SETQ PY (STRCAT "Y=" (RTOS (CAR P1) 2 4)))
  9.      (SETQ H (GETVAR "DIMSCALE"))
  10.      (SETQ H (* (IF (> H 0) H 1) (+ (GETVAR "DIMTXT") (* (GETVAR "DIMGAP") 2))))
  11.      (SETQ V (ATOI (GETVAR "ACADVER")))
  12.      (SETQ P3 (POLAR P2 (/ PI (IF (> V 14) 2 -2)) H))
  13.      (COMMAND "LEADER" P1 P2 "" PX PY "")
  14.      (IF (> V 14)
  15.        (COMMAND "STRETCH" "C" P2 P2 "" P2 P3)
  16.        (COMMAND "STRETCH" "C" P3 P2 "" P3 P2)
  17.      )
  18.    ))
  19.   )
  20.   (SETVAR "OSMODE" OLDOS)
  21.   (SETVAR "DIMZIN" OLDZIN)
  22.   (SETVAR "CMDECHO" 1)
  23.   (PRINC)
  24. )
复制代码
发表于 2004-12-15 10:12 | 显示全部楼层
真的都可以了,呵呵,一下子看不懂,我复制回去好好研究。不再说谢二字了,以后也不再说了,因为谢二字份量太轻了。二楼的,能冒昧地问一下,你是什么地方人吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 05:36 , Processed in 0.190101 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表