明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 443971181

小弟写了个程序,不能运行,请前辈指教,谢谢!

  [复制链接]
发表于 2011-12-31 12:08:48 | 显示全部楼层
本帖最后由 cabinsummer 于 2011-12-31 12:17 编辑

  1. (setvar "osmode" 15359);无捕捉

实际上是全捕捉
无捕捉应该是0
楼主应该单步测试,每一句是否是你需要的功能,不要写长长的代码找别人帮你调试。
另外,楼主的程序漏洞太多,那么多选择的对象,如果选择的不是文字,程序将直接出错退出,而且楼主带着全捕捉,选不到文字的概率大大提高了。楼主应该在选择文字后对选择的对象进行判断,如果选择的不是文字,就提示并退出。如果是文字,则执行替换函数。

本质上不是程序问题,而是思路问题

楼主求角度为何不用(angle pt1 pt2)的两个角度相减,反去用那么复杂的余弦公式?
可以用(angtos angle 0 4)转换弧度为角度字符串
最后在entmod后用entupd更新图元
 楼主| 发表于 2011-12-31 12:56:03 | 显示全部楼层
好的,谢谢您这么热情详细的讲解,谢谢,我按您的方法再试下!
 楼主| 发表于 2011-12-31 14:13:26 | 显示全部楼层
谢谢,诸位前辈,程序已好,非常感谢你们的指教,谢谢!现将程序写如下:

(defun c:jd (/ pta ax ay pto ox oy ptb bx by aox boy bo2 abx aby ab2 coso hudua jiaodu wenzizuma yuandd xindd th)
  (setq ss (getvar "osmode"));备份捕捉
  (setvar "osmode" 15359);无捕捉
  (setq pta (getpoint "请点击第一点:"));得到A点坐标
  (setq ax (car pta));得到A点的X坐标
  (setq ay (cadr pta));得到A点的y坐标
  (setq pto (getpoint "请点击角顶点:"));得到O点坐标
  (setq ox (car pto));得到O点的X坐标
  (setq oy (cadr pto));得到O点的y坐标
  (setq ptb (getpoint "请点击第三点:"));得到B点坐标
  (setq bx (car ptb));得到B点的X坐标
  (setq by (cadr ptb));得到B点的y坐标
  (setq aox (* (- ax ox) (- ax ox)));得到(Ax-Ox)^2
  (setq aoy (* (- ay oy) (- ay oy)));得到(Ay-Oy)^2
  (setq ao2 (+ aox aoy));得到AO的长度的平方
  (setq box (* (- bx ox) (- bx ox)));得到(Bx-Ox)^2
  (setq boy (* (- by oy) (- by oy)));得到(By-Oy)^2
  (setq bo2 (+ box boy));得到BO的长度的平方
  (setq abx (* (- ax bx) (- ax bx)));得到(Ax-Bx)^2
  (setq aby (* (- ay by) (- ay by)));得到(Ay-By)^2
  (setq ab2 (+ abx aby));得到AB的长度
  (setq coso (/(- (+ ao2 bo2) ab2) (* 2 (sqrt(* ao2 bo2)))));余弦公式
  (setq hudua (atan (sqrt (/ (- 1.0 (* coso coso)) (* coso coso)))));得到弧度
  (setq jiaodu (* hudua (/ 180 pi)));得到角度
  (setq wenzizuma (entget (car (entsel "请选标的文字:"))));得到所选文字组码
  (setq yuandd (assoc 1 wenzizuma));原点对
  (setq xindd (cons 1 (rtos jiaodu 2 0)));生成关键字为1的点对,即生成新点对:(1 . "角度")
  (setq th (subst xindd yuandd wenzizuma));完成新旧交替
  (entmod th);用替换后的组码重生成图元
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-9 06:58 , Processed in 0.118729 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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