明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3263|回复: 8

关于尺寸驱动!

[复制链接]
发表于 2007-10-27 20:05:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-10-27 20:09:55 编辑

我们在CAD制图时,经常会遇到这种情况:希望只改变尺寸,就能使所画的图形的外形发生相应的变化!下面这个LSP是BDYCAD所写的!加载以后,好像只能修改用DLI命令标注的图形(图形好像还要闭合)!对于用DOR命令标注的尺寸就无能为力了!这个LSP程序BDYCAD经过心血编写!在公布有所保留!(我想别人经过心血所得东西,是不可能免费公开的!我们能理解)现在我把他公布的部分贴出来!看看大家有没有办法像PRO/E中那样只需修改尺寸,图形的外形就会随尺寸变化!

 具体操作的链接地址:http://www.mjtd.com/Codes/ArticleShow.asp?ArticleID=1020

;;;编写: BDYCAD
;;;时间: 2005-03-18
;;;开发用时  26分钟
;;;功能: 尺寸驱动
(defun c:tt(/ BLB EP ESPL N-EP N-SP NEW-T SD SD-DXF SEA SEB SP SS1 SS2 SS3)
  (setq SD (entsel "\n选择驱动尺寸:"))
  (if SD
    (PROGN
      (SETQ SD-DXF (ENTGET (CAR SD)))
      (WHILE (NOT (wcmatch (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
 (setq SD (entsel "\n选择驱动尺寸:"))
 (SETQ SD-DXF (ENTGET (CAR SD))))
      (SETQ SP (CDR (ASSOC 13 SD-DXF))
     EP (CDR (ASSOC 14 SD-DXF))
     ESPL (DISTANCE SP EP)
     SEA (ANGLE SP EP)
     SEB (ANGLE EP SP)
     NEW-T (getdist "\n新的长度:"))
      (while (eq nil NEW-T)
 (setq  NEW-T (getdist "\n新的长度:")))
      (if NEW-T
 (progn
      (setq BLB (* 0.5 (abs (-  NEW-T ESPL))))
      (if (> ESPL NEW-T )
 (setq N-SP (POLAR SP SEA BLB)
       N-EP (POLAR EP (+ PI SEA) BLB))
 (setq N-SP (POLAR SP SEB BLB)
       N-EP (POLAR EP (+ PI SEB) BLB))
 )
      (setvar "osmode" (logior (getvar "osmode") 16384))
      (setvar "cmdecho" 0)
      (vl-cmdf "_.undo" "_group")
      (SETQ SS1 (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
     SS2 (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
     )
      (IF SS1
 (COMMAND "STRETCH" (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
   ""SP N-SP))
      (IF SS3
 (COMMAND "STRETCH" (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
   ""EP N-EP))
      (vl-cmdf "_.undo" "_end")
      (setvar "osmode" (logand (getvar "osmode") 49151))
      (PRINC"\n编写:BDYCAD\n尺寸驱动程序运行完毕, 欢迎使用.谢谢!")))
      )
    )
  (princ)
  )

 

 

 楼主| 发表于 2007-10-28 10:14:00 | 显示全部楼层

不要沉下去!自己顶下!

希望高手能看见!

发表于 2007-10-28 10:39:00 | 显示全部楼层
Pro/E中有类似DOR的尺寸标注吗?
 楼主| 发表于 2007-10-28 17:16:00 | 显示全部楼层

ZZXXQQ你没有明白我的意思!

 楼主| 发表于 2007-10-29 08:40:00 | 显示全部楼层
怎么没有高手进来看看啊!是不是这个问题太复杂了!
发表于 2007-10-29 09:24:00 | 显示全部楼层
一楼的代码使用"STRETCH",来“变形”。实现了改变对象外形,看起来像,却不是。
因为在改变当前对象时,是没有考虑其他已经存在的约束条件的。
 楼主| 发表于 2007-10-29 10:11:00 | 显示全部楼层

看来!那个程序只是简单的一个拉伸而已!并不会 PRO/E那样外形会随着尺寸的变化而变化!

发表于 2007-10-29 10:23:00 | 显示全部楼层
这里是8月份的讨论,供楼主参考。
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62282
发表于 2022-3-27 11:34:02 | 显示全部楼层

这个是燕秀的
感觉很好
就是没找到也搞不出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 09:18 , Processed in 0.164293 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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