QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3653|回复: 7
收起左侧

[已解决] 请教用autolisp实现相切相切直径画圆

[复制链接]
发表于 2010-10-16 07:42:49 | 显示全部楼层 |阅读模式 来自: 中国山东青岛

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
本帖最后由 ljpfeng2004 于 2010-10-16 16:17 编辑 + a: P& c) x" n) o) \( n0 B
4 z$ M6 B% y* E
不是相切相切半径的方式,因为输入半径很多时候不方便,需要计算。但我捣鼓了半天也弄不好,getpoint方式画不出来的,请高手赐教代码。
. L7 p; E4 y( ]/ h0 a! W6 m2 X" u4 U结贴,很好的lisp,感谢sunvei老师了。
发表于 2010-10-16 08:07:17 | 显示全部楼层 来自: 中国广东东莞
 楼主| 发表于 2010-10-16 09:22:37 | 显示全部楼层 来自: 中国山东青岛
都是我的ID,晕了。我就要lisp不要无关的答案,谢谢。
 楼主| 发表于 2010-10-16 11:09:25 | 显示全部楼层 来自: 中国山东青岛
(. @- K; Z. Z( r
defun ggtt()
  _* U4 [& z5 P6 ?9 ^(setvar "osmode" 256)6 r' F, h% G# L8 R9 r
(getpoint"请选择点")! F  B( x) l' `' }" D
)* b1 p0 C' M- g& W" E
. g4 |+ o0 ^$ q
(
3 ^1 A/ C: n& l4 m0 C1 ~- _defun c:c2(/ p1 p2 diameter radius)
5 Q6 L# @0 M& z  N! J/ W: {2 L+ _/ x6 W(setq diameter (getreal"\n 输入直径")), k2 O% ^7 R4 ~4 \3 a: ^7 \0 f
(setq radius (* diameter 0.5))
# o& Y, U* _3 A7 S+ H(command "circle" "t" (ggtt) (ggtt) radius)- I- m" A* w" \0 }+ J- ?4 I  N

/ \! Z" V- P; F4 A9 C$ j# F)
( \  @1 c; a1 B* W- @8 S1 w这个是我自己鼓捣的代码,不行啊。郁闷。高手帮忙吧。求助中。。。。。。
发表于 2010-10-16 11:41:57 | 显示全部楼层 来自: 中国台湾
;; 简单的雏型
+ r: y, h; [+ _7 ?, t4 U2 Y& F& M;; For test only . M1 h. Z1 y9 m# e( j0 F
(defun C:TTD (): x% j3 d. Z5 T2 ~( m- _
  (command "Circle" "TTR"$ G4 r; O8 Q: X! T- [0 Z) h) \
    "tan" pause
! }! j7 G8 X% u. s2 z0 d" Z    "tan" pause
" N3 I" p' e1 S9 b2 [/ M% G% ?    (/ (getdist ">> Diameter: ") 2); P" H) q) B* z5 G; |$ W5 o" j/ W. k
  )4 B4 K- M) Y. g" Y% @! n# e8 Y# v. H4 I
)
 楼主| 发表于 2010-10-16 13:36:10 | 显示全部楼层 来自: 中国山东青岛
老大,您是高手啊。佩服,有不明白的地方,"TTR"难道是02版本之前提示参数吗?另外“tan”也是参数吗?菜鸟一个,请您不吝赐教了。
发表于 2011-6-9 14:05:01 | 显示全部楼层 来自: 中国安徽合肥
(defun c:ttt()' L7 Z. {, x9 W7 o  v
(setq baspt (getpoint "请求输入基准点: "))
4 e9 ?# Z  }* B. z(setq rad (getdist baspt "\n请求输入小圆半径: "))" q# C. Q2 }3 Z7 O0 t
(setq num (getint "\n请求输入相切的小圆数量: "))
! V7 }" o: s, H, [(setq ang1 (/ (* pi 2) (* num 2)))" M, d1 \6 a+ ?- P! j7 V
(setq kk (/ rad (sin ang1)))
1 q( Q4 M7 v2 C. d(setq ang2 (- (/ pi 2) ang1)): q1 {" E5 H/ l: T
(setq cenpt (polar baspt ang2 kk))
, C$ w8 w4 K* a, O(command "circle" baspt rad)                                5 l8 M! M' P- U/ t
(command "array" (entlast) "" "p" cenpt num 360 "Y")
+ [: b8 [( P# _0 s6 a) A2 C! H(princ)8 ~! ~9 a6 S  x! j& w8 ~
)
! D: {, I; j; S' _# X(prompt "\n << 5TEST2>>自动等圆相切绘制")& Z+ c, P! X4 `5 I/ O7 J+ K
(princ)
发表于 2011-6-29 16:20:37 | 显示全部楼层 来自: 中国上海
不管,只要好用就行,试过了,挺好的。已经保存LISP.感谢楼主和LISP提供者
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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