找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: spp_wall

[求助] 求一个 纬地道路横断面 文字避让处理 的程序

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-26 21:24:10 | 显示全部楼层
spp_wall 发表于 2013-10-26 20:38
这次 用了命令  没有反应呢!!!!

而且  我发现  用 ObjectID  有的左边框选到右边没反应  右边框选 ...

实体顺序问题,这个图中第一个是 dmx ,你试试下面的代码,就加了个 Reverse


  1. (defun c:tt (/ XD::List:DivedBy ss mat0 vmat lmat rmat)
  2.   (defun XD::List:DivedBy (lst / ll nl)
  3.     (while lst
  4.       (if (/= (strcase (car (xdrx_getpropertyvalue (car lst) "Layer")))
  5.        "DMX"
  6.    )
  7. (setq ll (cons (car lst) ll))
  8. (setq nl (cons (reverse (cons (car lst) ll)) nl)
  9.        ll nil
  10. )
  11.       )
  12.       (setq lst (cdr lst))
  13.     )
  14.     (reverse nl)
  15.   )
  16.   (if (setq ss (ssget '((0 . "Text,*polyline,line") ;_实体类型
  17.    (8 . "shuju,zhix,dmx,lc,sjx,标高") ;_图层
  18.          )
  19.         ) ;_过滤出断面上的字 线
  20.       )
  21.     (progn
  22.       (setq mat0 (xdrx_matrix_identity 3) ;_基本矩阵
  23.      vmat (xdrx_matrix_settranslation mat0 '(0. 1.5 0.)) ;_向上偏移矩阵
  24.      lmat (xdrx_matrix_settranslation mat0 '(-6.0 0. 0.)) ;_向右偏移矩阵
  25.      rmat (xdrx_matrix_settranslation mat0 '(6. 0. 0.)) ;_向左偏移矩阵
  26.       )
  27.       (mapcar
  28. '(lambda (x)
  29.     (mapcar '(lambda (a)
  30.         (xdrx_entity_transform a vmat) ;_矩阵变换,就是移动
  31.       )
  32.      (list (nth 1 x) (nth 2 x) (nth 7 x) (nth 8 x)) ;_向上偏移的实体
  33.     )
  34.     (cond
  35.       ((= (length x) 34) ;_两侧有放坡的是 34
  36.        (xdrx_entity_transform (nth 15 x) lmat) ;_左侧
  37.        (xdrx_entity_transform (nth 21 x) rmat) ;_右侧
  38.       )
  39.       ((= (length x) 33) ;_单侧放坡是 33
  40.        (xdrx_entity_transform (nth 14 x) lmat)
  41.        (xdrx_entity_transform (nth 20 x) rmat)
  42.       )
  43.       ((= (length x) 32) ;_两侧都不放坡是 32
  44.        (xdrx_entity_transform (nth 13 x) lmat)
  45.        (xdrx_entity_transform (nth 19 x) rmat)
  46.       )
  47.       (t)
  48.     )
  49.   )
  50. (XD::List:DivedBy
  51.    (reverse (vl-sort
  52.        (xdrx_pickset->ents ss) ;_选择集转为实体列表
  53.        '(lambda (e1 e2)
  54.    (< (cdr (assoc 5 (entget e1))) ;_ API 有 Bug ,用 Entget
  55.       (cdr (assoc 5 (entget e2)))
  56.    )
  57.         )
  58.      ) ;_按句柄排序,即实体生成顺序,
  59.    );_这个图第一个实体是 dmx
  60. )
  61.       )
  62.     )
  63.   )
  64.   (princ)
  65. )

点评

这次没有问题了 !!!!!!谢谢 我也学到了点东西!!!! 以后程序出的东西 都可以用这些方法了 ! 这里用里晓东的函数 在哪里能查到这些函数呢 如果要想通用的话 应该怎么做呢!  详情 回复 发表于 2013-10-26 21:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 127个

财富等级: 日进斗金

 楼主| 发表于 2013-10-26 21:35:46 | 显示全部楼层
st788796 发表于 2013-10-26 21:24
实体顺序问题,这个图中第一个是 dmx ,你试试下面的代码,就加了个 Reverse

这次没有问题了 !!!!!!谢谢   
我也学到了点东西!!!!

以后程序出的东西  都可以用这些方法了 !

这里用里晓东的函数  在哪里能查到这些函数呢  

如果要想通用的话  应该怎么做呢!

点评

学会了方法以后就可以触类旁通,这个不好说通用 去下载 API函数手册即可,这样的应用根据实际情况用 API 根据需求随时写  详情 回复 发表于 2013-10-26 21:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-26 21:48:18 | 显示全部楼层
spp_wall 发表于 2013-10-26 21:35
这次没有问题了 !!!!!!谢谢   
我也学到了点东西!!!!

学会了方法以后就可以触类旁通,这个不好说通用

去下载 API函数手册即可,这样的应用根据实际情况用 API 根据需求随时写

点评

不知道这个程序那些是晓东的函数呢!!方便的话 告诉下我 谢谢!  详情 回复 发表于 2013-10-26 22:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 127个

财富等级: 日进斗金

 楼主| 发表于 2013-10-26 22:16:04 | 显示全部楼层
st788796 发表于 2013-10-26 21:48
学会了方法以后就可以触类旁通,这个不好说通用

去下载 API函数手册即可,这样的应用根据实际情况用 A ...

不知道这个程序那些是晓东的函数呢!!方便的话 告诉下我 谢谢!

点评

ST抢答对了, 这些函数在手册里面都有详细的用法说明的。多看看手册。  详情 回复 发表于 2013-10-26 22:43
XDRX_ 开头的是 ARX 定义函数, XD:: 开头的开源 Lisp 函数  详情 回复 发表于 2013-10-26 22:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-26 22:32:25 | 显示全部楼层
spp_wall 发表于 2013-10-26 22:16
不知道这个程序那些是晓东的函数呢!!方便的话 告诉下我 谢谢!

XDRX_ 开头的是 ARX 定义函数, XD::  开头的开源 Lisp 函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-26 22:43:24 | 显示全部楼层
spp_wall 发表于 2013-10-26 22:16
不知道这个程序那些是晓东的函数呢!!方便的话 告诉下我 谢谢!

ST抢答对了, 这些函数在手册里面都有详细的用法说明的。多看看手册。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-20 07:53 , Processed in 0.169097 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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