明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3993|回复: 7

动态生成序号球(vla-put-coordinates的用法)

[复制链接]
发表于 2008-2-15 10:14:00 | 显示全部楼层 |阅读模式

;一个动态生成序号球的小程序
;点击零件上的点,序号球(圆,号码)及引线末端随鼠标动态移动。可连续生成,号码自增。本例序号球大小尤其适用于英制机械图纸。

(defun c:test ()
  (
vl-load-com)
  (
setq h (* (getvar "dimscale")(getvar "dimtxt"))
        
r h
       sn 1
)
  (while
sn
    
(setq p0 (getpoint "\nPick Insert Point:"))
    (
setq loop t)
    (
command "circle" p0 r)
    (
setq ceo (vlax-ename->vla-object (entlast)))
    (
vl-cmdf "text" "j" "m" p0 h 0 (itoa sn) "")
    (
setq teo (vlax-ename->vla-object (entlast)))
    (
command "leader" p0 (polar p0 (/ pi 4) 0.1)  "" "" "n")
    (
setq le (entlast))
    (
setq leo (vlax-ename->vla-object le))
    (
setq p1 (vlax-curve-getstartpoint le))
    (while
loop
      
(setq p (grread T))
      (
setq k (car p)
            
p (cadr p))
      (if (=
k 3)(setq loop nil))
      (
vla-put-center ceo (vlax-3d-point p))
      (
vla-put-textalignmentpoint teo (vlax-3d-point p))
      (
vla-update ceo)
    (
setq sl (vlax-make-safearray vlax-vbdouble '(0 . 5)))
       (setq sa (vlax-safearray-fill sl (append p1 (polar p (angle p p1) r))))
       (vla-put-coordinates leo sa)
    )
    (setq sn (1+ sn))
    (setq ct (getstring "\nContinue<N>?"))
    (if (= (strcase ct) "N")(setq sn nil))
  )
)


    一个不错的程序,但有一个BUG,大家讨论一下,就是当半径r等于整数时,如果打开捕捉后移动鼠标,移动r个单位后出错退出,错误:“Automation 错误。 点表无效”。也就是说如果sa中的两顶点坐标成一点时,(vla-put-coordinates leo sa)是通不过的,为什么?

发表于 2008-2-15 13:04:00 | 显示全部楼层
本帖最后由 作者 于 2008-2-15 13:10:57 编辑

  LEADER的起点和终点不能是一点。这样试试
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

点评

非常好!  发表于 2011-10-7 23:54
 楼主| 发表于 2008-2-15 13:38:00 | 显示全部楼层
是的,但我想知道是不是vla-put-coordinates函数不能接受同一点组成的数组结构?
发表于 2008-2-15 16:24:00 | 显示全部楼层

不是vla-put-coordinates函数的问题是LEADER实体生成问题

 楼主| 发表于 2008-2-15 16:31:00 | 显示全部楼层
明白,也就是说在实体生成的过程中出错了,谢谢。
发表于 2017-9-20 21:16:36 | 显示全部楼层
绝世好文,不得不顶
发表于 2023-3-23 21:07:58 来自手机 | 显示全部楼层
grread学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 12:31 , Processed in 0.207673 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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