今天大部分时间都在努力寻找并尝试找到以下示例:
从绘图名称中提取单个字符。 我需要将 Autocad 工程图名称的第 7 个字符用作条件。
根据标准,它始终是字母 A 或数字 0(零)。 如果第 7 个字符是 A,则运行程序 1。
否则运行程序 2。 就如此容易。
但我找不到如何提取绘图名称字符的示例或图。 然后我想,也许,我可以在绘图名称字符之间放置空格。
这将使它成为一个列表,我可以使用:
- (nth 6 '(0 1 2 3 4 5 A 7 ))
删除“.dwg”后: - (setq dname (getvar "DWGNAME")); get drawing name
- (setq strleg (strlen dname)) ; get the length of it
- (setq strleg1 (- strleg 4)) ; hack off the last 4 characters
- (setq drawname (substr dname 1 strleg1)) ; what's left?
但我也找不到说明或实现这一点的例子。 然后我想起了一个显示命名视图轮廓的旧程序。
巧合的是,我们的一个名为“模型空间”的视图是没有 .DWG 的图纸名称。
该程序使用以下方法查找命名视图: - (if (wcmatch (getvar "DWGNAME") "??????A*") ;IF this
- (PROGRAM-1) ; THEN do this
- (PROGRAM-2) ; ELSE do this
- )
不会总是有命名视图,但总会有 DWGNAME。) 奇迹般有效。 所以最后:
1.我不需要从图纸名称中提取,虽然我很想用那个方法。
2. 如果可能的话,我不需要将绘图名称转换为列表来使用第 n 个东西。那将是一种简洁但令人费解且非常规的方法。
3. 一天中的大部分时间都在努力,结果发现答案很简单,而且我已经有了一些例子。我需要的只是wcmatch。 只是想分享,希望这是有用的信息。 |