baogeu88 发表于 2020-6-4 14:19:25

随意角度自动比例修订云线

本帖最后由 baogeu88 于 2020-6-11 18:40 编辑

修订云线是大家比较常见的一个功能,有时候根据不同专业的作图需要,修订云线往往需要需要根据图纸不停地变化角度,而且云线比例也需要根据我们的选择范围进行调整。为了方便工作,最好能把这几个功能集成起来,也能方便大家的绘图。

感谢14#楼的建议!增加默认水平方向和修复会影响到矩形的角度的bug。详见v1.1版本。

lml2023 发表于 2023-11-29 09:51:03

修改了一下
(1)加了图层
(2)把其他改为q
;;任意云线TY
(defun c:TY(/ x0 y0 x1 y1)
        (setvar "cmdecho" 0 )
(setq oldlayer (getvar "clayer"));;加层
(command-S "_layer" "n" "0-100-修改云线" "c" "6" "0-100-修改云线""N" "0-100-修改云线" "") ;;加层,如果"N"后加“P”则为不打印图层
(setvar "clayer" "0-100-修改云线");;加层
(vl-load-com)
       
        ------------------------
        ;设置水平方向默认值
       
        (setq fx (getstring "\n输入修订云线偏转方向(默认水平-y;其他旋转角度-q)<空格-y>:"))
       
        (if (= fx "")
                (setq fx "y")                       
        )
        (princ fx)
        ----------------------
       
        (SetQ      
                p0 (GetPoint "\n 指定第一个修订角点:")                        
        )
       
        ;显示方向,方便查看
        (if (= fx "y")
                (Command "rectang" p0 "r"0pause )
                (progn
                        (princ "\n指定角度方向")
                        (command "line" p0 pause "")
                        (setq xl (entlast))
                        (setq xdata (entget xl))
                        (setq pend (cdr (assoc 11 xdata)))
                        (grdraw p0 pend 2)       
                        (setq angl (bao-rtd (angle p0 pend)))
                        (entdel xl);显示完成,删除
                        (princ "\n点选云线框角点")
                        (Command "rectang" p0 "r"anglpause )
                )
        )
        -------------------------------------------------       
        ;设定比例弧长
        (setq xx (entlast))
        (setq edata (entget xx))
       
(setq plst (bao_get_vertexsxx)) ;获取矩形四个顶点坐标
        (setq pp1 (car plst)
                pp2 (cadr plst)
                pp3 (caddr plst)
                pp4 (cadddr plst)               
        )
        (setq dis1 (distance pp1 pp2)
                dis2 (distance pp2 pp3)
        )
       
        (if(<= dis1 dis2)
                (SetQ alenth (/ dis1 8))
                (SetQ alenth (/ dis2 8))               
        )
       
        (Command "revcloud" "a" alenth alenth "s" "c" "o" "l" "")
       
        -------------------------
        ;返回矩形默认水平作图方向
        (Command "rectang" p0 "r"0pp3 )
        (setq xx (entlast))
        (entdel xx)
        ------------------------------
        (setvar "cmdecho" 1)
        (princ)
)
;;弧度转换为度
(defun bao-rtd (ang) (/ (* ang 180.0) pi))
;;度转换为弧度
(defun bao-dtr (ang) (* (/ ang 180.0) pi))

;;获取矩形顶点
(defun bao_get_vertexs (en)
        (mapcar 'cdr (vl-remove-if-not
                                                               '(lambda (x) (= (car x) 10))
                                                               (entget en)
                                                       )       
        )
)

nyistjz 发表于 2020-6-11 15:25:12

本帖最后由 nyistjz 于 2020-6-11 15:27 编辑

发现有个BUG,以任意角度画云线后,会影响到矩形命令的操作,导致绘制角度出错。
另外,常规情况下,大家用水平向布置的情况较多,是否可以默认为水平向,有选择后,才进行任意角度的绘制?

baogeu88 发表于 2020-6-11 18:32:54

nyistjz 发表于 2020-6-11 15:25
发现有个BUG,以任意角度画云线后,会影响到矩形命令的操作,导致绘制角度出错。
另外,常规情况下,大家 ...

非常感谢提出宝贵的意见

czb203 发表于 2020-6-4 16:23:40

非常不错,支持楼主再接再厉~~~

fxlt619 发表于 2020-6-4 16:48:24

能加上引线+文字说明就好了

快乐贝贝 发表于 2020-6-4 17:56:55

能否加一个备注引线呢?
这个备注可以进行设置的
这样就好了

yoyoho 发表于 2020-6-4 18:38:47

谢谢 !baogeu88 分享程序!!!!

1028695446 发表于 2020-6-4 22:49:03

本帖最后由 1028695446 于 2020-6-5 20:14 编辑

我也来发一个哦,不过是动态的,把2个程序组合下就是了







669423907 发表于 2020-6-5 08:56:14

谢谢楼主分享好程序

石井鱼 发表于 2020-6-5 10:02:16

不错的程序,想法很好

932276639 发表于 2020-6-7 14:41:25


不错的程序,想法很好

zgssd 发表于 2020-6-8 16:14:21

只是原捕捉设置都没有了
页: [1] 2
查看完整版本: 随意角度自动比例修订云线