乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 97|回复: 16

[编程交流] 平分线并绘制垂线

[复制链接]

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-5 18:22:51 | 显示全部楼层 |阅读模式
正在寻找快速修复方法。我需要平分一条线,从测量线的中点画一条垂直线。如果可以动态完成这项工作,即可以在直线的任一侧绘制垂直线,并且可以绘制到任意长度,那将是非常棒的。
 
任何协助都将不胜感激。
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-5 18:27:32 | 显示全部楼层
在OSNAP中设置中点和垂直。打开动态输入。按F11切换“object snap trace”(对象捕捉跟踪)(我认为这在英文版本中就是它的名称,如果不查看屏幕左侧的底部项目并观察,你会看到一个图标打开和关闭,请确保它处于打开状态)。启动line命令并捕捉到线的中点,当您将光标移开时,您将得到一条虚线,您只需输入线的长度,就可以得到您想要的。
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 18:32:42 | 显示全部楼层
只要遵循泰克的指示,你就会成为一个非常快乐的露营者。
图中圈出的3个图标是Tyke所指的图标
它们是对象捕捉、对象捕捉跟踪和从左到右的动态输入。
 
可以单击鼠标左键打开或关闭它们,
也可以分别用F3、F11和F12来打开和关闭它们。
192251pgplm4gaml8y4ffl.jpg
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-5 18:35:56 | 显示全部楼层
谢谢Tyke,它工作得很好,但我正在寻找一个lisp例程,因为我有大量的线来绘制垂直线。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:41:28 | 显示全部楼层
使用此旧程序并单击中点:
 
  1. (defun c:per ( / *error* e o p )
  2.    (defun *error* ( m )
  3.        (if o (progn (setvar 'orthomode o) (command "_.ucs" "_p")))
  4.        (princ)
  5.    )
  6.    (if (and
  7.            (setq p (getpoint "\nSpecify first point: "))
  8.            (setq e (car (nentselp p)))
  9.        )
  10.        (progn
  11.            (setq p (trans p 1 0))
  12.            (command "_.ucs" "_ob" e)
  13.            (setq o (getvar 'orthomode))
  14.            (setvar 'orthomode 1)
  15.            (command "_.line" "_non" (trans p 0 1))
  16.            (while (< 0 (getvar 'cmdactive)) (command "\"))
  17.            (setvar 'orthomode o)
  18.            (command "_.ucs" "_p")
  19.        )
  20.    )
  21.    (princ)
  22. )
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-5 18:41:56 | 显示全部楼层
 
这就是李。打开动态输入后,你能输入行长吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:46:21 | 显示全部楼层
或者,
 
  1. (defun c:per ( / e p q )
  2.    (if (setq e (ssget "_+.:E:S" '((0 . "LINE"))))
  3.        (progn
  4.            (setq e (entget (ssname e 0))
  5.                  p (trans (cdr (assoc 10 e)) 0 1)
  6.                  q (trans (cdr (assoc 11 e)) 0 1)
  7.            )
  8.            (vl-cmdf "_.line" "_non"
  9.                (mapcar '(lambda ( a b ) (/ (+ a b) 2.0)) p q)
  10.                (strcat "<" (angtos (+ (angle p q) (/ pi 2.0))))
  11.                "\" ""
  12.            )
  13.        )
  14.    )
  15.    (princ)
  16. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:51:20 | 显示全部楼层
 
Tharwat尝试得很好,但不完全是:
 
 
请考虑以下情况:
[code](defunc:test(/a b d e g m p q)(ifsetqe(ssget'((0.“LINE”))(setqe(entget)(ssr]名称[color]e 0)p(transcdrassoc10 e))0 1)q(transcdrassoc11 e))0 1)m([color=BLUE mapcar'([color=BLUE lambda)[color](a b)(+a b)2.0))p q)a(LAMBER](+a(/pi2.0))(而[=5(carsetqg(grreadt13.0))(redraw)(setq(distance[[color]m g)q(polar[[color]m b(if[[color](
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-5 18:54:32 | 显示全部楼层
谢谢李的更正,它非常准确。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:00:13 | 显示全部楼层
很好,谢谢。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 20:01 , Processed in 0.470833 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表