明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1266|回复: 8

[讨论] 求师傅帮忙错在哪??

[复制链接]
发表于 2013-5-8 17:39:08 | 显示全部楼层 |阅读模式
(defun c:tt()
  (setq gj (getstring "\n请输入文字:"))

  (if(setq ss (ssget '(0."line")))

(progn

  (setq i 0)

  (repeat (sslength ss)

     (setq en (entget (ssname ss i)))

     (setq q1 (cdr (assoc 10 en)))

     (setq q2 (cdr (assoc 11 en)))               ; 获取端点坐标

     (setq a (/ (* 180 (angle q1 q2)) pi))

     (setq x2 (car q2))

     (setq y2 (cadr q2))

     (setq zz (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2))) ; 求中点坐标

     (setq i (+ i 1))

     (command "text" zz "1.5" a gj)  ; 写文字
     
);退出progn

);退出repeat

);退出IF  
     

)
发表于 2013-5-8 20:27:40 | 显示全部楼层
注意半角括号
大致改了下,自己再优化下。
  1. (defun c:tt ()
  2.   (setq gj (getstring "\n请输入文字:"))
  3.   (if (setq ss (ssget '((0 . "line"))) i  0)
  4.     (progn
  5.       (vl-cmdf "_.UNDO" "_BEGIN")
  6.       (repeat (sslength ss)
  7.   (setq en (entget (ssname ss i))
  8.         q1 (cdr (assoc 10 en))
  9.         q2 (cdr (assoc 11 en))
  10.         a (/ (* 180 (angle q1 q2)) pi)
  11.         po (list (/ (+ (car q1)(car q2)) 2)(/ (+ (cadr q1)(cadr q2)) 2))
  12.   )
  13.   (command "_.text" "j" "mc" po 1.5 a gj "")
  14.   (setq i (1+ i))
  15.       )
  16.     (vl-cmdf "_.UNDO" "_END")
  17.     )
  18.   )
  19. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-5-10 18:46:19 | 显示全部楼层
仲文玉 发表于 2013-5-8 20:27
注意半角括号
大致改了下,自己再优化下。

(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢

点评

那是恢复时用的,这样写只要恢复一次就回到程序执行前,否则有多少根线就要恢复多少次,明白了吗  发表于 2013-5-10 19:36
 楼主| 发表于 2013-5-10 19:51:01 | 显示全部楼层
54525596 发表于 2013-5-10 18:46
(vl-cmdf "_.UNDO" "_BEGIN"),,,这个是什么意思呀,哈哈,再次谢谢,,谢谢

哦,我懂了。。就是反回次数,这样就一次可以返回到原来结果。。。谢谢
发表于 2013-5-10 20:03:42 | 显示全部楼层

2楼代码,略作修改。

  1. (defun c:tt ()
  2.   (setq gj (getstring "\n请输入文字:"))
  3.   (if (setq i  0
  4.             ss (ssget '((0 . "line")));_修改第一处,调顺序。
  5.       )
  6.     (progn (vl-cmdf "_.UNDO" "_BEGIN")
  7.            (repeat (sslength ss)
  8.              (setq en (entget (ssname ss i))
  9.                    q1 (cdr (assoc 10 en))
  10.                    q2 (cdr (assoc 11 en))
  11.                    a  (/ (* 180 (angle q1 q2)) pi)
  12.                    po (list (/ (+ (car q1) (car q2)) 2)
  13.                             (/ (+ (cadr q1) (cadr q2)) 2)
  14.                       )
  15.              )
  16.              (if (< 90 a 270) (setq a (- a 180)));_修改第二处,调角度。
  17.              (command "_.text" "j" "mc" po 1.5 a gj "")
  18.              (setq i (1+ i))
  19.            )
  20.            (vl-cmdf "_.UNDO" "_END")
  21.     )
  22.   )
  23. )

点评

第17行多了一对双引号。  发表于 2013-5-10 22:02
发表于 2013-5-10 23:42:30 | 显示全部楼层
各位,插句嘴,不好意思,楼主没说错误提示,各位就判断出错误类型了?
也许各位都看出来了,command一句少了一对双引号。
不过各位试试看,如果在定义文字样式时确定了字高,还是这样么?
发表于 2013-5-11 07:44:02 | 显示全部楼层
确实如上几位所言,
(command "_.text" "j" "mc" po "1.5" a gj)
发表于 2013-5-11 11:31:21 | 显示全部楼层
沒看到X1、X2的定義
 楼主| 发表于 2013-5-11 19:01:28 | 显示全部楼层
lsjj 发表于 2013-5-11 11:31
沒看到X1、X2的定義

哦,是先想试一下。。所以。。不好意思,现在可以了。。谢谢啊,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-30 06:17 , Processed in 0.189725 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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