明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2853|回复: 15

[已解答] 长圆孔LSP,求改

[复制链接]
发表于 2016-6-17 16:41 | 显示全部楼层 |阅读模式
  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. )


该程序来自明经http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101568

想求人改一下,将长圆孔的长度值(即程序中: \n插入点 :"   到   \n另一点 :"  之间的距离)改为圆孔两圆心间的距离。另外,  (if (and (setq r (getdist "\n半径 :"))可不可以加个默认数值。谢谢

该贴已经同步到 皇上快溜的微博

本帖被以下淘专辑推荐:

发表于 2022-4-19 16:55 | 显示全部楼层

第三行是不是有点问题,运行一直是r为5。(or (setq r (getdist "\n半径 <5>:")) (setq r 5))改成这样可以传递r值
发表于 2024-4-25 17:16 | 显示全部楼层
蛮不错的 感谢分享~
学习了~
 楼主| 发表于 2016-6-17 21:34 | 显示全部楼层

谁可以帮我改改。谢谢

本帖子中包含更多资源

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

x
发表于 2016-6-17 22:37 | 显示全部楼层
本帖最后由 Andyhon 于 2016-6-17 23:01 编辑

  1. (defun c:tt ()
  2.   (setvar "CMDECHO" 0)
  3.   (if (and
  4.         (setq r (getdist "\n半径 :"))
  5.         (setq pt (getpoint "\n插入点 :"))
  6.         (setq pta (getpoint pt "\n另一点 :"))
  7.       )
  8.     (progn
  9.       (setq ang  (angle pt pta)
  10.             <90  (/ Pi 2)
  11.          ;; di   (distance pt pta)
  12.          ;; ptb  (polar pt ang r)
  13.             pt1  (polar pt (- ang <90) r)
  14.             pt2  (polar pt (+ ang <90) r)
  15.             pt3  (polar pta (- ang <90) r)
  16.             pt4  (polar pta (+ ang <90) r)
  17.       )
  18.       (command "_.PLINE" "non" pt1 "non" pt3 "A" "non" pt4 "L" "non" pt2 "A" "CL")
  19.     )
  20.   )
  21.   (setvar "CMDECHO" 1)
  22.   (princ)
  23. )
 楼主| 发表于 2016-6-17 22:48 | 显示全部楼层
Andyhon 发表于 2016-6-17 22:37

老大,这个程序不行啊?报错 错误: 参数类型错误: numberp: nil
 楼主| 发表于 2016-6-17 23:01 | 显示全部楼层
Andyhon 发表于 2016-6-17 22:37

可能我图片中表达意思有点模糊
原程序定义的  “长圆孔长度值”  是两圆弧两端象限点之间的距离,
现在想让  “长圆孔长度值”  定义两圆弧之圆心间的距离
另外,程序中R值的输入,可不可以帮忙设个默认数值,谢谢你
发表于 2016-6-17 23:02 | 显示全部楼层
本帖最后由 Andyhon 于 2016-6-17 23:04 编辑

sorry!  已订正

R:
ref: http://bbs.mjtd.com/thread-172545-1-1.html

发表于 2016-6-18 09:51 | 显示全部楼层
皇上快溜 发表于 2016-6-17 21:34
谁可以帮我改改。谢谢

  1. (defun c:tt ()
  2.   (setvar "CMDECHO" 0)
  3.   (or (setq r (getdist "\n半径 <5>:") r 5))
  4.   (if (and
  5.      (setq pt (getpoint "\n插入点 :"))
  6.      (setq pta (getpoint pt "\n另一点 :"))
  7.       )
  8.     (progn      
  9.       (setq ang  (angle pt pta)
  10.       di   (distance pt pta)
  11.       ptb  (polar pt ang r);
  12.       pt1  (polar ptb (+ ang (/ pi 2)) r)
  13.       pt2  (polar pt1 ang di)
  14.       pt3  (polar ptb (+ ang (/ pi -2)) r)
  15.       pt4  (polar pt3 ang di)
  16.       )
  17.       (command "_.PLINE" "non" pt1 "non" pt2 "A" "non" pt4 "L" "non" pt3 "A" "CL")
  18.     )
  19.   )
  20.   (setvar "CMDECHO" 1)
  21.   (princ)
  22. )

 楼主| 发表于 2016-6-18 14:15 | 显示全部楼层
谢谢Andyhon,谢谢琴剑江山。程序很好用,,,
 楼主| 发表于 2016-6-18 15:06 | 显示全部楼层
楼上俩位老大,我这还有一个程序想请二位轻轻改动一下
(defun c:yk()
(setq ptcen (getpoint "\n输入圆心:"))
(setq rr (getdist ptcen "\n指定半径<默认:1>:"))
(if (null rr)(setq rr 1.0))
(command "circle" "non" ptcen rr)
(command "move" (entlast) "" ptcen pause)
(princ))
是个画圆并将其移动一个距离的程序。给定圆心点后,空格键确认程序默认的圆径数值。紧接着就是移动动作。现在想让程序执行移动命令是,也有个默认的移动距离数值,以鼠标拖拽放向为移动方向,以空格键结束。最后面那里不知该怎么弄。或者,以你们专业的编程章法,根本不用那么累赘。就是想在给定点的,默认偏移距离(正交)上,画一个有默认数值的圆
 楼主| 发表于 2016-6-19 13:50 | 显示全部楼层
琴剑江山_10184 发表于 2016-6-18 09:51

你好,我这个小lsp想请你改一下。在9楼
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=172551
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 22:52 , Processed in 0.260274 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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