明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1800|回复: 11

[基础] 请高手帮忙修改一下!!!!!

  [复制链接]
发表于 2011-1-29 16:26 | 显示全部楼层 |阅读模式
圆心在交点,线要串联,谢谢!!!!!!!!!!





(defun c:sk()
        (setq a (getdist "\n 输入腰孔的长度:"))
        (setq b (getdist "\n 输入腰孔的宽度:"))
        (setq d (- a b))
        (setq ang (getangle "\n 输入旋转角度:"))
(setq cpt (getpoint "\n 输入腰孔的中心点:"))
        (setq ang1 (/ (/ b 4.0) (/ d 4.0)))
(setq ang2 (atan ang1))
(setq d2 (sqrt (+ (* (/ b 2.0) (/ b 2.0)) (* (/ d 2.0) (/ d 2.0)))))
(setq pt5 (polar cpt ang (/ a 2.0)))
          (setq pt6 (polar pt5 (+ 0 ang) (- 0 a)))
        (setq pt1 (polar cpt (- ang ang2) d2))
(setq pt2 (polar cpt (+ ang ang2) d2))
(setq pt3 (polar cpt (+ (- ang ang2) pi) d2))
(setq pt4 (polar cpt (+ (+ ang ang2) pi) d2))
(command "osnap" "off")
        (command "line" pt1 pt4 "")
        (command "line" pt2 pt3 "")
(command "arc" Pt1 Pt5 pt2)
        (command "arc" Pt3 Pt6 pt4)
        (command "osnap" "endp,cen,mid,int")
        (princ))

本帖子中包含更多资源

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

x
发表于 2011-1-29 19:56 | 显示全部楼层
不是很懂,请先试这个
(command "Pline" pt1 pt4 "A" pt3  "L" pt2 "A" "CL")
发表于 2011-1-29 20:35 | 显示全部楼层
本帖最后由 xyp1964 于 2011-1-29 20:36 编辑

腰孔

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-1-31 08:15 | 显示全部楼层
回复 xyp1964 的帖子

谢谢!但不是我想要的!
发表于 2011-2-1 10:12 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2011-2-1 10:20 编辑

不知道你到底想要什么样的。
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
发表于 2011-2-2 13:15 | 显示全部楼层
有点像挂台让位槽
 楼主| 发表于 2011-2-7 17:00 | 显示全部楼层
回复 ZZXXQQ 的帖子

我想要的是第二种效果,线型为虚线更好!谢谢!
 楼主| 发表于 2011-2-7 17:02 | 显示全部楼层
回复 lenlenq 的帖子

是挂台让位槽
发表于 2011-2-7 19:09 | 显示全部楼层
本帖最后由 lenlenq 于 2011-2-7 19:19 编辑

看了一楼的图形,感觉是不是点一下一条直线,在以直线的两个端点为圆心画挂台让位孔(长圆孔)呢?
发表于 2011-2-7 20:33 | 显示全部楼层
把一楼的程序修改了一下.
(defun c:sk (/           A         ANG   ANG1  ANG2  B         CPT   D     D2
             EN1   EN2         EN3   EN4   EN5   ENT         NEW-ENT     PED
             PT1   PT2         PT3   PT4   PT5   PT6         SS    XX
            )
  (setq a (getdist "\n 输入腰孔的长度:"))
  (setq b (getdist "\n 输入腰孔的宽度:"))
  (while (< a b)
    (setq
      b        (getdist "\n **宽度应小于长度!**   重新输入腰孔的宽度:")
    )
  )
  (setq d (- a b))
  (setq ang (getangle "\n 输入旋转角度<0>:"))
  (if (null ang)
    (setq ang 0)
  )
  (if (setq cpt (getpoint "\n 输入腰孔的中心点:"))
    (progn
      (setq ang1 (/ (/ b 4.0) (/ d 4.0)))
      (setq ang2 (atan ang1))
      (setq
        d2 (sqrt (+ (* (/ b 2.0) (/ b 2.0)) (* (/ d 2.0) (/ d 2.0))))
      )
      (setq pt5 (polar cpt ang (/ a 2.0)))
      (setq pt6 (polar pt5 (+ 0 ang) (- 0 a)))
      (setq pt1 (polar cpt (- ang ang2) d2))
      (setq pt2 (polar cpt (+ ang ang2) d2))
      (setq pt3 (polar cpt (+ (- ang ang2) pi) d2))
      (setq pt4 (polar cpt (+ (+ ang ang2) pi) d2))
      (command "osnap" "off")
      (command "line" pt1 pt4 "")
      (setq en1 (entlast))
      (command "line" pt2 pt3 "")
      (setq en2 (entlast))
      (command "arc" Pt1 Pt5 pt2)
      (setq en3 (entlast))
      (command "arc" Pt3 Pt6 pt4)
      (setq en4 (entlast))
      (setq ss (ssadd))
      (foreach n (list en1 en2 en3)
        (setq ss (ssadd n ss))
      )
      (command "osnap" "endp,cen,mid,int")
      (setq ped (getvar "peditaccept"))
      (if (= ped 1)
        (command "pedit" en4 "j" ss "" "")
        (command "pedit" en4 "y" "j" ss "" "")
      )
      (setq en5 (entlast))
      (setq ent (entget en5))
      (setq xx (cdr (assoc 6 ent)))
      (if (null xx)
        (setq ent (append ent '((6 . 256))))
      )
      (setq new-ent (subst '(6 . "dashed") (assoc 6 ent) ent))
      (entmod new-ent)
    )
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 19:43 , Processed in 0.199068 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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