明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2256|回复: 4

请大家帮助完善线型规范代码

[复制链接]
发表于 2003-12-15 16:48 | 显示全部楼层 |阅读模式
这是多线段线型生成启用代码,由于很多虚线和其它线型被修剪后没有显示为虚线等,需重新在属性——>线型生成——>启用。我只找到拟合后的二维多线段线型生成启用,想在下面的代码中加入未拟合的多线段线型生成启用。请帮助完善,谢谢!
ads_name ss;
acedSSGet(NULL,NULL,NULL,NULL,ss);//选择实体
acedSSLength(ss,&len);
if(acedSSName(ss,0,ent)!=RTNORM) return;
AcDbObjectId eId;
AcDbObject *pObj;
acdbGetObjectId(eId, ent);
acdbOpenObject(pObj, eId, AcDb::kForWrite);
if(pObj->isKindOf(AcDb2dPolyline::desc())) {
    AcDb2dPolyline *pPline;
    acdbOpenObject(pPline, eId, AcDb::kForWrite);
    pPline->setLinetypeGenerationOn();//二维多线段线形生成启用
    pPline->close();
    }else if{
       ........................在此加入未拟合的多线段线型生成启用
     }
pObj->close();               
acedSSFree(ss);
 楼主| 发表于 2003-12-16 20:42 | 显示全部楼层
注:用系统变量PLINEGEN能对未拟合的多线段线型生成启用,但原来画的现形就不行。


用调用CAD命令还可以,但我学习的软件CASS不是调用命令,真是想死我人。
acedCommand(RTSTR,"EDIT",RTSTR,"M",RTPICKS,ss,RTSTR,"",RTSTR,"L",RTSTR,"ON",RTSTR,"X",0);
 楼主| 发表于 2003-12-20 22:19 | 显示全部楼层
本帖最后由 作者 于 2003-12-21 10:44:47 编辑

问题解决了。代码如下:
struct resbuf *ed;
        ed=acutBuildList(-4,"<or",-4,"<and",RTDXF0,"olyline",-4,"and>",-4,"<and",RTDXF0,"LWPOLYLINE",-4,"and>",-4,"or>",0);//只选择拟合和未拟合的多线段
        if(acedSSGet(NULL,NULL,NULL,ed,ss)!=RTNORM){               
                acutPrintf("未选择到实体\n");
         }else{
                acedSSLength(ss,&len);
                AcDbObjectId eId;
                AcDbObject *pObj;
                for(i=0;i<len;i++){
                        if(acedSSName(ss,i,ent)!=RTNORM) return;
                        acdbGetObjectId(eId,ent);
                        acdbOpenObject(pObj,eId, AcDb::kForWrite);
                        if(pObj->isKindOf(AcDb2dPolyline::desc())){//二维多线段线形生成启用
                                AcDb2dPolyline::cast(pObj)->setLinetypeGenerationOn();
                                pObj->close();                       
                        }else if(pObj->isKindOf(AcDbPolyline::desc())){//多线段线形生成启用
                                AcDbPolyline::cast(pObj)->setPlinegen(1);
                                pObj->close();                               
                        }                       
                }               
        }
        acutRelRb(ed);
        acedSSFree(ss);
发表于 2003-12-21 22:21 | 显示全部楼层
看不懂,是用LISP写的吗?
发表于 2005-7-18 20:30 | 显示全部楼层

能用VBA实现吗

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

本版积分规则

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

GMT+8, 2024-5-18 10:40 , Processed in 0.160208 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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