明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1845|回复: 14

[提问] 求助: 尺寸线等分辅助线 不能重复

[复制链接]
发表于 2020-1-10 16:05:23 | 显示全部楼层 |阅读模式
先说明一下我的思路,由于工作中经常需要将一段折线在x轴的投影进行等分,需要写出以下命令,但是发现是一条竖线画了n遍,而不是画了n条线,查询pt0时,是最后一个需要的点

在说明一下我的变量,pts是起点,pte是终点,由于我只需要x轴坐标,所以xy坐标不做区分
pts至pte的长度为leng,每一小段的长度为0leng,xline的参数选择v,点的坐标选用(a/n+起点)的写法
用repeat和while都不行,请各位帮忙看看是啥原因,谢谢啦

(defun c:divide_dbe()
        (setvar "cmdecho" 0)
        (setq en (entsel "请选择等分的DBE尺寸:"))
        (setq n (getint "\n请输入分段数量:"))
        (setq en_data (entget (car en)))
        (setq pts (assoc 13 en_data))
        (setq ptsx (cadr pts))
        (setq pte (assoc 14 en_data))
        (setq ptex (cadr pte))
        (setq a (- n 1))
        (while a
                (setq leng (- ptex ptsx))
                (setq 0leng (/ leng n))
                (setq pt0x (+ ptsx (* a 0leng)))
                (setq pt0 (list pt0x 500))
                (setq pt0a (list pt0x 1000))
                (command "xline" "v" pt0 pt0a)
                (setq a (- a 1))
        )
        (prin1)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2020-1-13 10:05:45 | 显示全部楼层
根据你的小插件该的小程序!还挺好用的!

(defun c:tt4(/ pt1 pt2 n )
        (setvar "cmdecho" 0)
        (setq pt1 (getpoint "\n 输入第一点:" ))
        (setq pt2 (getpoint pt1 "\n 输入第一点:" ))
              (setq n (getint "\n请输入分段数量:"))
              (setq leng (distance pt1 pt2))
        (setq 0leng (/ leng n))                                
        (setq a (- n 1))
        (repeat a
                (setq pt0 (polar pt1 (angle pt1 pt2) 0leng))
                (command "xline" "v" "non" pt0 "")
                (setq pt1 pt0)
        )
        (prin1)
)

点评

赞一个!  发表于 2020-1-13 10:26
发表于 2020-1-10 18:02:16 | 显示全部楼层
提取点代码写错了

(defun c:tt5()
        (setvar "cmdecho" 0)
        (setq en (entsel "请选择等分的DBE尺寸:"))
        (setq n (getint "\n请输入分段数量:"))
        (setq en_data (entget (car en)))
        (setq pts (cdr (assoc 10 en_data)))
        (setq pte (cdr (assoc 14 en_data)))
        (setq leng (cdr (assoc 42 en_data)))
        (setq 0leng (/ leng n) ang (+ (* 0.5 pi) (angle pts pte)))
        (setq a (- n 1))
        (repeat a
                (setq pt0 (polar pts  ang  0leng))
                (command "xline" "v" "non" pt0 "")
                (setq pts pt0)
        )
        (prin1)
)
 楼主| 发表于 2020-1-13 09:25:02 | 显示全部楼层
start4444 发表于 2020-1-10 18:02
提取点代码写错了

(defun c:tt5()

谢谢,我明白了,是这句话末尾少了个“”
对了,问一下“non”是啥意思呢,不用两个点了吗

(command "xline" "v" "non" pt0 "")
发表于 2020-1-13 10:00:48 | 显示全部楼层
grantto19 发表于 2020-1-13 09:25
谢谢,我明白了,是这句话末尾少了个“”
对了,问一下“non”是啥意思呢,不用两个点了吗

“non” 是暂时取消捕捉,xline 命令选v之后就一点就行,选h水平的一样
 楼主| 发表于 2020-1-13 10:20:41 | 显示全部楼层
start4444 发表于 2020-1-13 10:00
“non” 是暂时取消捕捉,xline 命令选v之后就一点就行,选h水平的一样

明白,谢谢啦
 楼主| 发表于 2020-1-13 10:24:57 | 显示全部楼层
cq4920 发表于 2020-1-13 10:05
根据你的小插件该的小程序!还挺好用的!

(defun c:tt4(/ pt1 pt2 n )

好,谢谢啦,我看大家用polar比笛卡尔坐标系用的多,是不是极坐标在绘图时更简洁还是其他的支持命令多呢

点评

极坐标算法实际应用起来比较方便,比如求45°方向上已知距离的点,如果用xy坐标就比较麻烦了. 102918348 看看加这个群,里面大神一堆堆的,他们都少上论坛  发表于 2020-1-13 13:56
发表于 2020-1-13 10:51:23 | 显示全部楼层
grantto19 发表于 2020-1-13 10:24
好,谢谢啦,我看大家用polar比笛卡尔坐标系用的多,是不是极坐标在绘图时更简洁还是其他的支持命令多呢

不懂,我刚会一丢丢的基础!
 楼主| 发表于 2020-1-13 11:21:13 | 显示全部楼层
cq4920 发表于 2020-1-13 10:51
不懂,我刚会一丢丢的基础!

嗯,我也是刚学,咱加油吧,好像论坛浏览量都小了,那个qq群也加不进去,有问题咱多讨论多学习吧,我微信就是grantto19 qq是1073740488 小富,欢迎互加
 楼主| 发表于 2020-1-13 11:26:02 | 显示全部楼层
start4444 发表于 2020-1-13 10:00
“non” 是暂时取消捕捉,xline 命令选v之后就一点就行,选h水平的一样

兄弟,有机会咱也互加一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 11:44 , Processed in 0.204882 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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