明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 415|回复: 6

根据两点直线画一个外偏矩形框

[复制链接]
发表于 2023-5-26 09:24 | 显示全部楼层 |阅读模式
40明经币
根据输入的两个点AB,自动绘制一pline矩形框,方向和AB点连成直线平行,矩形框厚度要求200,长度为直线AB+2*50。画完后从矩形框中心引出一条线再加一个输入文本框。,要求用lisp语言编写,40个币不清楚对应多少钱了,可商量。

最佳答案

查看完整内容

(defun c:test(/ an d1 d2 os p1 p2 p3 p4 p5 p6 p7 ) (setvar "cmdecho" 0) (defun ptmid(a b)(mapcar '(lambda(x y)(/(+ x y)2.0))a b)) (setq os(getvar "osmode")) (if(and(setq p1(getpoint "\n请指定起始点:"))(setq p2(getpoint p1 "请指定第二点:"))(>(setq d1(distance p1 p2))0)) (progn (setvar "osmode" 0) (setq d2(+ d1 100)an(angle p1 p2)p3(polar p2 an d2)p4(polar p3(+(* pi 1.5)an)200)p ...
发表于 2023-5-26 09:24 | 显示全部楼层
(defun c:test(/ an d1 d2 os p1 p2 p3 p4 p5 p6 p7 )
        (setvar "cmdecho" 0)
        (defun ptmid(a b)(mapcar '(lambda(x y)(/(+ x y)2.0))a b))
        (setq os(getvar "osmode"))
        (if(and(setq p1(getpoint "\n请指定起始点:"))(setq p2(getpoint p1 "请指定第二点:"))(>(setq d1(distance p1 p2))0))
                (progn
                        (setvar "osmode" 0)
                        (setq        d2(+ d1 100)an(angle p1 p2)p3(polar p2 an d2)p4(polar p3(+(* pi 1.5)an)200)p5(polar p4(angle p2 p1)d2))
                        (command ".pline" p2 p3 p4 p5 "c")
                        (if(setq p7(getpoint(setq p6(ptmid p2 p4)) "\n请指定线段终点"))
                                (command ".leader" p6 p7 "" "" "" "")
                        )
                )
        )
        (setvar "osmode" os)
        (prin1)
)
回复

使用道具 举报

 楼主| 发表于 2023-5-26 09:28 | 显示全部楼层
原本只有9个币,充值过了,再加100币
回复

使用道具 举报

发表于 2023-5-26 11:03 | 显示全部楼层
可以加QQ:269126750详聊,有些地方你可能说的不太清楚。
回复

使用道具 举报

发表于 2023-5-26 11:28 | 显示全部楼层
(defun c:tt5 (/ ang l p1 p2 p3 p4 p5 p6 pt_per)
(setq p1 (getpoint"\n选择点A:") p2 (getpoint p1"\n选择点B:") p3 (getpoint "\n选择方向点:") L  (+ (distance p1 p2) 100))       
(setq ang (angle p1 p2) p4 (polar p3 (+ ang (* 0.5 pi)) 1) pt_per (inters p1 p2 p3 p4 nil) ang (angle pt_per p3))       
(setq p5 (polar p1 ang L) p6 (polar p2 ang L))
(command "pline" "non" p1 "non" p2 "non" p6 "non" p5 "c" "")       
(command  "PEDIT" (entlast) "w" 200 "")
(command "LEADER" "non" (mapcar'*(mapcar'+ p1 p6)'(0.5 0.5 0.5)) pause)
(princ)               
)
回复

使用道具 举报

 楼主| 发表于 2023-5-26 16:03 | 显示全部楼层
xtjd 发表于 2023-5-26 11:56
(defun c:test(/ an d1 d2 os p1 p2 p3 p4 p5 p6 p7 )
        (setvar "cmdecho" 0)
        (defun ptmid(a b)(mapcar ...

大致能实现,就是矩形框位置有偏,加个微信zhouhq-6791吧,还要调整一下
回复

使用道具 举报

 楼主| 发表于 2023-5-26 16:04 | 显示全部楼层
start4444 发表于 2023-5-26 11:28
(defun c:tt5 (/ ang l p1 p2 p3 p4 p5 p6 pt_per)
(setq p1 (getpoint"\n选择点A:") p2 (getpoint p1"\n ...

测试了感觉实现功能稍差
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 09:41 , Processed in 0.206680 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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