明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2161|回复: 13

[讨论] 麻烦师傅们帮看下小弟这个小程序,怎么运行不了

[复制链接]
发表于 2013-5-6 21:12:52 | 显示全部楼层 |阅读模式
(defun c:tt()
(setq gj (getstring "\n请输入文字:"))
(setq zx (car (entsel "\n请选择直线:")))
(setq xx (entget zx))
(setq q1 (cdr (assoc 10 xx)))
(setq q2 (cdr (assoc 11 xx)));获取端点坐标
(setq a (angle q1 q2));获取角度
(setq x1 (car q1))
(setq y1 (cadr q1))
(setq x2 (car q2))
(setq y2 (cadr q2))
(setq zz (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2)));求中点坐标
(command "text" zz "1" a gj);写文字
)
老提示二维,三维,NIL,,我刚学的。谢谢。
发表于 2013-5-6 21:23:39 | 显示全部楼层
(defun c:tt()
(setq gj (getstring "\n请输入文字:"))
(setq zx (car (entsel "\n请选择直线:")))
(setq xx (entget zx))
(setq q1 (cdr (assoc 10 xx)))
(setq q2 (cdr (assoc 11 xx)));获取端点坐标
(setq a (angle q1 q2));获取角度
(setq x1 (car q1))
(setq y1 (cadr q1))
(setq x2 (car q2))
(setq y2 (cadr q2))
(setq zz (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2)));求中点坐标
(command "text" zz "1" a gj);写文字
)
发表于 2013-5-6 21:24:19 | 显示全部楼层
你的括号,用错了。
发表于 2013-5-6 21:30:32 | 显示全部楼层
  1. (defun c:tt (/ a gj q1 q2 sca x1 x2 xx y1 y2 zx zz)
  2.   (setq sca (getvar "DIMSCALE"));取得标注比例
  3.   (setq gj (getstring "\n请输入文字:"))
  4.   (setq zx (car (entsel "\n请选择直线:")))
  5.   (setq xx (entget zx))
  6.   (setq q1 (cdr (assoc 10 xx)))
  7.   (setq q2 (cdr (assoc 11 xx)))               ; 获取端点坐标
  8.   (setq a (/ (* 180 (angle q1 q2)) pi))               ; 获取角度  弧度转为角度
  9.   (setq x1 (car q1))
  10.   (setq y1 (cadr q1))
  11.   (setq x2 (car q2))
  12.   (setq y2 (cadr q2))
  13.   (setq zz (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2))) ; 求中点坐标
  14.   (command "text" zz (* sca 4) a gj)               ; 写文字
  15.   (princ)
  16. )
发表于 2013-5-6 21:32:13 | 显示全部楼层
你想把文字写在哪?直线的中间?我运行出来的要离直线好远
发表于 2013-5-6 21:51:16 | 显示全部楼层
  1. <span style="line-height: 1.5;">(defun c:tt()</span>
  2. (setq gj (getstring "\n请输入文字:"))
  3. (setq zx (car (entsel "\n请选择直线:")))
  4. (setq xx (entget zx))
  5. (setq q1 (cdr (assoc 10 xx)))
  6. (setq q2 (cdr (assoc 11 xx)));获取端点坐标
  7. (setq a (angle q1 q2));获取角度
  8. (setq x1 (car q1))
  9. (setq y1 (cadr q1))
  10. (setq x2 (car q2))
  11. (setq y2 (cadr q2))
  12. (setq zz (list (+ x1 (ABS(/ (- x2 x1) 2))) (+ y1 (ABS(/ (- y2 y1) 2)))));求中点坐标
  13. (command "text" zz "1" a gj);写文字
  14. )
 楼主| 发表于 2013-5-7 20:00:00 | 显示全部楼层
vlisp2012 发表于 2013-5-6 21:23
(defun c:tt()
(setq gj (getstring "\n请输入文字:"))
(setq zx (car (entsel "\n请选择直线:")))

谢谢你。初学者,需要你们这样的教师教一下,但是我把你这份复制到我的文字里面,一个一个对的,我也改了(setq xx (entget zx))这个,,但我的就运行不了,用你的就运行得了,不过还是得谢谢你。呵呵。我是想写文字在直线上,平行直线,但用的(setq a (angle q1 q2))这个算法不行,,呵呵,
 楼主| 发表于 2013-5-7 20:00:32 | 显示全部楼层
alwtyp 发表于 2013-5-6 21:32
你想把文字写在哪?直线的中间?我运行出来的要离直线好远

远倒不远呀,就是文字角度不与直线平行,我想要的是这样的结果
 楼主| 发表于 2013-5-7 20:02:06 | 显示全部楼层
alwtyp 发表于 2013-5-6 21:51

用了你这个,你的才是离得远呀???
 楼主| 发表于 2013-5-7 20:04:55 | 显示全部楼层
alwtyp 发表于 2013-5-6 21:51

哦,我发现了,只要把显示区缩小,就会出现这种情况,为什么????
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 02:50 , Processed in 0.184804 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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