Por que UNDO (DESFAZER) reverte operações demais?

Symptoms

Uma etapa de Desfazer reverte muito mais operações do que o esperado. Pode ou não ser possível refazer e recuperar as etapas perdidas

Causa

A causa é desconhecida, mas em termos gerais há uma incompatibilidade entre os marcadores de início de algo e o final de algo e essa incompatibilidade será acionada por uma operação muito específica. DESFAZER depende desses marcadores de começo e fim, e é crucial que estes não estejam corrompidos.

DESFAZER não pode desfazer a criação de entidades de uma sessão anterior. Se as entidades de uma sessão anterior forem apagadas, então o problema não é de desfazer excessivo.

Solução

Inicie o programa em SafeMode.

Se o problema desaparecer durante a execução no SafeMode (Modo de Segurança), então pode ser útil voltar ao Modo Normal e desativar ou desinstalar plug-ins e personalizações, e com isso restringir a possível causa.

Se o problema persistir, habilite o diagnóstico para saber mais:

  • Defina QAFLAGS=256 (ativar mensagem de comando). Isso permite o diagnóstico de Desfazer.

    Um aviso (prompt) informa ao usuário quando o histórico de comandos foi corrompido.

  • Quando o programa emitir um alerta sobre o histórico de comandos, digite DUMPSTATE na linha de Comando. Isso vai gravar um relatório na pasta de inicialização. Envie-nos este relatório.
  • Defina LOGFILEMODE = 1 e repita as etapas para reproduzir o problema. A variável de sistema LOGFILEMODE controla a geração de arquivos de log do BricsCAD que retêm cada comando executado. Esses arquivos de log são salvos na pasta especificada pela variável de sistema LOGFILEPATH.
Note:

Uma distinção deve ser feita entre coisas muito diferentes:

  • histórico de comandos corrompido, que causa o Desfazer demasiado
  • o Desfazer ocasiona a exclusão de uma grande parte do desenho, incluindo entidades de uma sessão anterior
  • o Desfazer parar de funcionar
  • coisas que são, intencionalmente ou não, ignoradas pelo Desfazer; Isso não é uma falha no mecanismo de Desfazer, mas apenas uma operação que não está registrada com o Desfazer
  • travar a máquina ao Desfazer
  • coisas que foram desfeitas corretamente, mas está faltando uma atualização da tela

Este artigo é apenas sobre os três primeiros itens.