天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 159|回复: 0

[每日一码] 模拟命令UCS+V的ARX实现代码

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 20:17:48 | 显示全部楼层 |阅读模式
    1. Acad::ErrorStatus UCS采用V()
    2. {
    3.    AcGeMatrix3d matUcs;
    4.    struct resbuf rbZeroPt;
    5.    acedGetVar(采用T("UCSORG"), &rbZeroPt); // origin point for current UCS (in WCS, so, we don't need to convert it)
    6.    struct resbuf viewTwist;
    7.    acedGetVar(采用T("VIEWTWIST"), &viewTwist); // view rotation angle      
    8.    struct resbuf rbViewDir;
    9.    acedGetVar(采用T("VIEWDIR"), &rbViewDir); // Z vector
    10.    AcGeVector3d zAxis = asPnt3d(rbViewDir.resval.rpoint).asVector();
    11.    acdbUcs2Wcs(asDblArray(zAxis),asDblArray(zAxis),true); // to WCS convertation
    12.    zAxis *=  (1.0 / zAxis.length()); // normalization
    13.    matUcs = AcGeMatrix3d::planeToWorld(zAxis) * AcGeMatrix3d::rotation(-viewTwist.resval.rreal, AcGeVector3d::kZAxis, AcGePoint3d::kOrigin); // "by view" matrix. origin is (0,0,0)
    14.    matUcs.setTranslation(asPnt3d(rbZeroPt.resval.rpoint).asVector()); // set the correct origin
    15.    return acedSetCurrentUCS(matUcs);
    16. }
    复制代码

     

     

     

     

    [每日一码] 模拟命令UCS+V的ARX实现代码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 13:22 , Processed in 0.123190 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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