找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: q3_2006

[求助] 第一次发帖,有关组合物!

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 15:29:04 | 显示全部楼层
q3_2006 发表于 2013-8-18 15:17
两行字我特意用不同的对齐方式,想看是如何解决的!

你可以不同管对齐方式,分别算出两个文字的包围框,用包围框去找应该写的位置。
比如你找到上面文字的包围框,找到左下点,然后求这个点和下面文字包围框的下边的垂直交点,然后把上面文字移动到求的交点即可了。

整体文字移动,不用考虑对齐。

点评

还是要我自己来呀,还版主代写下吧,有困难才向您求助的,谢谢啰!  详情 回复 发表于 2013-8-18 15:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 15:36:21 | 显示全部楼层
newer 发表于 2013-8-18 15:29
你可以不同管对齐方式,分别算出两个文字的包围框,用包围框去找应该写的位置。
比如你找到上面文字的包 ...

还是要我自己来呀,还版主代写下吧,有困难才向您求助的,谢谢啰!

点评

我在给你说思路呢,思路你清楚了吗? [attachimg]4929[/attachimg] XD::Geom:GetPerpPlaneWithLine 这个函数,函数发布里面有,晓东通用LISP函数库也有。  详情 回复 发表于 2013-8-18 16:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-18 16:16:40 来自手机 | 显示全部楼层

拿随意画的东西编程,你也忒不负责任了!来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 16:17:33 | 显示全部楼层
q3_2006 发表于 2013-8-18 15:36
还是要我自己来呀,还版主代写下吧,有困难才向您求助的,谢谢啰!

我在给你说思路呢,思路你清楚了吗?

