明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1225|回复: 0

曲线上图块距离的标注,有瑕疵,请帮忙

[复制链接]
发表于 2011-1-10 09:28:52 | 显示全部楼层 |阅读模式
有的想法是:标注能沿曲线偏离一定的数值且对齐,可是我这个不能实现对齐,请高手帮忙解决哦,谢谢!
如果再能实现图块编号就更好了?顺便帮个忙吧。
(Defun c:qxbz(/ en enobj ss add_h i  aaa  paaa ptaaa dist1 list1 list1_indx j k ccc pt_ccc ddd pt_ddd dist_span span_label_middle span_label )
   (SETVAR "DIMZIN" 8)  
   (setq en (car (entsel "\n选择基线:")))
  (setq enobj (vlax-ename->vla-object en))
  (setq ss (ssget));;;
  ;;;(setq label_point  (getpoint "选择标注方向"))
  (setq add_h  (getreal "标注偏移量<15>"))
  ;;;(if (= add_h "")
   ;;;   (setq add_h 15)
  ;;;);;;if
  (setq i 0)

(while (< i (sslength ss))
  (progn
  (setq aaa (ssname ss i))
  (setq paaa (cdr (assoc 10 (entget aaa))))
  (setq ptaaa (vlax-curve-getClosestPointTo enobj paaa))
  (setq dist1 (vlax-curve-getDistAtPoint enobj ptaaa))
  (setq list1 (cons dist1 list1))
  (setq i (+ i 1))
  )
);;;while
(setq list1_indx (vl-sort-i list1 '<))

(setq j 0)
(while (< j (length list1_indx))
  (progn
  (setq k (+ j 1))
  
  (setq ccc (nth (nth j list1_indx ) list1 )
        pt_ccc (vlax-curve-getPointAtDist enobj ccc)
        ddd (nth (nth k list1_indx ) list1 )
        pt_ddd (vlax-curve-getPointAtDist enobj ddd)
        dist_span  (rtos (- ddd ccc) 2 2)
        ;;;span_label_middle  (vlax-curve-getPointAtDist enobj (+ ccc (/ (atof dist_span) 2)))
        ;;;span_label (list (- (car span_label_middle) (* add_h (cos (angle pt_ccc pt_ddd))))  (+ (cadr span_label_middle) (* add_h (sin (angle pt_ccc pt_ddd)))) )
        span_label (list (car pt_ccc) (+ (cadr pt_ddd) add_h))  
  )
  (command "_dimaligned" pt_ccc pt_ddd "T" dist_span  span_label  )      
  
  (setq j (+ j 1))
  )
);;;while

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 14:55 , Processed in 0.178084 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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