明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3147|回复: 7

五金模具中集体偏移的程序

[复制链接]
发表于 2005-7-13 23:45 | 显示全部楼层 |阅读模式

我想做一个五金模具中集体偏移的程序.

比如我的图形有5个圆,5个封闭复合线.

我现在选择此10个图元后,我输入正值,此10个图元集体向外偏移.

我输入负值,此10个图元集体向内偏移.

考虑了好久,没搞定输入负值的情况,请高手指点.

(我需要程序原代码)

发表于 2005-7-18 12:20 | 显示全部楼层

;1. 将下载的“off1.fas”存入G盘目录下,如存入
;   其它地址,则修改程序中“(load "g:/off1.fas")”
;   使之相符。
;2. 使用以下示例程序,即可完成图元的集体偏移。

(defun c:cc()
    (if (null off1)(load "g:/off1.fas"))
    (while (setq jl (getreal "\n 请选择偏移距离<回车结束>:"))
        (princ "\n 请选择要偏移的图元:")
        (if (and jl (setq sa (ssget))) (off1 jl sa))
    )
 )

发表于 2005-7-18 12:20 | 显示全部楼层

;1. 将下载的“off1.fas”存入G盘目录下,如存入
;   其它地址,则修改程序中“(load "g:/off1.fas")”
;   使之相符。
;2. 使用以下示例程序,即可完成图元的集体偏移。

(defun c:cc()
    (if (null off1)(load "g:/off1.fas"))
    (while (setq jl (getreal "\n 请选择偏移距离<回车结束>:"))
        (princ "\n 请选择要偏移的图元:")
        (if (and jl (setq sa (ssget))) (off1 jl sa))
    )
 )

发表于 2005-7-18 12:28 | 显示全部楼层
怎么附件传不上来,请致电hrycly@126.com
发表于 2005-10-6 12:11 | 显示全部楼层

(defun c:fs(/ oce vs1 ent_list id list_len ent msg od)
  ;(setq oce (getvar "cmdecho"))
  ;(setvar "cmdecho" 0)
  (setq vs1 (getvar "vsmax"))
  (setq msg (strcat "Give the offset dist<"  (rtos (getvar "offsetdist")) ">:" ))
  (setq od (getdist  msg ))
  (if (= nil od)
   (setq od (getvar "offsetdist"))
   (setvar "offsetdist" od)
  )
  (setq ent_list (ssget))
  (setq list_len (sslength ent_list))
  (setq id 0)
  (ssname ent_list id)
  (repeat list_len
    (setq ent (ssname ent_list id))
    (command ".offset"  "" ent vs1 "")
    (command ".change" (entlast) "" "p" "c" "red" "")
    (entdel ent)
    (setq id (1+ id))
  )
  (prinC (strcat (rtos list_len 2 0)  " Entites has offseted."))
  (PRINC)
 
)

不过这个只能放大

发表于 2021-12-6 20:16 | 显示全部楼层
chenknight 发表于 2005-10-6 12:11
(defun c:fs(/ oce vs1 ent_list id list_len ent msg od)&nbsp; ;(setq oce (getvar "cmdecho"))&nbsp; ;( ...

谢谢兄弟 分享的好程序
发表于 2021-12-7 09:22 | 显示全部楼层
(defun C:py ( / curve ent holdcmd holdosmode jang n pt pt1 pt2 ss tmp x)
        (if (not (tblsearch "layer" "补偿前"))  
    (command "layer" "n" "补偿前" "c" "4" "补偿前" "")
)
  (defun LEN (CURVE / TLEN)
    (setq TLEN (vlax-curve-getdistatparam
   CURVE
   (vlax-curve-getendparam CURVE)
        )
    )
  )
  (setq HOLDOSMODE (getvar "OSMODE"))
  (setq HOLDCMD (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
                (while
  (setq ss (ssget '((0 . "*LINE,circle,ARC"))))
    (progn
      (setq n 0)
      (initget 2)
        (if *move*
                (setq tee_dist (getreal (strcat  "\n请输入补偿:<" (rtos *move* 2 2) ">:")))
                (setq tee_dist (getreal "\n请输入补偿:"))
        )
        (if (null tee_dist)
                (setq tee_dist *move*)
                (setq *move* tee_dist)
        )
                        (setq tee_dist(/ tee_dist 2))
      (repeat (sslength ss)
(setq ent (ssname ss n)
       n   (1+ n)
)
(setq CURVE (vlax-ename->vla-object ENT)
       x     (vlax-curve-getParamAtDist curve (/ (len curve) 3.33))
       pt    (vlax-curve-getPointAtParam curve x)
)
(setq JANG (angle '(0 0 0) (vlax-curve-getfirstderiv CURVE X)))
(setq PT1 (polar PT (+ JANG (* 0.5 pi)) 0.00000001))
(setq PT2 (polar PT (- JANG (* 0.5 pi)) 0.00000001))
(command "_.OFFSET" (abs tee_dist) ENT PT1 "")
(if (or (and (> tee_dist 0) (> (LEN CURVE) (LEN (entlast))))
  (and (< tee_dist 0) (< (LEN CURVE) (LEN (entlast))))
     )
   (progn
     (entdel (entlast))
                      (command "_.OFFSET" (abs tee_dist) ENT PT2 "")
   )
)
      )
    )
(command "change" ss "" "p" "la" "补偿前" "c" 150 "")
          (setq sc_pd (getstring "\n是否删除对象[删除(Y)]:"))
  (if (or (eq sc_pd "y") (eq sc_pd "Y") (eq sc_pd ""))
       (command "ERASE" ss "" ) )
                )
  (setvar "OSMODE" HOLDOSMODE)
  (setvar "CMDECHO" HOLDCMD)
  (princ)
)
发表于 2021-12-27 00:11 来自手机 | 显示全部楼层
感谢你的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 15:53 , Processed in 0.143623 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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