找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 15897|回复: 1
打印 上一主题 下一主题

镶件外形生成

[复制链接]
跳转到指定楼层
1
发表于 2006-1-20 22:45:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
;;;镶件外形生成 Command:WX
;;;2005-10-11     Chen Jian
;;;Version 1.1    add (C:GETBOX)
;;;2005-07-01     Chen Jian
;;;Version 1.0
;;;MADE IN CHINA
(defun c:WX (/            pt1           pt2          pt3         pt4        Y1     Y2     midY
             lineY  newY1  newY2  X1         X2        midX   lineX  newX1
             newX2  newpt1 newpt2 newpt3 newpt4
            )
  (setvar "cmdecho" 0)
  (command "undo" "be")
  (C:GETBOX)
  (if (= des-GetBox-OK 1)
    (progn
      (setq pt1 des-GetBox-top-pt1)
      (setq pt2 des-GetBox-bottom-pt2)
      (setq pt3 des-GetBox-left-pt3)
      (setq pt4 des-GetBox-right-pt4)

      (setq Y1 (CADr pt1))
      (setq Y2 (cadr pt2))
      (setq midY (/ (+ Y1 Y2) 2.0))        ;中点Y坐标
      (setq lineY (+ (/ (fix (abs (- Y1 Y2))) 2.0) 5.5))
      (setq newY1 (+ midY lineY))
      (setq newY2 (- midY lineY))

      (setq X1 (car pt3))
      (setq X2 (car pt4))
      (setq midX (/ (+ X1 X2) 2.0))        ;中点X坐标
      (setq lineX (+ (/ (fix (abs (- X2 X1))) 2.0) 5.5))
      (setq newX1 (- midX lineX))
      (setq newX2 (+ midX lineX))

      (setq newpt1 (list newX1 newY1))
      (setq newpt2 (list newX2 newY1))
      (setq newpt3 (list newX2 newY2))
      (setq newpt4 (list newX1 newY2))
      (setq os (getvar "osmode"))
      (setvar "osmode" 0)
      (setq oldcolor (getvar "CECOLOR"))
      (setvar "CECOLOR" "3")
      (command "PLINE" newpt1 newpt2 newpt3 newpt4 "c")
      (setvar "CECOLOR" oldcolor)
      (setvar "osmode" os)
      (command "undo" "e")
    )
    (Princ "\n------无对象?!")
  )
  (Princ "\n-----------Bye c:WX 镶件外形生成------------")
  (prin1)
)
;;;********************************************************************1
;;;取得s最小包围框 Command:GetBox
;;;Return minpoint maxpoint des-GetBox-top-pt1 des-GetBox-bottom-pt2
;;;       des-GetBox-left-pt3 des-GetBox-right-pt4 des-GetBox-midpt
;;;2005-10-11     Chen Jian
;;;Version 1.0
;;;MADE IN CHINA
(defun c:GetBox        (/ des-GetBox-en1    ename-name
                 vlaobject-ename-name
                )
  (setq des-GetBox-en1 nil)
  (setq des-GetBox-OK nil)
  (setq des-GetBox-en1 (entsel "\n选取图形... "))
  (vl-load-com)
  (while des-GetBox-en1
;;;当en1存在时,做以下内容,直到en1不存在为止
    (sub-GetBoundingBox des-GetBox-en1)
    (setq des-GetBox-en1 nil)
  )
  (prin1)
)

(defun sub-GetBoundingBox (des-GetBox-en1)
;;;  (command "ucs" "w")
  (setq ename-name (car des-GetBox-en1))
  (setq        vlaobject-ename-name
         (vlax-ename->vla-object ename-name)
  )
  (vla-GetBoundingBox
    vlaobject-ename-name
    'minpoint
    'maxpoint
  )
  (setq minpoint (vlax-safearray->list minpoint))
  (setq maxpoint (vlax-safearray->list maxpoint))
  (setq minpoint(trans minpoint 0 1))      ;转为ucs点
  (setq maxpoint(trans maxpoint 0 1))      ;转为ucs点
  (setq des-GetBox-top-pt1 maxpoint)
  (setq des-GetBox-bottom-pt2 minpoint)
  (setq des-GetBox-left-pt3 minpoint)
  (setq des-GetBox-right-pt4 maxpoint)
  (setq des-GetBox-midpt (polar minpoint
         (angle minpoint maxpoint)
         (/(distance minpoint maxpoint) 2.0)
         ))
  (setq des-GetBox-OK 1)
  (princ "\nReturn-BoundingBox-ok")
)
;;;DES:ChenJian
;;;E-mail:ChenJianCaiHong@163.com
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
 楼主| 发表于 2006-1-23 23:12:35 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-1 05:30 , Processed in 0.022322 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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