明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

ZZXXQQ大哥,你帮我写的程序怎么有时可以,有时又不行呀?

  [复制链接]
发表于 2008-7-16 02:07:00 | 显示全部楼层
  1. (defun modifyangle (ang isratate / ENT INDEX LPT MPT NMPT OBJ SLTSET UPT)
  2.   ;调用需提供两个参数
  3.   ;ang为角度,以度为单位;
  4.   ;isratate为修改模式,T为旋转ang度,nil为将角度设置为ang
  5.   ;加载vlisp函数
  6.   (vl-load-com)
  7.   (if
  8.     ;选择操作对象
  9.     (setq sltset (ssget '((0 . "TEXT"))))
  10.     (progn
  11.       ;将角度转化成弧度
  12.       (setq ang (* ang (/ pi 180))
  13.      ;定义索引号
  14.      index 0
  15.      )
  16.       ;遍历选集
  17.       (repeat (sslength sltset)
  18. ;图元名
  19. (setq ent (ssname sltset index)
  20.        ;转化成VLA对象
  21.        obj (vlax-ename->vla-object ent)
  22.        )
  23. ;文字对象外框
  24. (vla-getboundingbox obj 'lpt 'upt)
  25. ;转化为坐标
  26. (setq lpt (vlax-safearray->list lpt)
  27.        upt (vlax-safearray->list upt)
  28.        ;取中点
  29.        mpt (mapcar '(lambda(x1 x2) (/ (+ x1 x2) 2)) lpt upt)
  30.        )
  31. ;判断是旋转还是设置角度
  32. (if isratate
  33.    ;旋转
  34.    (vla-rotate obj (vlax-3d-point mpt) ang)
  35.    ;设置角度
  36.    (progn
  37.      ;修改角度
  38.      (vla-put-rotation obj ang)
  39.      ;新文字外框
  40.      (vla-getboundingbox obj 'lpt 'upt)
  41.      ;转化为坐标
  42.      (setq lpt (vlax-safearray->list lpt)
  43.     upt (vlax-safearray->list upt)
  44.     ;新中点
  45.     nmpt (mapcar '(lambda(x1 x2) (/ (+ x1 x2) 2)) lpt upt)
  46.     )
  47.      ;文字归位
  48.      (vla-move obj (vlax-3d-point nmpt) (vlax-3d-point mpt))
  49.      )
  50.    )
  51. ;next one
  52. (setq index (1+ index))
  53. )
  54.       )
  55.     )
  56.   ;静默退出
  57.   (princ)
  58.   )
  59. ;函数引用
  60. ;旋转30度
  61. (defun c:test1 ()
  62.   (modifyangle 30 T)
  63.   )
  64. ;旋转-30度
  65. (defun c:test2 ()
  66.   (modifyangle -30 T)
  67.   )
  68. ;将角度设为30度
  69. (defun c:test3 ()
  70.   (modifyangle 30 nil)
  71.   )
  72. ;将角度设为-30度
  73. (defun c:test4 ()
  74.   (modifyangle -30 nil)
  75.   )
 楼主| 发表于 2008-7-16 12:43:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-19 02:33 , Processed in 0.141399 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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