明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1159|回复: 2

求助高手指点关于标注反向修改LISP程式,有的时候可以用,有的时又不能用的问题

[复制链接]
发表于 2014-11-22 01:43:23 | 显示全部楼层 |阅读模式
;====坐标标注反向====;
(defun c:qr(/ en en_data name assoc10_old assoc11_old assoc13_old assoc14_old assoc42 pt10_old pt11_old pt13_old pt14_old
       dimsize ptx pty pt11_new pt14_new assoc11_new assoc14_new)
  (OSMODE 0)                         ;====捕捉控制0 16383的程式====;
  (setq en(entsel"\n->选取标注对象"));====选取标注对象====;
  (setq en_data(entget(car en)))     ;====取得列表属性====;
  (setq name(cdr(assoc 0 en_data)))  ;====取得图元类型名称====;
  (if(= name "DIMENSION")
     (progn(setq assoc10_old (assoc 10 en_data))
           (setq assoc11_old (assoc 11 en_data));====取得文字位置点属性列表====;
           (setq assoc13_old (assoc 13 en_data));====取得标注点属性列表====;
           (setq assoc14_old (assoc 14 en_data));====取得标注点属性列表====;
           (setq assoc42 (assoc 42 en_data))    ;====取得标注实测属性列表====;
           (setq pt10_old(cdr assoc10_old) pt11_old(cdr assoc11_old)
   pt13_old(cdr assoc13_old) pt14_old(cdr assoc14_old));====取得定义点的坐标值====;
           (setq dimsize(cdr assoc42))
           (setq ptx (-(car pt13_old)(car pt10_old)) pty (-(cadr pt13_old)(cadr pt10_old)))
           (cond((and(= dimsize ptx)(>(cadr pt14_old)(cadr pt13_old)));====条件标注为X坐标且坐标为向上标注====;
   (progn(setq pt11_new (polar pt11_old (* pi 1.5)(*(-(cadr pt11_old)(cadr pt13_old))2))
               pt14_new (polar pt14_old (* pi 1.5)(*(-(cadr pt14_old)(cadr pt13_old))2)))
                       (setq assoc11_new (cons 11 pt11_new)  assoc14_new (cons 14 pt14_new))
                       (setq en_data(subst assoc11_new assoc11_old en_data))
                       (setq en_data(subst assoc14_new assoc14_old en_data))
         (entmod en_data) ) )
         ((and(= dimsize ptx)(<(cadr pt14_old)(cadr pt13_old)));====条件标注为X坐标且坐标为向下标注====;
                 (progn(setq pt11_new (polar pt11_old (* pi 0.5)(*(-(cadr pt13_old)(cadr pt11_old))2))
               pt14_new (polar pt14_old (* pi 0.5)(*(-(cadr pt13_old)(cadr pt14_old))2)))
                       (setq assoc11_new (cons 11 pt11_new)  assoc14_new (cons 14 pt14_new))
                       (setq en_data(subst assoc11_new assoc11_old en_data))
                       (setq en_data(subst assoc14_new assoc14_old en_data))
         (entmod en_data) ) )
  ((and(= dimsize pty)(>(car pt14_old)(car pt13_old)));====条件标注为Y坐标且坐标为向右标注====;
                 (progn(setq pt11_new (polar pt11_old pi(*(-(cadr pt11_old)(cadr pt13_old))2))
               pt14_new (polar pt14_old pi(*(-(cadr pt14_old)(cadr pt13_old))2)))
         (setq assoc11_new (cons 11 pt11_new)  assoc14_new (cons 14 pt14_new))
                       (setq en_data(subst assoc11_new assoc11_old en_data))
                       (setq en_data(subst assoc14_new assoc14_old en_data))
         (entmod en_data) ) )
  ((and(= dimsize pty)(<(car pt14_old)(car pt13_old)));====条件标注为Y坐标且坐标为向左标注====;
                 (progn(setq pt11_new (polar pt11_old 0(*(-(cadr pt13_old)(cadr pt11_old))2))
               pt14_new (polar pt14_old 0(*(-(cadr pt13_old)(cadr pt14_old))2)))
         (setq assoc11_new (cons 11 pt11_new)  assoc14_new (cons 14 pt14_new))
                       (setq en_data(subst assoc11_new assoc11_old en_data))
                       (setq en_data(subst assoc14_new assoc14_old en_data))
         (entmod en_data) ) ) )
           )(alert"选择的不是标注对象"))
  (OSMODE 16383)(princ))
发表于 2017-12-11 16:11:50 | 显示全部楼层
顶一下,遇到同样的问题!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:39 , Processed in 0.154868 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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