找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 628|回复: 9

[求助] 求图块里面文字的插入点和图块里面ly线的起点。

[复制链接]

已领礼包: 2226个

财富等级: 金玉满堂

发表于 2017-4-20 23:25:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 cable2004 于 2017-4-21 00:09 编辑

求图块里面文字的插入点和图块里面ly线的起点。
QQ图片20170421000315.png

test11.rar

21.22 KB, 下载次数: 6, 下载积分: D豆 -1 , 活跃度 1

test11.rar

21.22 KB, 下载次数: 0, 下载积分: D豆 -1 , 活跃度 1

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-4-21 11:52:32 | 显示全部楼层

这个块有 Origin,和 WCS 原点不重合

  1. (defun c:tt (/ pt_trans ss draw doc ms blks p por e sl origin)
  2.   (defun pt_trans (p bp x y z an / an1)
  3.     (setq an1 (+ an (angle por p))
  4.           p   (mapcar '* p (list x y z))
  5.           p   (polar por an1 (distance por p))
  6.           p   (mapcar '+ bp p)
  7.     )
  8.   )
  9.   (defun draw (blks blk / blkdef name an xc yc zc bp p por an1)
  10.     (setq name         (vla-get-name blk)
  11.           blkdef (vla-item blks name)
  12.           an         (vla-get-rotation blk)
  13.           xc         (vlax-get blk 'xscalefactor)
  14.           yc         (vlax-get blk 'yscalefactor)
  15.           zc         (vlax-get blk 'zscalefactor)
  16.           bp         (vlax-get blk 'insertionpoint)
  17.           origin (vlax-get blkdef 'origin)
  18.           por         '(0 0 0)
  19.     )
  20.     (vlax-for obj blkdef
  21.       (if (= (vla-get-objectname obj) "AcDbText")
  22.         (progn
  23.           (setq p (vlax-get obj 'insertionpoint))

  24.           (vla-put-color
  25.             (vla-addcircle
  26.               ms
  27.               (vlax-3d-point
  28.                 (pt_trans (mapcar '- p (vlax-get blkdef 'origin))
  29.                           bp
  30.                           xc
  31.                           yc
  32.                           zc
  33.                           an
  34.                 )
  35.               )
  36.               10.0
  37.             )
  38.             2
  39.           )
  40.         )
  41.       )
  42.       (if (= (vla-get-objectname obj) "AcDbPolyline")
  43.         (vla-put-color
  44.           (vla-addcircle
  45.             ms
  46.             (vlax-3d-point
  47.               (pt_trans        (mapcar        '-
  48.                                 (vlax-curve-getstartpoint obj)
  49.                                 (vlax-get blkdef 'origin)
  50.                         )
  51.                         bp
  52.                         xc
  53.                         yc
  54.                         zc
  55.                         an
  56.               )
  57.             )
  58.             20.0
  59.           )
  60.           1
  61.         )
  62.       )
  63.     )
  64.   )
  65.   (vl-load-com)
  66.   (setq        doc  (vla-get-activedocument (vlax-get-acad-object))
  67.         blks (vla-get-blocks doc)
  68.         ms   (vla-get-modelspace doc)
  69.   )
  70.   (if (setq ss (ssget '((0 . "insert"))))
  71.     (progn
  72.       (setq sl (sslength ss))
  73.       (while (setq e (ssname ss (setq sl (1- sl))))
  74.         (draw blks (vlax-ename->vla-object e))
  75.       )
  76.     )
  77.   )
  78.   (princ)
  79. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-4-20 23:29:45 | 显示全部楼层
换低版本保存,更新压缩文件,并截取个图片贴上来,方便讨论。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2226个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-4-21 08:53:45 | 显示全部楼层
也可以用矩阵转换

  1. (defun c:tt (/ ss draw doc ms blks)
  2.   (defun draw (blks blk / blkdef name an xc yc zc bp p por an1)
  3.     (setq name         (vla-get-name blk)
  4.           blkdef (vla-item blks name)
  5.           an         (vla-get-rotation blk)
  6.           xc         (vlax-get blk 'xscalefactor)
  7.           yc         (vlax-get blk 'yscalefactor)
  8.           zc         (vlax-get blk 'zscalefactor)
  9.           bp         (vlax-get blk 'insertionpoint)
  10.           por         '(0 0 0)
  11.     )
  12.     (vlax-for obj blkdef
  13.       (if (= (vla-get-objectname obj) "AcDbText")
  14.         (progn
  15.           (setq        p   (vlax-get obj 'insertionpoint)
  16.                 an1 (+ an (angle por p))
  17.                 p   (mapcar '* p (list xc yc zc))
  18.                 p   (polar por an1 (distance por p))
  19.                 p   (mapcar '+ bp p)
  20.           )
  21.           (vla-put-color
  22.             (vla-addcircle ms (vlax-3d-point p) 10.0)
  23.             1
  24.           )
  25.         )
  26.       )
  27.     )
  28.   )
  29.   (vl-load-com)
  30.   (setq        doc  (vla-get-activedocument (vlax-get-acad-object))
  31.         blks (vla-get-blocks doc)
  32.         ms   (vla-get-modelspace doc)
  33.   )
  34.   (if (setq ss (ssget '((0 . "insert"))))
  35.     (progn
  36.       (setq sl (sslength ss))
  37.       (while (setq e (ssname ss (setq sl (1- sl))))
  38.         (draw blks (vlax-ename->vla-object e))
  39.       )
  40.     )
  41.   )
  42.   (princ)
  43. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-4-21 09:09:22 | 显示全部楼层
加上线的

  1. (defun c:tt (/ pt_trans ss draw doc ms blks)
  2.   (defun pt_trans (p bp x y z an / an1)
  3.     (setq an1 (+ an (angle por p))
  4.           p   (mapcar '* p (list x y z))
  5.           p   (polar por an1 (distance por p))
  6.           p   (mapcar '+ bp p)
  7.     )
  8.   )
  9.   (defun draw (blks blk / blkdef name an xc yc zc bp p por an1)
  10.     (setq name         (vla-get-name blk)
  11.           blkdef (vla-item blks name)
  12.           an         (vla-get-rotation blk)
  13.           xc         (vlax-get blk 'xscalefactor)
  14.           yc         (vlax-get blk 'yscalefactor)
  15.           zc         (vlax-get blk 'zscalefactor)
  16.           bp         (vlax-get blk 'insertionpoint)
  17.           por         '(0 0 0)
  18.     )
  19.     (vlax-for obj blkdef
  20.       (if (= (vla-get-objectname obj) "AcDbText")
  21.         (progn
  22.           (setq p (vlax-get obj 'insertionpoint))
  23.           (vla-put-color
  24.             (vla-addcircle
  25.               ms
  26.               (vlax-3d-point (pt_trans p bp xc yc zc an))
  27.               10.0
  28.             )
  29.             2
  30.           )
  31.         )
  32.       )
  33.       (if (= (vla-get-objectname obj) "AcDbPolyline")
  34.         (vla-put-color
  35.           (vla-addcircle
  36.             ms
  37.             (vlax-3d-point
  38.               (pt_trans (vlax-curve-getstartpoint obj) bp xc yc zc an)
  39.             )
  40.             20.0
  41.           )
  42.           1
  43.         )
  44.       )
  45.     )
  46.   )
  47.   (vl-load-com)
  48.   (setq        doc  (vla-get-activedocument (vlax-get-acad-object))
  49.         blks (vla-get-blocks doc)
  50.         ms   (vla-get-modelspace doc)
  51.   )
  52.   (if (setq ss (ssget '((0 . "insert"))))
  53.     (progn
  54.       (setq sl (sslength ss))
  55.       (while (setq e (ssname ss (setq sl (1- sl))))
  56.         (draw blks (vlax-ename->vla-object e))
  57.       )
  58.     )
  59.   )
  60.   (princ)
  61. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2226个

财富等级: 金玉满堂

 楼主| 发表于 2017-4-21 09:39:46 | 显示全部楼层
本帖最后由 cable2004 于 2017-4-21 09:45 编辑

谢谢 st788796
谢谢 newer

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-4-21 11:06:35 | 显示全部楼层

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

使用道具 举报

已领礼包: 2226个

财富等级: 金玉满堂

 楼主| 发表于 2017-4-21 11:09:21 | 显示全部楼层
大师,看看好像换一个就不行了。

test22.rar

26.92 KB, 下载次数: 4, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-12 10:41 , Processed in 0.448502 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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