明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2333|回复: 12

[已解答] 怎样获得块内的直线

[复制链接]
发表于 2013-7-3 08:45:11 | 显示全部楼层 |阅读模式
我选中一条直线,若这条直线是在块内的直线,怎么样取出这条直线的端点坐标


谢谢
发表于 2013-7-3 08:51:58 | 显示全部楼层
用nentsel应该就能行了吧,可以自己查阅下这个函数
发表于 2013-7-3 09:22:00 | 显示全部楼层
遍历块内的对象,获取图元名,然后获取坐标点
 楼主| 发表于 2013-7-3 09:38:34 | 显示全部楼层
阿霸jun 发表于 2013-7-3 09:22
遍历块内的对象,获取图元名,然后获取坐标点

怎样遍历?
发表于 2013-7-3 09:53:55 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (and
  3.         (setq e (nentselp "\n选择块内直线:"))
  4.         (= "LINE" (cdr (assoc 0 (setq el (entget (car e))))))
  5.         )
  6.     (progn
  7.       (setq p0 (cdr (assoc 10 el))
  8.             p1 (cdr (assoc 11 el))
  9.             )
  10.       (if (cddr e)
  11.         (progn
  12.           (setq m (caddr e))
  13.           (setq p0 (MXP m p0)
  14.                 p1 (MXP m p1)
  15.                 )
  16.           )
  17.         )
  18.       (grdraw (trans p0 0 1) (trans p1 0 1) 1)
  19.       )
  20.     )
  21.   
  22.   )
  23. (defun mxv (m v)
  24.   (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)
  25. )
  26. (defun mxp (m p)
  27.   (reverse (cdr (reverse (mxv m (append p '(1.0))))))
  28. )
 楼主| 发表于 2013-7-3 11:09:46 | 显示全部楼层
Gu_xl 发表于 2013-7-3 09:53

请问,cddr是个什么函数
发表于 2013-7-3 11:27:37 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-7-3 11:29 编辑
54256 发表于 2013-7-3 11:09
请问,cddr是个什么函数

(cddr lst) = (cdr (cdr list))
car、 cdr 可以任意组合,最多四层,操作顺序是自右向左!
cadr = (car (cdr lst))
组合诸如:cadddr/cdaadr/cadr/cdar ...
 楼主| 发表于 2013-7-3 11:59:46 | 显示全部楼层
Gu_xl 发表于 2013-7-3 11:27
(cddr lst) = (cdr (cdr list))
car、 cdr 可以任意组合,最多四层,操作顺序是自右向左!
cadr = (car ...

谢谢高手,长见识了
 楼主| 发表于 2013-7-3 12:18:16 | 显示全部楼层
Gu_xl 发表于 2013-7-3 09:53

(setq e (nentselp "\n选择块内直线:"))
这句话我的程序里没有出现的,我是通过SSGET获得对象的,
我的希望是,有这么一个子函数,输入是对象,若这个对象是块中的直线
则输出直线的2个端点

谢谢
发表于 2013-7-3 12:34:26 | 显示全部楼层
54256 发表于 2013-7-3 12:18
(setq e (nentselp "\n选择块内直线:"))
这句话我的程序里没有出现的,我是通过SSGET获得对象的,
我的 ...

这种想法是行不通的!你没有理解块定义对象和块的关系!ssget不可能获得块中的对象!
通过Insert块对象可以构造nentselp返回的矩阵,请在论坛搜索相关知识!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 09:32 , Processed in 0.159245 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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