明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: kzd2004

[源码] 获取封闭矩形顶点坐标

[复制链接]
发表于 2023-6-15 19:49:55 | 显示全部楼层
kzd2004 发表于 2023-6-15 08:08
大佬,提示输入的列表有缺陷,请保存lsp文件发给我,成分感谢!

你直接用TXT保存的? 那要保存成ANSI编码 最好还是复制到编辑器保存
 楼主| 发表于 2023-6-15 19:55:35 | 显示全部楼层
飞雪神光 发表于 2023-6-15 19:49
你直接用TXT保存的? 那要保存成ANSI编码 最好还是复制到编辑器保存

谢谢你的回复,感谢感谢!
发表于 2023-6-15 20:44:03 | 显示全部楼层
;;;获取曲线的顶点
(defun get_pline-vertexs (et / i v lst)
  (setq en (car (entsel)));;选择曲线并获取名称
  (setq et (vlax-ename->vla-object en));;将实体转换为vla对象
  (setq i 0);;计数器赋初值
  (while (setq v (vlax-curve-getpointatparam et (setq i (1+ i))));;沿曲线返回指定参数值处的点 。
    (setq lst (cons v lst))
  )
  (reverse lst)
)
;;;使用方法:
;;;在命令行输入get_pline-vertexs et)
发表于 2023-6-15 20:45:46 | 显示全部楼层
(get_pline-vertexs et)
 楼主| 发表于 2023-6-16 08:15:18 | 显示全部楼层
本帖最后由 kzd2004 于 2023-6-16 13:26 编辑
ocoipw 发表于 2023-6-15 20:45
(get_pline-vertexs et)

真心感谢你的无私回复,谢谢了 能不能这样啊

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-7-26 14:04:24 | 显示全部楼层

你好,代码很好,我是小白,请问这个用什么命令能调出来?能把这个直接改成画对角线吗?谢谢你了。
发表于 2023-7-26 14:46:48 | 显示全部楼层
kzd2004 发表于 2023-7-26 14:04
你好,代码很好,我是小白,请问这个用什么命令能调出来?能把这个直接改成画对角线吗?谢谢你了。

命令就是TT
  1. (defun c:tt (/ gr lmts loop p1 p2 p3 p4 pt s1 s2 s3 s4 screen ys yx zs zx)
  2.   (defun screen(/ c03 c08 c04 c05 c07 c06 c09 c01 c02);
  3.     (setq  
  4.       c03 (trans (getvar "viewctr") 1 2)
  5.       c08 (getvar "viewsize")
  6.       c04 (getvar "screensize")
  7.       c09 (/ (* c08 (car c04)) (cadr c04))
  8.       c01 (list (- (car c03) (* 0.5 c09)) (- (cadr c03) (* 0.5 c08)))
  9.       c02 (list (+ (car c03) (* 0.5 c09)) (+ (cadr c03) (* 0.5 c08)))
  10.       c01 (trans c01 2 1)
  11.       c02 (trans c02 2 1)
  12.     )
  13.     (list c01 c02)
  14.   )
  15.   (setq loop t)
  16.   (while loop
  17.     (setq gr (grread t 15 0))
  18.     (cond
  19.       ((= 5 (car gr))
  20.         (setq lmts (screen))
  21.         (setq pt (cadr gr))
  22.         (if(and
  23.              (setq S1 (ssget "F" (LIST pt (list (car pt) (cadadr lmts)))'((0 . "*line"))))
  24.              (setq S2 (ssget "F" (LIST pt (list (car pt) (cadar  lmts)))'((0 . "*line"))))
  25.              (setq S3 (ssget "F" (LIST pt (list (caar lmts) (cadr pt)))'((0 . "*line"))))
  26.              (setq S4 (ssget "F" (LIST pt (list (caadr lmts)(cadr pt)))'((0 . "*line"))))
  27.            )
  28.           (progn
  29.             (setq P1 (trans (cadr(nth 3 (car (ssnamex S1)))) 0 1));上
  30.             (setq P2 (trans (cadr(nth 3 (car (ssnamex S2)))) 0 1));下
  31.             (setq P3 (trans (cadr(nth 3 (car (ssnamex S3)))) 0 1));左
  32.             (setq P4 (trans (cadr(nth 3 (car (ssnamex S4)))) 0 1));右
  33.             (setq
  34.               ys(list (car p4) (cadr p1))
  35.               yx(list (car p4) (cadr p2))
  36.               zx(list (car p3) (cadr p2))
  37.               zs(list (car p3) (cadr p1))
  38.             )
  39.             (redraw)
  40.             (grdraw zx zs 4)
  41.             (grdraw zs ys 4)
  42.             (grdraw ys yx 4)
  43.             (grdraw zx yx 4)
  44.             (grdraw zx ys 190)
  45.             (grdraw zs yx 190)
  46.           )
  47.           (redraw)
  48.         )
  49.       )
  50.       ((= 3 (car gr))
  51.         (setq loop nil)
  52.                                 (redraw)
  53.                                 (entmake (list '(0 . "line")(cons 10 zx)(cons 11 ys)))
  54.                                 (entmake (list '(0 . "line")(cons 10 zs)(cons 11 yx)))
  55.       )
  56.     )
  57.   )
  58.   (princ)
  59. )
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-7-27 22:55:40 | 显示全部楼层

真诚的谢谢你啊!!!
 楼主| 发表于 2023-8-12 07:30:34 | 显示全部楼层
本帖最后由 kzd2004 于 2023-8-12 07:44 编辑

恳请大佬帮我改成这样的门开虚线,鼠标在左侧就是左开虚线,在右边就是右开虚线,谢谢你了。

本帖子中包含更多资源

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

x
发表于 2023-8-12 07:49:00 | 显示全部楼层
(defun c:tt ()
  "画矩形内部对角线"
  (while (setq p0 (getpoint "\n拾取矩形内部点<退出>: "))
    (bpoly p0)
    (setq s1 (entlast))
    (setq ptn (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget s1))
          ptn (mapcar 'cdr ptn)
    )
    (entdel s1)
    (command "line" "non" (car ptn) "non" (caddr ptn) "")
    (command "line" "non" (cadr ptn) "non" (cadddr ptn) "")
  )
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 09:12 , Processed in 1.751477 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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