明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1880|回复: 7

如何实现让其中一层的线都设置为指定宽度的多义线?

[复制链接]
发表于 2005-1-12 14:32:00 | 显示全部楼层 |阅读模式
一一如何实现让其中一层的线都设置为指定宽度的多义线?
如何实现让其中一层的线都设置为指定宽度、颜色、类型的多义线? 用CAD的命令是PE,但是只能用手工去选择要定义的线。 我是刚学习的,希望各位大哥帮帮忙?
 楼主| 发表于 2005-1-13 01:16:00 | 显示全部楼层
看了前面的大哥的介绍,我已经完成我要的功能 ;将所选择的line或arc串成多义线 (defun c:ddx (/ ssa ssa-ent ent-p i)
(command "undo" "be");设置返回起始点
(command "qselect" "" "")
(setq ssa (ssget))
(setq i 0)
(while (< i (sslength ssa))
(setq ssa-ent (ssname ssa i))
(setq ent-p (cdr(assoc 0 (entget ssa-ent))))
(if (not (null ent-p));判断原图元是否已串入多义线
(if (or (= ent-p "LWPOLYLINE") (= ent-p "POLYLINE"));判断原图元属性
(command "pedit" ssa-ent "w" "5" "j" ssa "" "")
(command "pedit" ssa-ent "y" "w" "0.5" "j" ssa "" "")
))
(setq i (1+ i))
)
(command "undo" "e");设置返回终止点
(princ)
) 我这样一改就可以实现先选择其中一层的线,实现先选择线后 PE 线了。 但是有个新的问题,现在选择哪一层的线是通过对话框实现的, 我想请教各位大哥,Qselect 后面能带筛选条件吗?就是说通过命令自动完成,不知道这个命令的格式是怎么样的? 还有个问题就是,以上的代码如果用VBA写的话,应该怎么写呀?
发表于 2005-1-13 02:06:00 | 显示全部楼层
(setq ssa (ssget '((0 . "line,arc")(8 . "layername"))))
 楼主| 发表于 2005-1-13 17:26:00 | 显示全部楼层
谢谢前面这位大哥的指点,下面的这段代码想实现把ABC这层的line或arc,转换为0.5宽的多段线。不知道哪里出问题?希望大哥继续指点, (defun c:ddx (/ ssa ssa-ent ent-p i)
(command "undo" "be");设置返回起始点
(setq ssa (ssget '((0 . "line,arc")(8 . "ABC")))) ;主要是这里我不知道如何写?(如何实现选择ABC这层的line或arc)
(setq i 0)
(while (< i (sslength ssa))
(setq ssa-ent (ssname ssa i))
(setq ent-p (cdr(assoc 0 (entget ssa-ent))))
(if (not (null ent-p));判断原图元是否已串入多义线
(if (or (= ent-p "LWPOLYLINE") (= ent-p "POLYLINE"));判断原图元属性
(command "pedit" ssa-ent "w" "0.5" "j" ssa "" "")
(command "pedit" ssa-ent "y" "w" "0.5" "j" ssa "" "")
))
(setq i (1+ i))
)
(command "undo" "e");设置返回终止点
(princ)
)
发表于 2005-1-14 09:46:00 | 显示全部楼层
你只选择了ABC图层上的直线和圆弧(LINE、ARC),没有选择多义线(LWPOLYLINE、POLYLINE)吧
 楼主| 发表于 2005-1-14 11:37:00 | 显示全部楼层
在运行程序之前ABC图层上只有直线或圆弧,而且用这个程序,还会提示我去选择对象,我想达到的功能就是,打个命令让程序自动的完成,不需要人手工参与。
发表于 2005-1-14 12:55:00 | 显示全部楼层
(defun c:test( / ss i wid)
(setq ss (ssget "x" '((0 . "*POLYLINE"))))
(setq i 0 wid 5);5是宽度,用你自己想要的值修改这里
(repeat (sslength ss)
(command "_.pedit" (ssname ss i) "w" wid "")
(setq i (1+ i))
)
(princ)
)
 楼主| 发表于 2005-1-14 22:32:00 | 显示全部楼层
问题解决,谢谢指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 20:27 , Processed in 0.148786 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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