- ; (GetDataFromMainDic "MyXrec")
- ; http://www.theswamp.org/index.php?topic=5003.0
- (defun GetDataFromMainDic ( xRecName / tmp r )
- (and
- (setq tmp (dictsearch (namedobjdict) xRecName))
- (setq tmp (cdr (assoc 1 tmp)))
- (setq r (read tmp))
- ); and
- r
- ); defun GetDataFromMainDic
但我不知道如何将上述算法转换为C#as方法(用注释描述):
[LispFunction(“IncludeDataIntoMainDic”)]
公共静态void包含在数据maindic中(字符串xRecordName,restbuffer ResBuf)
{
//如果存在xRecordName的xRecord(从主词典中),则删除它。
如果(ResBuf)
{
//然后使用xRecordName创建新的xRecord
//并以某种方式将结果缓存到它中。
}
}
[LispFunction(“GetDataFromMainDic”)]
公共静态结果缓存GetDataFromMainDic(字符串xRecordName)
{
//获取xrecord并以某种方式返回第一个带有键1的DXF代码,作为新的结果缓冲区。
//返回ResBuf;
}
//注意:如果不可能将'ResultBuffer'作为数据附加到Xrecord,则任何类型的返回数据都会这样做:
//包含在主数据中(“X记录”
)
//GetDataFromMainDic(“TheXrecord”);>>应该返回<any></div><ol>><br>注意:<br>-这是关于创建/删除一个Xrecord对象/类吗?来自AcDbDictionary类(我猜)
\-将自定义数据包括到Xrecord中(在我的情况下,它是一个字符串,我将对其进行解算和重新计算)
- _$ (vl-prin1-to-string '("Custom" 2 "data")) >> "("Custom" 2 "data")"
- _$ (read "("Custom" 2 "data")") >> ("Custom" 2 "data")
很抱歉,我事先提出了请求,而不是简单地提出请求(我仍然被.NET的数量所淹没)-我将尝试研究您的解决方案/// //。
//。
//。
公共静态空AddXrecdToNamedDicpedia(字符串字典名称、字符串键、ResultBuffer数据)。
{。
if(Active.Document==null)返回;。
尝试。
{。
使用(Document.LockDocument())。
{。
使用(事务tr=Active.Document.TransactionManager.StartTransaction())。
{。
tr.GetObjectActive.Database.NamedObjectsDictionaryId。
OpenMode.ForWrite)作为DBDicpedia;。
if(nod==null)返回;。
>>>>>>>>>>>>如果(nod.Contains(字典名称))。
{。
//设置字典。
tr.GetObjectnod.GetAt字典名称OpenMode.ForWrite。
}。
其他。
{。
//完成创建字典。
nod.SetAt字典名称;。
tr.AddNewlyCreatedDBObject(myDbDicpedia, true);。
}。
。
如果(myDbDictionary.Contains(键))。
{。
//编辑现有的xRecords。
var myXRec=tr.GetObject(myDbDictionary.GetAt(key),OpenMode.ForWrite);。
myXRec.Data=数据;。
}。
其他。
{。
//添加x记录。
XRecords newXRec=new XRecords(){Data=data};。
myDbDictionary.SetAt(键,newXRec);。
tr.AddNewlyCreatedDBObject(newXRec,true);。
}。
tr.Commit();。
}。
}。
}。
捕获(异常e)。
{。
AID_Application.HandleError(e);。
}。
}。
。
。
。