184235521 发表于 2020-12-7 15:29:49

求助CAD三点画L型

因为工作中经常需要画L型图形,我一般都是用PL线定距输入第一段距离再输入另外一段距离(角度可以默认90度也可以其他角度),然后偏移一定宽度(距离可以自定义),再然后两端画直线封口,最后选取所有线段合并。操作比较繁琐。各路大神有没有更简洁的方法去实现。

凨仴黯夜 发表于 2020-12-11 00:08:04

封口勾上就把端头连起来了

yshf 发表于 2020-12-9 22:53:18

(defun c:HLX()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(while (and (setq D1 (getdist "\n第1段距离:"))
            (setq D2 (getdist "\n第2段距离:"))
            (setq kd (getdist "\n宽度:"))
            (setq p1 (getpoint "\n指定第1点:"))
         )
   (if (= (setq jd (getangle "\n角度<90>:")) nil)
         (setq jd (* 0.5 pi))
   )
   (setq p2 (mapcar '+ p1 (list 0 D1 0)))
   (setq ang (+ (angle p2 p1) jd))
   (setq p3 (polar p2 ang D2))
   (setq p6 (mapcar '+ p1 (list kd 0 0)))
   (setq p4 (polar p3 (- ang (* 0.5 pi)) kd))
   (setq p51 (polar p4 ang -50000))
   (setq p52 (mapcar '+ p6 (list 0 50000 0)))
   (if (setq p5 (inters p6 p52 p4 p51))
         (command "_pline" p1 p2 p3 p4 p5 p6 "c")
   )
)
(princ)
)

184235521 发表于 2020-12-10 14:42:19

yshf 发表于 2020-12-9 22:53
(defun c:HLX()
(setvar "cmdecho" 0)
(setvar "osmode" 0)


谢谢长老,基本功能已经实现,但是操作步骤和用ML或者PL画似乎差不多。如果点1输入距离再点2输入距离(方向跟随鼠标)角度和宽度设置为默认值90和60就行,那样就完美了。

tiancao100 发表于 2020-12-7 21:21:37

类似功能,单线PL线转闭合的PL钱

e2002 发表于 2020-12-7 22:56:34

我一般用动态块处理这个,划线多费劲啊

l982414603 发表于 2020-12-8 08:01:46

184235521 发表于 2020-12-8 08:54:49

tiancao100 发表于 2020-12-7 21:21
类似功能,单线PL线转闭合的PL钱

你这是居中200,有没有偏一边的。最好还是快捷键比较好。工具箱还是有点麻烦。

184235521 发表于 2020-12-8 08:57:26

e2002 发表于 2020-12-7 22:56
我一般用动态块处理这个,划线多费劲啊

有没有插入目录块的代码(是否可以插入动态块?)。其实图形的形态比较多样,动态块是个好办法。

rocking2008 发表于 2020-12-8 13:22:05

这个改4点操作应该更合理一些,第4点可以指定方向和宽厚

liunian0524 发表于 2020-12-8 13:43:47

用MLINE 双线画呢

184235521 发表于 2020-12-8 18:13:47

本帖最后由 184235521 于 2020-12-8 18:21 编辑

liunian0524 发表于 2020-12-8 13:43
用MLINE 双线画呢
双线画就可以用CAD默认的参数设置宽度和方向了,但是端头没有连起来,所以需要解决的就是怎么样把端头的连起来。

184235521 发表于 2020-12-8 18:18:11

rocking2008 发表于 2020-12-8 13:22
这个改4点操作应该更合理一些,第4点可以指定方向和宽厚

宽厚是可以应该先设置,后面输入两端距离。方向可以跟随光标方向。
页: [1] 2
查看完整版本: 求助CAD三点画L型