找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 983|回复: 6

[求助]:双线线形的问题

[复制链接]
发表于 2003-7-18 09:46:01 | 显示全部楼层 |阅读模式

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

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

×
在CAD中如果线形是双线 那么在拐弯的地方老是接不上头,这是个老问题了 Microstation中就没有这个问题
  请问大家遇到这种情况是如何解决的 看来只好用程序解决了
最后不一定要线形。请大家看看有什么办法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-18 22:18:30 | 显示全部楼层
通常会用形来实现双线,我想gp341也是如此。但形在线型中是整体显示的,也不会“拐弯”。所以我以为用形实现的双线无法解决这个问题。除非想别的方法。

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

使用道具 举报

发表于 2003-7-19 12:45:56 | 显示全部楼层
gp341 这个题挺有意思。看看我的程序做法勉强说的过去吗?

1. 在ltypeshp.shx 定义两个型,分别用于画竖线和双线
*137,5,SHUXIAN
002,014,001,02C,0

*138,9,SHUANXIAN
002,014,001,040,002,02C,001,048,0

2. 线型文件中定义两个线型
;以下为画竖线,注意ltypeshp.shx中增加了SHUXIAN
*SHUXIAN,shuxian |   |   |   |
A,0,-2,[SHUXIAN,ltypeshp.shx,s=0.6],0

;以下为画双线,注意ltypeshp.shx中增加了SHUANXIAN和SHUXIAN
*DOUBLE,double ==|====|====|==
A,0,[SHUANXIAN,ltypeshp.shx,s=0.5],-2,[SHUXIAN,ltypeshp.shx,s=0.6],0,[SHUANXIAN,lt
ypeshp.shx,s=0.5],-2

3. 定义一个画线函数c:double
其基本的思路是:先用双线线型(PLINE)画线,用双线的目的是为了直观;然后将其改为CONTINUOUS,绘两个OFFSET线,再将原来的线改为单纯竖线线型。
绘图过程图形为:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-7-19 12:48:50 | 显示全部楼层
[code]
(print "画双线命令:DOUBLE")
(DEFUN C:DOUBLE ( / dist s pt)
  (setq dist 1)              ;设定双线的宽度
  (setq oldltype (getvar "CELTYPE"))
  (setq oldosnap (getvar "OSMODE"))
  (setq oldpine  (getvar "PLINEGEN"))
   
  (setvar "CELTYPE"  "double")
  (setvar "PLINEGEN"  1)
  (command "_pline"  (while (= 1 (getvar "CMDACTIVE") ) (command PAUSE)))

  (setq ent  (entlast))                ;找到刚才画的这个线
  (setq pt   (getvar "lastpoint"))                     ;最后点
  (setq ang  (* (/ pi 180)  (getvar "lastangle")))     ;最后线段的角度(弧度)
  (setvar "OSMODE" 0)
  (command "chprop" ent "" "lt" "continuous" "")
  (command "_offset" (/ dist 2.0)
                     ent
                     (polar   pt  (+ ang 1.7 0.2) dist)
                     ent
                     (polar  pt (+ ang 1.7 pi) dist)
                     ""
  )
  (command "chprop" ent "" "lt" "shuxian" "")          
  (setvar "OSMODE" oldosnap)
  (setvar "CELTYPE" oldltype)
  (setvar "PLINEGEN"  oldpine)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-19 13:20:33 | 显示全部楼层
错误: AutoCAD 变量设置被拒绝: "CELTYPE" "double"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-19 14:02:19 | 显示全部楼层
在运行这个函数前,需要先加载 DOUBLE  和SHUXIAN 两个线型。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 03:24 , Processed in 0.187572 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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