明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5534|回复: 23

[已解答] 画长形孔

  [复制链接]
发表于 2013-5-22 22:07:33 | 显示全部楼层 |阅读模式


图一



图二

    根据图一选取两个圆孔,应如何编写程序实现图二效果,请高手们指点

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-8-3 23:02:06 | 显示全部楼层
刘炎华 发表于 2020-8-2 18:11
哪位高手辛苦修改下,选取两点作为圆弧中心,感谢!

没明白你的意思?
发表于 2020-8-4 12:59:04 | 显示全部楼层
现在选的两点成了象限点,如果作为圆弧的圆心(实际工作上用时会好些),谢谢!
发表于 2020-7-30 09:03:50 | 显示全部楼层
非常感谢各位大神的分享  学习了  谢谢
发表于 2013-5-22 22:32:21 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2013-5-22 22:58 编辑
  1. (defun c:tt ()
  2. (setvar "CMDECHO" 0)
  3. (if (setq ss (ssget '((0 . "CIRCLE"))))
  4.   (if (= (sslength ss) 2) (progn
  5.    (setq ent1 (entget(ssname ss 0))
  6.          pc1 (cdr(assoc 10 ent1))
  7.          r1 (cdr(assoc 40 ent1))
  8.          ent2 (entget(ssname ss 1))
  9.          pc2 (cdr(assoc 10 ent2))
  10.          r2 (cdr(assoc 40 ent2)))
  11.   (if (equal r1 r2 1e-5) (progn
  12.    (setq ang (angle pc1 pc2)
  13.          p1 (polar pc1 (+ (/ pi 2) ang) r1)
  14.          p2 (polar pc1 (+ (/ pi -2) ang) r1)
  15.          p3 (polar pc2 (+ (/ pi 2) ang) r1)
  16.          p4 (polar pc2 (+ (/ pi -2) ang) r1))
  17.    (command "_.PLINE" "non" p1 "non" p3 "A" "non" p4 "L" "non" p2 "A" "C")
  18.    (command "_.ERASE" ss "")
  19.   ))
  20. ))
  21. )
  22. (setvar "CMDECHO" 1)
  23. (princ)
  24. )
 楼主| 发表于 2013-5-22 22:45:37 | 显示全部楼层
ZZXXQQ 发表于 2013-5-22 22:32

提示:tt
选择对象: 找到 1 个
选择对象: 找到 1 个,总计 2 个
选择对象:  ; 错误: no function definition: STRLENG

请问这是什么意思呢
发表于 2013-5-22 22:55:34 | 显示全部楼层
(command "_.PLINE" p1 p3 "A" p4 "L" p2 "A" "C")
---> (command "_.PLINE" "non" p1 "non" p3 "A" "non" p4 "L" "non" p2 "A" "CL")
(if (= (strleng ss) 2) ---->(if (= (sslength ss) 2)
发表于 2013-5-22 22:59:26 | 显示全部楼层
本帖最后由 仲文玉 于 2013-5-22 23:04 编辑

感觉楼主自己不尝试写,光顾着索取程序,其实我明白你要的是埋件图,有必要这样麻烦吗?做个块就得了。这种小程序自己编,遇到问题提出来,你才有长进。自己折腾很折腾!
给你以前我瞎写的
  1. (defun c:tt ()
  2.   (setvar "CMDECHO" 0)
  3.   (if (and (setq r (getdist "\n半径 :"))
  4.      (setq pt (getpoint "\n插入点 :"))
  5.      (setq pta (getpoint pt "\n另一点 :"))
  6.       )
  7.     (progn
  8.       (setq ang  (angle pt pta)
  9.       di  (distance pt pta)
  10.       ptb  (polar pt ang r)
  11.       pt1  (polar ptb (+ ang (/ pi 2)) r)
  12.       pt2  (polar pt1 ang (- di (* r 2)))
  13.       pt3  (polar ptb (+ ang (/ pi -2)) r)
  14.       pt4  (polar pt3 ang (- di (* r 2)))
  15.       )
  16.       (command "_.PLINE" "non" pt1 "non" pt2 "A" "non" pt4 "L" "non" pt3 "A" "CL")
  17.     )
  18.   )
  19.   (setvar "CMDECHO" 1)
  20.   (princ)
  21. )

本帖子中包含更多资源

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

x
发表于 2013-5-23 01:22:54 | 显示全部楼层
楼上说的很对,我也得好好反思下,多多自己操作练习,好好学习天天向上
发表于 2013-5-23 01:45:17 | 显示全部楼层
(defun c:CTK ()
   (setvar "CMDECHO" 0)
   (if (= ctk_d nil) (setq ctk_d 6))
   (princ (strcat "\n请设定长条孔半径 <" (rtos ctk_d 2 3) ">: "))
   (setq a (getdist))
   (if (= a nil) (setq a ctk_d))
   (setq ctk_d a)
   (setq r ctk_d)
    (if (and
          (setq pt (getpoint "\n插入点 :"))
          (setq pta (getpoint pt "\n另一点 :"))
        )
     (progn
       (setq ang  (angle pt pta)
       di  (distance pt pta)
       ptb  (polar pt ang r)
       pt1  (polar ptb (+ ang (/ pi 2)) r)
       pt2  (polar pt1 ang (- di (* r 2)))
       pt3  (polar ptb (+ ang (/ pi -2)) r)
       pt4  (polar pt3 ang (- di (* r 2)))
       )
       (command "_.PLINE" "non" pt1 "non" pt2 "A" "non" pt4 "L" "non" pt3 "A" "CL")
     )
   )
   (setvar "CMDECHO" 1)
   (princ)
)
发表于 2013-5-25 10:37:31 | 显示全部楼层
本帖最后由 ucuc2003 于 2013-6-2 07:40 编辑
  1. <img src="http://bbs.mjtd.com/forum.php?mod=attachment&aid=NzU4Nzh8ZTI5NWZjNDV8MTM2OTgwMjE5NXwzNTM2OTN8MTAxNjUz&noupdate=yes" border="0">;;;;画长条孔CTK
  2. ;;;;源码明经仲文玉,修改ucuc2003
  3. (defun c:CTK (/ w p1 p2 ang )
  4.   (setvar "cmdecho" 0)
  5.   (setvar "osmode" 1023)
  6.   (princ "画长条孔")

  7.   (if (= ctk_d nil) (setq ctk_d 13))
  8.   (princ (strcat "\n请设定长条孔直径 <" (rtos ctk_d 2 3) ">: "))
  9.   (setq a (getdist))
  10.   (if (= a nil) (setq a ctk_d))
  11.   (setq ctk_d a)
  12.   (setq r (/ ctk_d 2))

  13.   (while (and
  14.            (setq pt (getpoint "\n指定插入点:"))
  15.            (setq pta  (getpoint pt "\n指定另一点:"))
  16.           );and
  17.     (setq ang  (angle pt pta)
  18.        di  (distance pt pta)
  19.        ptb  (polar pt ang r)
  20.        pt1  (polar ptb (+ ang (/ pi 2)) r)
  21.        pt2  (polar pt1 ang (- di (* r 2)))
  22.        pt3  (polar ptb (+ ang (/ pi -2)) r)
  23.        pt4  (polar pt3 ang (- di (* r 2)))
  24.      );set
  25.     (command "_.PLINE" "non" pt1 "non" pt2 "A" "non" pt4 "L" "non" pt3 "A" "CL")
  26.     (command "redrawall")
  27.     (princ "\n**继续输入**")
  28.   );while
  29.   (princ)
  30. );defun


  31. <img src="http://bbs.mjtd.com/forum.php?mod=attachment&aid=NzU4Nzh8ZTI5NWZjNDV8MTM2OTgwMjE5NXwzNTM2OTN8MTAxNjUz&noupdate=yes" border="0">

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
669423907 + 1 直径很好

查看全部评分

发表于 2013-5-27 16:44:15 | 显示全部楼层
ucuc2003 发表于 2013-5-25 10:37

能否加上中心线?
发表于 2013-5-27 16:47:29 | 显示全部楼层
王航 发表于 2013-5-27 16:44
能否加上中心线?

能否加上中心线,如图?

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-4-3 01:36 , Processed in 0.281055 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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