找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 633|回复: 11

[求助] 求教,线型比例能否按视口比例设定

[复制链接]
发表于 2017-12-27 16:46:18 | 显示全部楼层 |阅读模式

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

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

×

(defun c:XXX(/ ent)
  (setq ent (ssget))
  (command "change" ent "" "p" "lt" "center" "")
  (command "change" ent "" "p" "S" "0.008*视口比例" "")
)



上面红色字体能否实现,(修改线型时,线型比例乘以当前的视口比例),求教各位大神?

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

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-12-27 17:11:59 | 显示全部楼层
你修改的是 布局里面的视口里面MS空间的实体的线型?

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-27 17:29:27 | 显示全部楼层
思路换下,你先正常修改比例。

然后用下面代码,点一下视口,就把视口窗口内的所有实体线型比例 乘上 视口的比例了。

  1. (defun c:tt ()
  2.   (if (setq e (car (xdrx_entsel
  3.                      "\n拾取同步比例的视口<退出>:"
  4.                      '((0 . "viewport"))
  5.                    )
  6.               )
  7.       )
  8.     (progn
  9.       (setq scl (xdrx_getpropertyvalue e "customscale")) ;得到视口比例
  10.       (setq verts (xdrx_getpropertyvalue e "vertices")) ;视口的四个角点
  11.       (setq mat-ps2ms (xdrx_matrix_ps2ms e)) ;图纸空间视口到模型空间的变换矩阵
  12.       (vl-cmdf "mspace") ; 进入模型空间
  13.       (setq verts (xdrx_points_transform verts mat-ps2ms)) ;矩阵作用,得到模型空间的四个角的顶点
  14.       (if (setq ss (ssget "cp" verts)) ;构建窗口选择集
  15.         (progn
  16.           (mapcar '(lambda (x)
  17.                      (xdrx_setpropertyvalue
  18.                        x
  19.                        "LinetypeScale"
  20.                        (* (xdrx_getpropertyvalue x "LinetypeScale") scl);修改比例乘上视口的比例
  21.                      )
  22.                    )
  23.                   (xdrx_pickset->ents ss); mapcar选择集循环
  24.           )
  25.         )
  26.       )
  27.       (vl-cmdf "pspace");回到图纸空间
  28.     )
  29.   )
  30.   (princ)
  31. )


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

使用道具 举报

 楼主| 发表于 2017-12-27 17:30:03 | 显示全部楼层

能否自动识别布局比例来实现呢?类似标注样式中"DIMSCALE" 的值设为0那样?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-27 17:37:22 | 显示全部楼层

用下上面的代码试试。

不能自动,因为模型空间的实体 可能 被 图纸空间 多个视口 共用,而视口比例可能不同,所以

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

使用道具 举报

 楼主| 发表于 2017-12-27 17:43:28 | 显示全部楼层

就是通过点击视口,然后视口内的块、线型、标注样式、还有填充等等,线型比例,块大小,标注样式的类型,以及填充的比例都跟着调节。以前我公司有这么一个插件,已经生产了VLX文件,在公司外面使用不了,所以自己试着调
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 17:45:46 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-27 17:48:03 | 显示全部楼层

什么BUG?

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

使用道具 举报

 楼主| 发表于 2017-12-27 17:48:05 | 显示全部楼层

还有一个方法,假设在视口里面画线,可否实现这样的函数成立,在模型则是1:1的函数比例来实现,可否行得通?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-27 18:00:42 | 显示全部楼层

没看明白你这句话。

我感觉,你应该在不同视口比例下,线型的样子应该是一样的,就和文字或者尺寸标注一样,不管什么比例出图,大小都应该是1:1时候的样子。

所以,你在模型空间画图的时候都按1:1话,线型,文字,尺寸什么的也是1:1时候的,比如文字高度是0.3.

等你布图的时候,如果视口比例是1:2,那你图就小一半了,你要想图打出来文字还是0.3高,那么文字等相应要扩大1倍。

所以,你通过视口,去更新里面的实体的时候,比例是要反过来的,把视口里面模型空间实体的比例* 视口比例的倒数。更新前的模型空间里面的比例永远用1:1时候定的数据画。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 18:10:34 | 显示全部楼层

这个想法是函数的一个依据,在模型画图就等同于1:1的比例,在视口画图就用当前的视口比例。然后在不同比例的视口画图,按算法来看,最终看到的图纸的比例都是一样大小的,假如在布局立面看到标注、块、线型比例不一样,再通过刚刚你那个函数再把比例大小给统一上。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2017-12-27 18:19:49 来自手机 | 显示全部楼层
可以啊,我是用反应器,切换视图时修改byScale变量,画线的命令rx根据byscale画。思路大概是这样,当然整个系统的细节比这个复杂
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:18 , Processed in 0.533089 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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