加载CAD菜单

5 篇文章 0 订阅
3 篇文章 1 订阅

AutoLisp 加载菜单

;; 主要为加载菜单
(setq MenuGroupName "菜单名")

(defun LoadMenu (/)
	(setq MenuFileName "菜单名")
	(setq MenuPath (findfile (strcat MenuFileName ".cuix")))
	(if (= nil MenuPath)
		(progn
			(setq MenuPath (findfile (strcat MenuFileName ".mnu")))
			(if (= nil MenuPath)
				(setq MenuPath (findfile (strcat MenuFileName ".mns")))
			)
		)
	)
	(if (not (= nil MenuPath))
		(command ".menuload" MenuPath)
	)
)

;; 如果菜单未加载,则加载。
(if (null(menugroup MenuGroupName))
	(LoadMenu)
)

ObjectArx加载菜单

使用ObjectArx函数

// acedLoadPartialMenu(const wchar_t* pszMenuFile); 加载菜单
// acedIsMenuGroupLoaded(const ACHAR * pszGroupName); 判断该菜单是否已加载

//加载菜单
void CLoadMenu(CString sName /*= _T("菜单名")*/)
{
	//如果菜单未加载,则加载。
	if (!acedIsMenuGroupLoaded(sName))
	{
		CString str;
		CFileFind ff;

		// 判断工作目录是否存在文件
		str = _T("菜单文件路径\\") + sName;
		if (ff.FindFile(str + _T(".cuix")))
		{
			acedLoadPartialMenu(str + _T(".cuix"));
		}
		else if(ff.FindFile(str + _T(".mnu")))
		{
			acedLoadPartialMenu(str + _T(".mnu"));
		}
		else if(ff.FindFile(str + _T(".mns")))
		{
			acedLoadPartialMenu(str + _T(".mns"));
		}
	}
}

//卸载菜单
void CUnLoadMenu(CString sName)
{
	if (acedIsMenuGroupLoaded(sName))
	{
		acedUnloadPartialMenu(sName);
	}
}

利用AutoLisp

//执行Lisp命令函数
void RunLisp(LPCTSTR szCmd)
{
	CString strCmd(szCmd);
	strCmd.Replace(_T("\\"), _T("\\\\"));
	strCmd += _T("\n");

	ads_queueexpr(strCmd);
}
//加载菜单
void CLoadMenu()
{
	CString str, strCmd;
	CFileFind ff;

	// 判断工作目录是否存在文件
	str = _T("菜单文件路径\\菜单名");
	if (ff.FindFile(str + _T(".cuix")))
	{
		strCmd.Format(_T("(command \".menuload\" \"%s\")"), str);
		RunLisp(strCmd);
	}
	else if(ff.FindFile(str + _T(".mnu")))
	{
		strCmd.Format(_T("(command \".menuload\" \"%s\")"), str);
		RunLisp(strCmd);
	}
	else if(ff.FindFile(str + _T(".mns")))
	{
		strCmd.Format(_T("(command \".menuload\" \"%s\")"), str);
		RunLisp(strCmd);
	}
}

// acedIsMenuGroupLoaded :判断该菜单是否已加载
//如果菜单未加载,则加载。
if (!acedIsMenuGroupLoaded(_T("菜单名")))
{
	CLoadMenu();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值