明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1171|回复: 2

[基础] [求助]请帮看看错在哪?

[复制链接]
发表于 2010-7-13 14:35 | 显示全部楼层 |阅读模式
;;;-----------------------------行列约束----------------------------------------------
(defun ysbz_x (obj_listt zfbl /        sd se side_f EntityName1 pypt1 EntityName2 pypt2 dwpt1 oripoint_pt endpoint_pt dwpt2 pyptx pyptn pyptz pyptv pyptm pyptu pypto
               pypti carobj1 carobj2)
(setq sd 0
       se 1
) ;_ 结束setq
(setq obj_listt (reverse obj_listt));图元表
(setq side_f (length obj_listt))
(repeat (- side_f 1)
  (setq EntityName1 (nth sd obj_listt))
  (setq pypt1 (cdr (assoc 10 (entget (vlax-vla-object->ename EntityName1)))))
  (setq EntityName2 (nth se obj_listt))
  (setq pypt2 (cdr (assoc 10 (entget (vlax-vla-object->ename EntityName2)))))
  (if (= zfbl "h")
   (progn (setq pyptx (list (car pypt1) (+ (cadr pypt1) 200) (caddr pypt1)))
          (setq pyptn (list (car pypt2) (+ (cadr pypt2) 200) (caddr pypt2)))
          (setq dwpt1 (list (- (car pypt2) (car pypt1)) (- (cadr pypt1) 800) 0.0))
          (vl-cmdf "dimconstraint" zfbl pyptx  pyptn dwpt1 "")
   ) ;_ 结束progn
   (progn (setq pyptz (list (+ (car pypt1) 500) (cadr pypt1) (caddr pypt1)))
          (setq pyptv (list (+ (car pypt2) 500) (cadr pypt2) (caddr pypt2)))
          (setq dwpt1 (list (- (car pypt1) 800) (- (cadr pypt2) (cadr pypt1)) 0.0))
          (vl-cmdf "dimconstraint" zfbl pyptz pyptv  dwpt1 "")
   ) ;_ 结束progn
  ) ;_ 结束if
  (setq sd (1+ sd))
  (setq se (1+ se))
) ;_ 结束repeat
(setq oripoint_pt (cdr (assoc 10 (entget (vlax-vla-object->ename (car obj_listt))))))
(setq endpoint_pt (cdr (assoc 10 (entget (vlax-vla-object->ename (last obj_listt))))))
(if (= zfbl "h")
  (progn (setq pyptm (list (car oripoint_pt) (+ (cadr oripoint_pt) 400) (caddr oripoint_pt)))
         (setq pyptu (list (car endpoint_pt) (+ (cadr endpoint_pt) 400) (caddr endpoint_pt)))
         (setq dwpt2 (list (- (car endpoint_pt) (car oripoint_pt)) (- (cadr oripoint_pt) 1600) 0.0))
         (vl-cmdf "dimconstraint" zfbl pyptm  pyptu  dwpt2 "")
         (setq carobj1 (vlax-vla-object->ename(car obj_listt)))
         (vl-cmdf  "geomconstraint" "f" pyptm)
  ) ;_ 结束progn
  (progn (setq pypto (list (+ (car oripoint_pt) 600) (cadr oripoint_pt) (caddr oripoint_pt)))
         (setq pypti (list (+ (car endpoint_pt) 600) (cadr endpoint_pt) (caddr endpoint_pt)))
         (setq dwpt2 (list (- (car oripoint_pt) 1600) (- (cadr endpoint_pt) (cadr oripoint_pt)) 0.0))
         (vl-cmdf "dimconstraint" zfbl pypto  pypti  dwpt2 "")
         (setq carobj2 (vlax-vla-object->ename(car obj_listt)))
         (vl-cmdf  "geomconstraint" "f"  pypto)
  ) ;_ 结束progn
) ;_ 结束if
(princ)
) ;_ 结束defun
执行后,有时会丢失部分行、列标注约束,请帮看看错在哪?
发表于 2010-7-13 20:53 | 显示全部楼层

把捕捉关了试试,或在程序开头加一句(setvar "OSMODE" 0)

 楼主| 发表于 2010-7-13 23:56 | 显示全部楼层

[求助]请帮看看错在哪?

关了捕捉也不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 19:55 , Processed in 0.179734 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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