找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4836|回复: 41

[求助] 改线型比例的代码,高手帮我看看

[复制链接]

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-1-5 23:55:08 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 lucas3 于 2014-1-7 16:21 编辑

已经搞定了,感谢在此回贴的每一次朋友!有了你们晓东更精采!


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

已领礼包: 10393个

财富等级: 富甲天下

发表于 2014-1-6 08:10:26 | 显示全部楼层
本帖最后由 zxq0220 于 2014-1-7 07:56 编辑
  1. (defun c:tt (/ ss l n e nl show)
  2. (if (setq ss (ssget '((0 . "*LINE")))) (progn
  3.   (setq nl (cdr(assoc 48 (entget(ssname ss 0)))))
  4.   (setq n (sslength ss))
  5.   (while (> n 0)
  6.    (setq l (cdr(assoc 48 (entget (ssname ss (setq n (1- n)))))))
  7.    (if (not(equal nl l 0.001)) (setq n -2))
  8.   )
  9.   (setq show (if (= n -2) "多种" (rtos nl 2)))
  10.   (setq l (if (setq l (getdist (strcat "\n 请输入新的线型比例<" show "> :"))) l nl))
  11.   (repeat (setq n (sslength ss))
  12.    (setq e (entget (ssname ss (setq n (1- n)))))
  13.    (entmod (append e (list (cons 48 l))))
  14.   )
  15. ))
  16. (princ)
  17. )

点评

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 09:24:34 | 显示全部楼层

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2014-1-6 12:14:01 | 显示全部楼层
  1. (defun c:tt  ( / ss l n e a)
  2.    (setq ss (ssget))


  3.   ;要达到你的要求,主要是以下两段
  4.            (setq a (cdr(assoc 48(entget(ssname ss 0)))))
  5.      (setq l (getdist (strcat "\n 请输入新的线型比例<" (rtos a 2 3) "> :")))
  6.       
  7.    
  8.     (repeat (setq n (sslength ss))
  9.       (setq e (entget (ssname ss (setq n (1- n)))))
  10.       (entmod (append e (list (cons 48 l))))
  11.     )
  12.   
  13.   (princ)
  14. )


  15. ;小测试了一下,,,其它的你自己修改你需要的


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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 15:23:15 | 显示全部楼层
各位是不是误解我的意思呢? 我的意思是当我选择线段时,要显示这段线当前的线型比例值,比如,没修改线型比例时是1.0,选择择这条线时应该提示“ 当前线段的线型比例是1.0,请输入新的线型比例: ” 此时如果我修改成0.5 ,那么下次再选择这条线时,就应该是“ 当前线段的线型比例是0.5,请输入新的线型比例: ”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-6 15:37:43 来自手机 | 显示全部楼层
lucas3 发表于 2014-1-6 15:23
各位是不是误解我的意思呢? 我的意思是当我选择线段时,要显示这段线当前的线型比例值,比如,没修改线型 ...

你说的单选可以,多选时这个比例可能不一样,这时按哪个提示都可能误导

点评

那多选时如果一样,就可以提示,不一样时就显“*多种*” 这样做可以么?  详情 回复 发表于 2014-1-6 15:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 15:46:34 | 显示全部楼层
st788796 发表于 2014-1-6 15:37
你说的单选可以,多选时这个比例可能不一样,这时按哪个提示都可能误导

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-6 15:49:04 来自手机 | 显示全部楼层
lucas3 发表于 2014-1-6 15:46
那多选时如果一样,就可以提示,不一样时就显“*多种*” 这样做可以么?

如果用lisp为了一句话遍历一次可能稍慢点

点评

慢了点无所谓, 多选的情况不多,一般单选 ,你能帮忙改改吗,谢谢!  详情 回复 发表于 2014-1-6 16:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 16:02:21 | 显示全部楼层
st788796 发表于 2014-1-6 15:49
如果用lisp为了一句话遍历一次可能稍慢点

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-6 16:29:26 来自手机 | 显示全部楼层
lucas3 发表于 2014-1-6 16:02
慢了点无所谓, 多选的情况不多,一般单选 ,你能帮忙改改吗,谢谢!

一般用Lisp + API写应用

点评

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 16:31:28 | 显示全部楼层
st788796 发表于 2014-1-6 16:29
一般用Lisp + API写应用

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-6 17:14:04 来自手机 | 显示全部楼层
lucas3 发表于 2014-1-6 16:31
这个简单的没必要上API吧

(defun c:tt ()
(if (and (setq ss (ssget ":L" '((0 . "*LINE"))))
(SETQ el (xdrx_pickset->ents ss))
(if (apply '= (mapcar '(lambda (x)
   (xdrx_getpropertyvalue x "ltscale")))))
.…
))
)
不用api就用ss->ents
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10393个

财富等级: 富甲天下

发表于 2014-1-6 21:27:56 | 显示全部楼层
沙发改了,再试试。

点评

大师,还是一样了,选择完对象后,空格键 --------什么都没有发生都结束了 [attachimg]7457[/attachimg]  详情 回复 发表于 2014-1-6 21:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-1-6 21:56:07 | 显示全部楼层
zxq0220 发表于 2014-1-6 21:27
沙发改了,再试试。

大师,还是一样了,选择完对象后,空格键 --------什么都没有发生都结束了
QQ图片20140106215359.jpg

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

使用道具 举报

发表于 2014-1-6 22:59:03 | 显示全部楼层
  1. (defun c:tt (/ el str scl)
  2.   (fy:begin)
  3.   (if
  4.     (and
  5.       (ssget ":L" '((0 . "*LINE")))
  6.       (setq el (fy:cset->objs))
  7.       (if (apply '=
  8.                  (mapcar '(lambda (x) (vlax-get x 'LinetypeScale)) el)
  9.           )
  10.         (setq
  11.           str (vl-princ-to-string (vlax-get (car el) 'LinetypeScale))
  12.         )
  13.         (setq str "多种")
  14.       )
  15.       (setq scl (getreal (strcat "\n输入比例<" str ">: ")))
  16.     )
  17.      (mapcar '(lambda (x)
  18.                 (vlax-put x 'LinetypeScale scl)
  19.               )
  20.              el
  21.      )
  22.   )
  23.   (fy:end)
  24.   (princ)
  25. )

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 06:35 , Processed in 0.475172 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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