QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 ljpfeng2004 于 2010-10-16 16:17 编辑
0 l! H4 b, \7 l$ G5 u: w: w: h7 U" I- Z' v
不是相切相切半径的方式,因为输入半径很多时候不方便,需要计算。但我捣鼓了半天也弄不好,getpoint方式画不出来的,请高手赐教代码。/ S7 t0 a( X% x& Z: p  j( f
结贴,很好的lisp,感谢sunvei老师了。
发表于 2010-10-16 08:07:17 | 显示全部楼层 来自: 中国广东东莞
 楼主| 发表于 2010-10-16 09:22:37 | 显示全部楼层 来自: 中国山东青岛
都是我的ID,晕了。我就要lisp不要无关的答案,谢谢。
 楼主| 发表于 2010-10-16 11:09:25 | 显示全部楼层 来自: 中国山东青岛
(
4 }6 o3 s. l5 B4 B6 |% S4 a# `defun ggtt()
3 {( O3 m1 b+ F2 O) ](setvar "osmode" 256)! z; \. B. {, ], a& I* W
(getpoint"请选择点")1 A% K9 ]4 Y. D# `
)/ i! r. v% W, @! g1 K$ a

9 L9 ], z9 S: |5 l4 ~3 P(
6 K# g5 P' [( W9 E" W' edefun c:c2(/ p1 p2 diameter radius)
6 K2 R( {: M: Y3 `/ J  e6 i; D(setq diameter (getreal"\n 输入直径"))
+ q- I, ^4 D! ?- F3 W4 {% h9 d(setq radius (* diameter 0.5))
& h8 j% q5 m8 J2 `; _* x0 A- {(command "circle" "t" (ggtt) (ggtt) radius)8 j, ]6 `3 ?% T2 S2 X, q
, K* F4 h# {* b& p- ]+ i5 Y- N1 C
)
( y1 |3 j' B; g( H+ F" h这个是我自己鼓捣的代码,不行啊。郁闷。高手帮忙吧。求助中。。。。。。
发表于 2010-10-16 11:41:57 | 显示全部楼层 来自: 中国台湾
;; 简单的雏型4 R4 Z  G1 O# ^5 X' {! A
;; For test only
( A2 L' B4 Q8 h' P  t% `3 {8 `(defun C:TTD ()3 h7 ~3 e9 y# m
  (command "Circle" "TTR"
. K  ~* h0 N5 }$ h( e    "tan" pause
9 f3 C+ L& t1 W8 x    "tan" pause
1 s3 ~! w7 v" ~) a1 X: G+ G/ T  \    (/ (getdist ">> Diameter: ") 2)& O# m% J0 Y5 R4 ]4 s
  )
' c1 O- R7 e. U8 b)
 楼主| 发表于 2010-10-16 13:36:10 | 显示全部楼层 来自: 中国山东青岛
老大,您是高手啊。佩服,有不明白的地方,"TTR"难道是02版本之前提示参数吗?另外“tan”也是参数吗?菜鸟一个,请您不吝赐教了。
发表于 2011-6-9 14:05:01 | 显示全部楼层 来自: 中国安徽合肥
(defun c:ttt()
4 [3 Y4 |: A1 b$ C( p(setq baspt (getpoint "请求输入基准点: "))
) y( s7 e& e# x2 e6 o6 B(setq rad (getdist baspt "\n请求输入小圆半径: "))
7 f  C; o' |5 @7 A" [9 `(setq num (getint "\n请求输入相切的小圆数量: "))' P5 t" P! k5 ]$ M
(setq ang1 (/ (* pi 2) (* num 2)))
0 R* C3 D7 ~5 x+ X$ g" v$ i(setq kk (/ rad (sin ang1)))
4 I' E' Y1 I' |' ?3 ](setq ang2 (- (/ pi 2) ang1)), r9 T* f: Z9 x: {5 ?
(setq cenpt (polar baspt ang2 kk))
& D* p* a, i. s' A) P" N/ D(command "circle" baspt rad)                               
1 O  X( V/ T8 m1 P1 d9 k2 ^(command "array" (entlast) "" "p" cenpt num 360 "Y")3 I$ ]. b+ D; y% L9 t3 J2 m
(princ)
# j) e; X! G% J/ e7 y0 c* W)6 W! K3 U6 }0 q: q* S" N
(prompt "\n << 5TEST2>>自动等圆相切绘制")  D* `8 p2 \$ c. |; @) U, m
(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 )

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