baogeu88 发表于 2020-6-8 17:25:00

zgssd 发表于 2020-6-8 16:14
只是原捕捉设置都没有了

你这个在源码程序中自己修改一下就行

ylxn 发表于 2020-6-8 21:56:39

看起来效果不错哦

海盗曹 发表于 2020-6-11 12:06:44

好程序,学习一下

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,以任意角度画云线后,会影响到矩形命令的操作,导致绘制角度出错。
另外,常规情况下,大家 ...

非常感谢提出宝贵的意见

hhwjt 发表于 2020-8-19 18:32:53

谢谢分享好东西

xiehaoing 发表于 2020-8-20 09:52:27

感谢分享

依然小小鸟 发表于 2023-2-25 09:36:12

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

wangsr 发表于 2023-10-26 21:34:48

用过了好用,

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)
                                                       )       
        )
)
页: 1 [2]
查看完整版本: 随意角度自动比例修订云线