明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 947|回复: 13

[基础] 如何在原线条上居中生成可以输入任意长度的线条?

[复制链接]
发表于 2024-2-23 14:35:52 | 显示全部楼层 |阅读模式
如图,其中10可以自定义输入

本帖子中包含更多资源

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

x
发表于 2024-2-23 22:35:30 | 显示全部楼层
(defun c:tt ()
  (setq en  (car (entsel "\n选择line: "))
        ll  (getreal "\n输入线长: ")
        ent (entget en)
        pt1 (cdr (assoc 10 ent))
        pt2 (cdr (assoc 11 ent))
        rad (angle pt1 pt2)
        p0  (mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
        p1  (polar p0 rad (* ll -0.5))
        p2  (polar p0 rad (* ll 0.5))
  )
  (command "line" "non" p1 "non" p2 "")
  (princ)
)
发表于 2024-2-23 16:11:01 | 显示全部楼层
多抄别人的代码就会了
  1. (defun c:tt  (\ dis en ent l pt1 pt2)
  2.     (setq en (car (entsel "\n选择line:"))
  3.           l(getreal"\n输入线长:")
  4.           ent(entget en)
  5.           pt1(cdr(assoc 10 ent))
  6.           pt2(cdr(assoc 11 ent))
  7.           dis(distance pt1 pt2)
  8.           l(* 0.5(- l dis))
  9.           en (entmakex ent))
  10.     (command "lengthen" "de" l (list en pt1) (list en pt2) ""))
发表于 2024-2-23 22:49:42 来自手机 | 显示全部楼层
本帖最后由 x_s_s_1 于 2024-2-23 23:00 编辑
277283904 发表于 2024-2-23 21:31
测试过,不起作用,没反应的呢
(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)
  1. (defun c:tt  (/ dis en ent l pt1 pt2)
  2.   (setq  en  (car (entsel "\n选择line:"))
  3.   l   (getreal "\n输入线长:")
  4.   ent (entget en)
  5.   pt1 (cdr (assoc 10 ent))
  6.   pt2 (cdr (assoc 11 ent))
  7.   dis (distance pt1 pt2)
  8.   l   (* 0.5 (- l dis))
  9.   en  (entmakex ent))
  10.   (command "lengthen" "de" l (list en pt1) (list en pt2) ""))


本帖子中包含更多资源

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

x
发表于 2024-2-23 14:46:16 | 显示全部楼层
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点
 楼主| 发表于 2024-2-23 15:43:09 | 显示全部楼层
飞雪神光 发表于 2024-2-23 14:46
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点

不会写啊大佬
发表于 2024-2-23 16:41:32 来自手机 | 显示全部楼层
感谢高手代码
 楼主| 发表于 2024-2-23 21:31:22 | 显示全部楼层
夏生生 发表于 2024-2-23 16:11
多抄别人的代码就会了

测试过,不起作用,没反应的呢
 楼主| 发表于 2024-2-24 17:35:01 | 显示全部楼层
xyp1964 发表于 2024-2-23 22:35
(defun c:tt ()
  (setq en  (car (entsel "\n选择line: "))
        ll  (getreal "\n输入线长: ")

不好意思!可以在原线里生成吗,直接替换掉
 楼主| 发表于 2024-2-24 17:40:03 | 显示全部楼层
x_s_s_1 发表于 2024-2-23 22:49
(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)

不好意思!可以在原线里生成吗,直接替换掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:39 , Processed in 0.175263 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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