xdtb_txtchange.gif
XD::Geom:GetPerpPlaneWithLine  这个函数,函数发布里面有,晓东通用LISP函数库也有。

  1. (defun c:tt()
  2.    (if (and (setq e1 (car (xdrx_entsel "\n第一个文字<退出>:" '((0 . "text")))))
  3.             (setq e2 (car (xdrx_entsel "\n第二个文字<退出>:" '((0 . "text")))))
  4.        )
  5.      (progn
  6.         (setq box1 (xdrx_entity_box e1) ;;第一个文字盒子
  7.               box2 (xdrx_entity_box e2) ;;第二个文字盒子
  8.               pbox1_1 (car box1)        ;;第一个文字左下点
  9.               pbox2_1 (car box2)        ;;下面两点是第二个盒子的底边
  10.               pbox2_2 (cadr box2)
  11.               normal (xdrx_text_normal e1);;文字实体的平面的法线
  12.               perpPlane (XD::Geom:GetPerpPlaneWithLine pbox2_1 pbox2_2 normal) ;;过第二个盒子底边垂直于文字平面的 垂平面(你也可以用其他方法,比如求第一个盒子左下点和这两个点的最近点)
  13.               int (xdrx_point_orthoProject pbox1_1 perpPlane);;第一个盒子左下点向上面的垂平面正交投影
  14.               mat0 (xdrx_matrix_identity 3);;单位矩阵
  15.               mat1 (xdrx_matrix_setTranslation mat0 (mapcar '- int pbox1_1));;第一个文字平移到第二个文字(底边对齐)的平移矩阵
  16.               mat2 (xdrx_matrix_inverse mat1);;上面矩阵的逆矩阵,用来作用下面的文字到第一个实体的底边
  17.         )
  18.         (xdrx_entity_transform e1 mat1);;矩阵平移
  19.         (xdrx_entity_transform e2 mat2);;矩阵平移
  20.      )
  21.    )
  22.    (princ)
  23. )



点评

no function definition: XDRX_TEXT_NORMAL  详情 回复 发表于 2013-8-18 16:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 16:31:28 | 显示全部楼层
newer 发表于 2013-8-18 16:17
我在给你说思路呢,思路你清楚了吗?

no function definition: XDRX_TEXT_NORMAL

点评

加注解基本能看明白!这个位置交换院长的9点坐标函数也能做到,我已经会了!  详情 回复 发表于 2013-8-18 16:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 16:34:21 | 显示全部楼层
更新后好了!

点评

API 和通用LISP函数库,看到更新就更新啊,那可是宝库啊。 你看看上面的程序,你不用了解entget实体的数据,对齐啊是什么,就按照你在ACAD手工操作的来,API就给你模拟你的手工到程序。你手工移动这两实体,无外乎  详情 回复 发表于 2013-8-18 16:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 16:41:06 | 显示全部楼层

API 和通用LISP函数库,看到更新就更新啊,那可是宝库啊。
你看看上面的程序,你不用了解entget实体的数据,对齐啊是什么,就按照你在ACAD手工操作的来,API就给你模拟你的手工到程序。你手工移动这两实体,无外乎是做辅助线,然后移动,垂直捕捉什么的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 16:43:17 | 显示全部楼层
q3_2006 发表于 2013-8-18 16:31
no function definition: XDRX_TEXT_NORMAL

加注解基本能看明白!这个位置交换院长的9点坐标函数也能做到,我已经会了!

点评

那你改下上面的程序, 上面程序是底边对齐,当上面文字和下面文字不等高的适合,用上面的程序距离中间的线位置就不对了,你试试看看改下上面的程序, 让两个文字交换后,不管文字多高,上面文字底边距离线和下面文字  详情 回复 发表于 2013-8-18 16:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 16:45:35 | 显示全部楼层
那批量原位缩放呢,这个我也需要指导,拜托版主!

点评

一个问题一个问题消化,你先把我上面的帖子的自己做出来,再接着学缩放。 做出来自己做个动画贴论坛。  详情 回复 发表于 2013-8-18 16:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 16:49:24 | 显示全部楼层
本帖最后由 newer 于 2013-8-18 16:51 编辑
q3_2006 发表于 2013-8-18 16:43
加注解基本能看明白!这个位置交换院长的9点坐标函数也能做到,我已经会了!

那你改下上面的程序, 上面程序是底边对齐,当上面文字和下面文字不等高的时候,用上面的程序距离中间的线位置就不对了,你试试看看改下上面的程序, 让两个文字交换后,不管文字多高,上面文字底边距离线和下面文字距离线的间距要不变,你看看怎么改?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 16:50:38 | 显示全部楼层
q3_2006 发表于 2013-8-18 16:45
那批量原位缩放呢,这个我也需要指导,拜托版主!

一个问题一个问题消化,你先把我上面的帖子的自己做出来,再接着学缩放。

做出来自己做个动画贴论坛。

点评

看别人求助怎么没这么麻烦?为什么要考我  详情 回复 发表于 2013-8-18 17:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 17:00:01 | 显示全部楼层
本帖最后由 q3_2006 于 2013-8-18 17:02 编辑

看别人求助怎么没这么麻烦?为什么要考我:'(
(defun C:hh (/ a b a1 b1)
  (setq a (entsel "\n选择第一个文本"))
  (setq b (entsel "\n选择第二个文本"))
  (setq a1 (cdr (assoc 10 (entget (car a)))))
  (setq b1 (cdr (assoc 10 (entget (car b)))))
(command "move" a "" a1 b1)
(command "move" b "" b1 a1)
(princ)
)  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 17:01:05 | 显示全部楼层
本帖最后由 q3_2006 于 2013-8-18 17:06 编辑

9点坐标法,改成正中点最OK
(defun c:tt ()
  (if (and (setq s1 (car (entsel "\n选择第1个文本: ")))
           (setq s2 (car (entsel "\n选择第2个文本: ")))
           (not (equal s1 s2))
           (xyp-etype s1 "text")
           (xyp-etype s2 "text")
      )
    (progn
      (setq p1 (xyp-get-9pt s1 1)
            p2 (xyp-get-9pt s2 1)
      )
      (xyp-move s1 p1 p2)
      (xyp-move s2 p2 p1)
    )
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 17:01:38 | 显示全部楼层
只会用院长的函数,自己写不会!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

 楼主| 发表于 2013-8-18 17:07:39 | 显示全部楼层
newer 发表于 2013-8-18 16:50
一个问题一个问题消化,你先把我上面的帖子的自己做出来,再接着学缩放。

做出来自己做个动画贴论坛。 ...

看别人求助怎么没这么麻烦?为什么要考我
{:soso_e109:}

点评

如果文字不等高,上面的程序效果是这样的 [attachimg]4942[/attachimg] 要下图这样的才应该符合要求。 [attachimg]4943[/attachimg] 上面我写的程序要是看懂了,改很容易,我现在是底边对齐移动的,  详情 回复 发表于 2013-8-18 17:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:21 , Processed in 0.425369 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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