荒野孤行 发表于 2015-5-24 10:40:39

四个圆包围矩形且与矩形边相切

本帖最后由 荒野孤行 于 2015-5-24 21:54 编辑

**** Hidden Message *****

源码如下:

;;;*****矩形4圆相切 程序开始*****
(defun c:t1 ()
(setvar "cmdecho" 0)
(setvar "osmode" 15359)
(princ "\n功能:通过矩形绘制出与其四边相切,且四圆两两相切的圆.")
(initget 7)
(setq l_len (getdist "\n请输入矩形的长度:"))
(initget 7)
(setq l_wid (getdist "\n请输入矩形的宽度:"))
(initget 3)
(setq pt1 (getpoint "\n请指定插入点:"))
(setvar "osmode" 0)
(setq L1 (* l_wid 0.5))
(setq L2 (* l_len 0.5))
(setq a (* 2.0 L1))
(setq b (+ (* L2 L2) (* L1 L1 -1.0) (* 4.0 L1 L2)))
(setq c (* 2.0 L1 L1 L2))
(setq r2 (/ (+ b (sqrt (+ (* b b) (* 4.0 a c)))) (* 2.0 a) 1.0))
(setq r1 (+ (/ (* L1 L1) r2 1.0) (* 2.0 L1)))
(setq pt2 (polar pt1 0 l_len))
(setq pt12 (polar pt1 0 (* l_len 0.5)))
(setq pt_r2 (polar pt12 (angtof "90") r2))
(setq pt3 (polar pt2 (angtof "-90") l_wid))
(setq pt4 (polar pt1 (angtof "-90") l_wid))
(setq pt34 (polar pt1 (angtof "-90") (* l_wid 0.5)))
(setq pt_r1 (polar pt34 (angtof "180") r1))
(command "color" 1)
(command "PLINE" pt1 pt2 pt3 pt4 "c")
(command "color" 3)
(command "CIRCLE" pt_r2 r2)
(command "MIRROR" (entlast) "" pt34 pt_r1 "")
(command "color" 4)
(command "CIRCLE" pt_r1 r1)
(command "MIRROR" (entlast) "" pt12 pt_r2 "")
(command "color" "Bylayer")
(setvar "osmode" 15359)
(princ)
)
;;;*****矩形4圆相切 程序结束*****

有空我就来 发表于 2016-5-29 18:26:55

学习学习!谢谢

sfjlx 发表于 2016-2-14 21:11:55

学习学习!谢谢

水仙的错 发表于 2016-2-14 13:54:26

支持下,希望有更多好的程序

hbgsw 发表于 2015-11-10 15:28:16

看看源码情况。

czcxxx 发表于 2015-11-10 15:06:15

谢谢分享!!!

并州驴友 发表于 2015-11-9 18:32:39

楼主的好代码,受教了,回去好好研究研究!

lrd1861 发表于 2015-11-9 13:48:12

本帖最后由 lrd1861 于 2015-11-9 13:51 编辑

看看藏着啥楼主是不是藏错了

winerfjy 发表于 2015-11-9 11:52:00

看隐藏着什么

東洺Nile 发表于 2015-11-8 22:22:26

看看代碼 學習 研究
页: [1] 2
查看完整版本: 四个圆包围矩形且与矩形边相切