找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 748|回复: 10

[编程申请]:能否用程序实现这样一个效果?

[复制链接]
发表于 2005-10-20 12:29:42 | 显示全部楼层 |阅读模式

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

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

×
[iframe h=600 w=100%]http://p4.xdcad.net/forum/showthread.php?s=&threadid=477321[/iframe]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-20 13:23:28 | 显示全部楼层
  1. [FONT=courier new];;;双向偏移并改层
  2. (defun c:test184 ()
  3.   (cmdla0)
  4.   (mkla "TEST" 1)                        ;自定义层名TEST
  5.   (SETQ        getds (UDIST 7 "" "\n输入偏移距离<可直接量取>:" getds nil)
  6.         ss    (ssget "X")
  7.   )
  8.   (if (ssget '((0 . "Arc,Circle,Ellipse,*Line")))
  9.     (vlax-for obj (vla-get-activeselectionset
  10.                     (vla-get-activedocument (vlax-get-acad-object))
  11.                   )
  12.       (vla-offset obj getds)
  13.       (vla-offset obj (* getds -1))
  14.     )
  15.     (vlax-release-object obj)
  16.   )
  17.   (command "select" (ssget "X") "r" ss "")
  18.   (setq ss (ssget "P"))
  19.   (command "change" ss "" "P" "la" "test" "")
  20.   (cmdla1)
  21. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-20 13:42:04 | 显示全部楼层
一个字!好!
我不太了解VLISP的函数,恳请斑竹讲解一下好吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 15:00:12 | 显示全部楼层
练习了一个,比较笨的方法
只对线起作用
(defun c:test()
    (setq la (tblsearch "layer" "偏移层"))
     (if (null la) (command "layer" "n" "偏移层" "c" "1" "偏移层" ""))     
     (setvar "clayer" "偏移层")     
(prompt "\选择偏移的线:")
(setq ss1 (ssget))
(setq dd (getreal "输入偏移的值<2.5>:"))
(if (null dd) (setq dd 2.5))
  (command "mline" "j" "z" "")
  (setq n 0)
(repeat (sslength ss1)
        (setq en (ssname ss1 n))
        (setq ss2 (entlast))
        (setq en_data (entget en))
        (setq en_type (cdr (assoc 0 en_data)))
   (if (= en_type "LINE")
     (progn
       (setq ptq (cdr (assoc 10 en_data)))
       (setq ptz (cdr (assoc 11 en_data)))
       (command "mline" ptq ptz "")
     )
   )
(setq n (+ n 1))
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-21 17:05:32 | 显示全部楼层
XYP1964:有一个问题,就是我想要在一组线上偏移(宽度不同)两次的话就不能实现了,我试用过把已偏移的线所在图层关掉,但再执行时它又自打开了。能不能把偏移的线所在图层过滤掉呢?
还有一点,多义线不能偏移
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-21 18:01:45 | 显示全部楼层
最初由 yjtdkj 发布
[B]XYP1964:有一个问题,就是我想要在一组线上偏移(宽度不同)两次的话就不能实现了,我试用过把已偏移的线所在图层关掉,但再执行时它又自打开了。能不能把偏移的线所在图层过滤掉呢?
还有一点,多义线不能偏移 [/B]

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

使用道具 举报

 楼主| 发表于 2005-10-21 18:32:51 | 显示全部楼层

真是不好意思!!

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

使用道具 举报

发表于 2005-10-21 19:40:17 | 显示全部楼层
  1. [FONT=courier new];;;双向偏移并改层
  2. (defun c:test ()
  3.   (cmdla0)
  4.   (setvar "OFFSETGAPTYPE" 0)
  5.   (mkla "TEST" 1)                        ;自定义层名TEST
  6.   (SETQ        getds (UDIST 7 "" "\n输入偏移距离<可直接量取>:" getds nil)
  7.         ss    (ssget '((0 . "Arc,Circle,Ellipse,*Line")))
  8.         la (getvar"clayer")
  9.         i     -1
  10.   )
  11.   (setvar "OFFSETDIST" getds)
  12.   (while (setq s1 (ssname ss (setq i (1+ i))))
  13.     (setq pt  (vlax-curve-getstartPoint s1)
  14.           pt1 (PT-FAXIAN s1 pt 10)
  15.           pt2 (PT-FAXIAN s1 pt -10)
  16.     )
  17.     (command "offset" "" s1 pt1 "")
  18.     (command "change" (entlast) "" "P" "la" la "")
  19.     (command "offset" "" s1 pt2 "")
  20.     (command "change" (entlast) "" "P" "la" la "")
  21.   )
  22.   (cmdla1)
  23. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-21 20:32:32 | 显示全部楼层
不知道为什么,楼上的这个程序出现只向一边偏移的问题,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-10-25 09:41:54 | 显示全部楼层
我不知道楼上的高手能不能把这个程序改成变墙厚的,也就是原来240的墙改成200的,两边两条墙线各向里(或向外)偏移20,不知我说明白没??
借宝地咨询,请楼主别见怪
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 00:58 , Processed in 0.321203 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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